20150430分布式操作系统
- 格式:doc
- 大小:284.00 KB
- 文档页数:20
分布式操作系统的定义1、分布式操作系统定义分布式操作系统首先是一个操作系统,操作系统承担2个角色:管理者和魔术师,就是管理硬件CPU 、mem、磁盘、网络、I/O 等,让用户程序可以最简单的利用计算机的硬件,但不用care 具体的细节,直接调用API 进行使用即可;操作系统还管理着计算机的资源,对进程、线程进行分配资源。
分布式操作系统然后是一个分布式:通过多台计算机的硬件实现数据分布到多台机器的磁盘【程序运行时加载到内存】、通过多台计算机的CPU 完成分布式计算【计算就保护内存计算、网络通信】;最后通过网路通信把计算的结果有组织、有顺序的收集并merger 成最终的结果。
分布式操作系统的基本理解:多台物理机器的结合【意味着:每台机器都有CPU、mem、disk、trafic等硬件资源】分布式操作系统让多台物理机器的设备计算资源、存储资源、网络资源有效结合起来,共同完成一个大的task的软件操作系统数据共享、设备共享、网络通信、灵活性分布式操作系统的意义:简单的pc 服务器比大型计算机的成本低,用多台PC 服务器来完成大型计算机的功能;但成本比大型计算机低很多;而且集群规模越大,相对成功就越低现实中很多应用场景都是分布式的,所以分布式操作系统来实现解决方案时更加友好分布式是多台机器的协同作战,团队作战的效率比大型机器在很多场景下要高但分布式操作系统也是一个整合数以万台的集群的巨无霸型软件系统,复杂性也跟操作系统一样大大的复杂!2. 分布式操作系统的理解分布式操作系统从2个方面来理解:一个是分布式,一个是操作系统分布式:就是计算、存储不在同一台处理机上,而是分布式多台处理机上操作系统:就是我们平常在单台物理机器上的操作系统,是一个功能强大、稳定的巨大软件系统所以分布式操作系统可大可小,比如一个处理mysql 分库分表的中间件、一个自带分库分表的数据库mongodb,一个搜索引擎倒排、正派索引太大存放在多台机器都一个是分布式操作系统;再到几千上万台的大数据计算平台hadoop 集群;或者是提供计算、存储、运维、监控等一整套解决方案都是分布式操作系统。
分布式操作系统讲稿计算机 09级陈欣冉概要内容时间导入关于分布式操作系统,可能我们之前有过了解,也知道一些关于分布式系统的知识,今天我们一起系统的学习一下分布式操作系统。
今天的内容主要分为三大块,分别是分布式的相关概念,进程管理,资源管理。
1分钟一、1、相关概念我们可以简单的认为,分布式计算机系统就是由几台计算机连成网络形成的那个整体。
管理这些计算机的那个系统叫做分布式操作系统。
与传统的集中式操作系统相比较,他们最大的区别就是,集中式操作系统管理的是一台计算机,而分布式操作系统管理的是一组计算机。
分布式操作系统中一台计算机称为一个站点或一个结点。
2、分布式操作系统的特征1、分布式操作系统的特征:2、(1)、分布性:至少有四类部件在物理上可能是分布的,包括硬件或处理的逻辑单元、数据、处理本身及控制。
(2)、自治性:所有部件或资源都是高度自治的,它们具有独立执行任务的能力。
(3)(3)、透明性:分布式计算机系统要让用户使用起来像是一个“单计算机系统”,实现分布式系统以达到这一目标的技术称透明性,它是指用户只需要描述它要得到什么服务,而不必指明由哪些物理设备或逻辑部件提供这些服务,用户不必知道服务过程实现的细节,因此非常方便。
比如在某个机器上的用户想要存取另一台机器上的资源,那用户不需要知道资源到底在哪台机器上,这也是分布式操作系统和网络操作系统最大的区别。
(4)、统一性:各部件有自治性,但作为一个完整的分布式操作系统,在用户面前要有统一性。
1分钟3、分布式操作系统的基本功能进程通信和资源共享可以保证整个分布式系统是一个整体;并行运算是分布式操作系统的一大优势;网络管理就像我们刚才说的,对用户具有透明性。
2分钟二、进程管理1、处理器的分配(1)分配策略:不可迁移的:创建进程时,系统决定为该进程分配哪台处理机,一旦分配完毕,进程将一直在这台处理机上运行,直到结束。
可迁移的:可以将已经运行的进程迁移到别的处理器上继续执行。
分布式操作系统概念及模型分布式操作系统(Distributed Operating System,缩写为DOS)是指一种可以运行在多个计算机节点上的操作系统。
与传统的单机操作系统相比,分布式操作系统具有更高的可靠性、可扩展性和性能,并且可以有效地管理多个计算节点上的资源。
1.分布性:分布式操作系统的核心特点是将计算机系统的资源分布到多个节点上。
每个节点都可以管理自己的资源,并且可以通过网络进行通信和协作。
这种分布性使得分布式操作系统能够更好地满足大规模计算和数据处理的需求。
2.透明性:分布式操作系统提供了一种透明的访问机制,使得用户和应用程序可以像使用单机操作系统一样使用分布式系统。
用户无需关心底层实现细节,只需要调用相应的系统接口,分布式操作系统会帮助完成资源的分配和管理。
透明性可以分为多个层面,包括访问透明、位置透明、迁移透明等。
3.可靠性:分布式操作系统可以通过冗余和故障恢复机制来提高系统的可靠性。
当系统中的一些节点发生故障时,其他节点可以自动接管该节点的工作,并在故障恢复后将工作重新分配回来。
这种冗余和故障恢复机制可以提高系统的容错性和可用性,从而确保系统能够持续运行。
4.可扩展性:分布式操作系统可以根据需要动态扩展系统的规模。
当系统的负载增加时,可以向分布式系统中添加更多的计算节点来分担负载。
与此同时,分布式操作系统还能够根据负载情况自动地调整资源的分配和负载均衡策略,以充分利用系统的性能和资源。
1.客户端-服务器模型:在这种模型中,系统包含一个或多个服务器节点和多个客户端节点。
服务器节点负责提供服务,例如文件共享、数据库访问等,而客户端节点则向服务器节点发送请求并接收相应的服务。
客户端-服务器模型可以提供良好的可扩展性和性能。
2.对等网络模型:在对等网络模型中,系统中的每个节点都具有相同的功能和权限。
节点之间可以进行直接的通信和协作,而无需经过中心节点的调度和控制。
对等网络模型在对等计算、分布式存储等方面具有广泛的应用。
浅谈分布式操作系统随着计算机技术的不断发展,分布式操作系统成为了越来越重要的领域。
这种操作系统将物理上分散的多个计算节点有机地结合在一起,形成了一个逻辑上统一的计算资源整体。
本文将围绕分布式操作系统的优势、发展历程以及未来挑战等方面进行深入探讨。
分布式操作系统的优势和特点主要表现在以下几个方面。
首先,资源共享是最基本的特点之一。
分布式操作系统可以将不同节点的计算资源进行统一管理和调度,使得这些资源能够被整个系统共享,提高了资源利用率。
其次,任务分配是分布式操作系统的核心优势之一。
系统可以根据需求将任务分配给不同的节点进行处理,从而实现负载均衡和并行计算,加快了任务处理速度。
最后,数据备份是分布式操作系统的重要特点之一。
系统可以将数据存储在不同的节点上,从而避免单点故障导致的数据丢失,保证了数据的安全性和可靠性。
分布式操作系统的发展历程可以分为三个阶段。
第一个阶段是分布式系统的起源。
20世纪60年代末期,为了解决大型机成本高昂、难以维护等问题,人们开始研究分布式系统。
第二个阶段是分布式系统的发展。
随着计算机技术的不断进步和应用场景的不断扩大,分布式系统得到了广泛应用。
第三个阶段是分布式操作系统的出现。
在20世纪90年代中期,随着网络技术的迅速发展和应用,分布式操作系统开始逐渐形成并得到了广泛应用。
分布式操作系统的出现得益于多种技术的不断发展和应用,比如网络技术、虚拟化技术、云计算技术等。
随着应用场景的不断扩大和需求的变化,分布式操作系统必将进一步发展。
未来的分布式操作系统可能会朝向更加智能化、自动化、安全化的方向发展,同时也会面临着许多挑战,比如如何更好地实现资源管理和调度,如何保证系统的安全性和可靠性等等。
综上所述,分布式操作系统已经成为计算机技术的重要发展方向之一。
它具有资源共享、任务分配、数据备份等优势和特点,可以广泛应用于各种场景中。
随着技术的不断发展和应用,分布式操作系统必将进一步发展并面临更多挑战。
分布式操作系统的概念分布式操作系统属于分布式软件系统其中的一部分,主要负责负责管理分布式处理系统资源和控制分布式程序运行。
分布式操作系统,用于通信和资源共享的计算机网络中,除了共享文件系统外,用户知道网络中其他计算机的存在,每台计算机拥有自己的操作系统,整个网络并没有整体的协调。
网络操作系统仅仅维护了全局文件系统和用户的帐户信息,并要求客尸和服务器间遵循一致的通信协议而已。
对于应用于集群的分布式操作系统来说,试图让用户感觉不到多台计算机的存在,并提供较高的计算性能和可用性。
因此分布式操作系统DistributedOperatingSystem的设计要充分地体现系统的透明性、可靠性和并行性。
透明性让用户感觉到面对的集群就和一台计算机一样是分布式系统设计首要解决的问题,也就是设计透明性的系统,包括:①位置透明性,使用户不需要关心所使用的系统资源的具体位置是在哪台机器上:②迁移透明性,使得系统资源可以在系统内任意移动却不影响它们在全局名字空间的名字;③复制透明性,允许系统在多个节点上复制使用频率很高的文件并自动维护文件的一致性,而用户仅感觉到复制文件的存在:④并发透明性,使得多个用户同时并发请求某资源时可能感觉到系统的迟钝但感觉不到其他用户的存在;⑤并行透明性,使得单个任务被系统并行处理,但用户仅仅感觉到系统的响应比较快而不需要知道并行的存在。
可靠性设计分布式系统的原因之一是因为它能比单处理机系统更加可靠。
当某个机器故障停机时,其他机器能接替它的工作。
可靠性实际包含了:①可用性Availability,一般通过冗余关键性的软硬件宋实现,当其中一个失效时,其他的部件能接替工作:②安全性,分布式系统的安全性问题比单处理机系统远为复杂,防止非法使用文件和其他资源的任务更为艰巨。
并行性提供高性能的计算能力是设计分布式系统的一个初衷,但这个目标的达成受到很多的限制,比如通信较慢使得进程的全局调度困难重重。
为了改善通信延迟的影响,通常要减少消息的数目,但为了提高性能,应该让一个任务并行地运行在多个处理器上,这是一对矛盾。
操作系统中的分布式操作系统操作系统是计算机系统中重要的软件组件,它负责管理和控制计算机硬件资源,以及提供应用程序和用户之间的接口。
而分布式操作系统是一种特殊类型的操作系统,它能够运行在多台计算机上,并利用网络进行通信和协调,实现资源的共享和协同工作。
本文将对分布式操作系统的概念、特点以及应用领域进行详细探讨。
一、概念分布式操作系统是一种在多台计算机上协同工作的操作系统。
它不仅仅是一个单一的操作系统,而是由多个独立运行的操作系统组成的集合。
这些操作系统通过网络进行通信,并共享计算机的硬件资源和服务。
分布式操作系统的目标是提供高性能、高可用性和高可靠性的计算环境,以满足大规模分布式应用的需求。
二、特点1. 资源共享:分布式操作系统提供了一种有效的资源共享机制,使得分布式系统中的计算机可以共享硬件设备、数据、文件等资源。
这种资源共享能够提高系统的利用率和效率,减少资源的浪费。
2. 透明性:分布式操作系统通过隐藏分布式系统的复杂性,提供了一个统一的、透明的视图给用户和应用程序。
用户和应用程序可以像在单一计算机上一样使用系统资源,而无需关心资源的实际位置和分布。
3. 可靠性:分布式操作系统通过冗余和容错机制,提供了高可靠性的计算环境。
当系统中的某些计算机发生故障时,其他计算机可以接管它们的工作,保证系统的连续运行。
4. 扩展性:分布式操作系统具有良好的扩展性,可以根据需求增加或减少计算机节点。
系统可以根据负载情况自动调整资源分配,实现高性能的计算。
三、应用领域1. 云计算:分布式操作系统是云计算基础设施的核心组件。
它可以提供高度可靠、可扩展的计算环境,以支持云服务提供商提供的各种服务和应用。
2. 分布式数据库:分布式操作系统可以提供透明的、高性能的分布式数据库管理系统。
这种数据库系统能够在多个计算机节点上存储和管理数据,提供数据共享和数据一致性的支持。
3. 分布式文件系统:分布式操作系统可以提供分布式文件系统,使得文件可以存储在多个计算机节点上,并通过网络进行访问。
分布式操作系统技术原理分布式操作系统技术原理分布式操作系统(Distributed Operating System,DOS)是一种运行在分布式环境下的操作系统,可以在多个计算机上协同工作。
它是由多个处理器和计算机组成的一个网络,处理器和计算机之间通过通信来协同工作。
分布式操作系统采用了分布式计算的思想,通过分隔和组织任务,在计算机群中协同工作,从而达到在分布式环境下高效地完成任务的目的。
分布式操作系统技术主要包括以下几个方面:1. 分布式文件系统分布式文件系统是分布式操作系统中最重要的组成部分之一。
它负责管理和共享分散在计算机群中的文件和数据。
分布式文件系统的目标是实现数据共享、数据可靠性和数据访问的高效性。
常见的分布式文件系统包括NFS、AFS和CODA。
2. 进程间通信进程间通信是指在分布式操作系统中不同计算机上运行的进程之间进行通信,数据传递以完成共同工作的过程。
这一部分通常包括远程调用、消息传递、套接字和共享内存等技术。
3. 任务分配任务分配是指将计算机群中的任务划分成能够被不同计算机处理的小任务,然后将这些任务分配到不同的计算机上进行协同处理。
其中,任务分配的优化策略是保证任务分配的公平性、最大化计算机群的利用率和减少通信开销。
4. 一致性和容错性分布式操作系统必须能够保证在网络出现故障或计算机故障的情况下系统能够正常运行。
因此,分布式操作系统需要采用一些机制来保证数据的一致性和容错性,例如分布式一致性算法和冗余备份技术等。
总之,分布式操作系统技术是一项极其复杂而又关键的技术。
它能够将多个计算机组成一个强大的计算机群,在协同工作、数据共享和任务处理等方面发挥了巨大的作用。
20150430分布式操作系统梧州学院课程论文论文题目分布式操作系统院别信息与电子工程学院专业信息与计算科学班级 12信息与计算科学班组号第五小组组员岑小莲(56)、刘琳琳(60)、陶晓星(42)摘要分布式系统是计算机发展的一个大趋势,本文从分布式系统定义、优缺点、层次结构、算法和实例等方面详细介绍了分布式系统,并通过与集中式系统以及独立PC机的比较,突出分布式系统的特点。
关键字:分布式系统;进程;调度;目录第一章分布式系统的概述 (1)1.1 分布式系统的概念 (1)1.2 分布式系统的优缺点 (1)1.2.1 分布式系统的优点 (1)1.2.2 分布式系统的缺点 (2)1.3 设计中的问题 (2)1.3.1 透明性 (2)1.3.2 灵活性 (3)1.3.3 可靠性 (3)1.3.4 性能 (3)第二章分布式系统层次结构 (4)2.1 对等体系结构 (4)2.2 中间件 (4)第三章分布式系统的同步 (5)3.1 时钟同步 (5)3.1.1 逻辑时钟 (5)3.1.2 物理时钟 (5)3.2 互斥控制 (6)3.2.1 集中式算法 (6)3.2.2 分布式算法 (6)3.2.3 令牌环算法 (7)3.3 选举算法 (8)3.3.1 欺负算法 (8)3.3.2 环算法 (8)3.4 分布式系统的死锁处理 (9)第四章分布式系统的进程 (10)4.1 线程 (10)4.2 分布式系统的调度 (10)4.3 实时分布式系统 (10)4.4实时调度 (11)第五章实例应用 (12)5.1 Amoeba的发展史 (12)5.2 Amoeba的研究目标 (12)5.3 Amoeba的系统结构 (12)5.4 Amoeba的进程管理 (13)第六章总结 (16)参考文献 (17)第一章分布式系统的概述计算机系统正在经历着一场革命。
从1945年现代计算机时代开始到1985年计算机前后,计算机是庞大而又昂贵的。
分布式操作系统的定义在当今数字化的时代,计算机技术不断发展,操作系统作为计算机系统的核心软件,也在不断演进和创新。
其中,分布式操作系统就是一种具有重要意义和广泛应用前景的操作系统类型。
要理解分布式操作系统,首先得明白什么是“分布式”。
简单来说,“分布式”就是将一个大的任务或者系统分解成多个小的部分,然后将这些小部分分布在不同的地理位置或者计算节点上,通过网络进行协同工作,以实现共同的目标。
那么分布式操作系统,就是管理和控制这些分布在不同节点上的计算资源,使得它们能够像一个统一的系统一样协同工作,为用户提供服务。
它不再像传统的单机操作系统那样只管理一台计算机的资源,而是要面对众多分散的计算机或者计算节点。
想象一下,有一个大型的企业,它在不同的城市甚至不同的国家都有分支机构,每个分支机构都有自己的计算机和服务器。
如果没有分布式操作系统,要让这些分散的计算资源协同工作,实现数据共享、任务分配和资源优化利用,将会是一件极其困难的事情。
而分布式操作系统的出现,就解决了这个问题。
分布式操作系统具有几个显著的特点。
首先,它具有透明性。
这意味着用户在使用分布式系统时,感觉不到系统中的资源是分布在不同的地方的。
就好像你在使用一个超级强大的单一计算机,而不是一堆分散的计算机。
比如,当你存储文件或者运行程序时,你不需要关心数据到底存储在哪个节点上,系统会自动为你处理这些细节。
其次,分布式操作系统具有可靠性和容错性。
由于系统中的资源分布在多个节点上,如果某个节点出现故障,系统可以自动将任务重新分配到其他正常的节点上,从而保证整个系统的正常运行。
这就好比是一个团队,如果有一个成员生病了,其他人可以顶替他的工作,不至于让整个团队的任务停滞。
再者,分布式操作系统具有可扩展性。
随着企业或者组织的发展,计算需求不断增加,可以很容易地将新的计算节点加入到系统中,而不需要对整个系统进行大规模的改造。
从功能上来说,分布式操作系统主要负责资源管理、任务分配、进程通信和同步等工作。
计算机系统中的分布式操作系统分布式操作系统是指利用多台计算机联合工作来完成一个共同的目标的一种操作系统。
分布式操作系统可以说是现代计算机科学领域的最有价值的一种技术,因为它可以为用户带来许多不同的好处和便利。
本文将探讨分布式操作系统的概念、特征、架构以及应用领域等方面。
一、分布式操作系统的概念分布式操作系统是一种能够在不同的计算机之间分享资源、存储和处理信息的操作系统。
它是由许多节点组成的系统,每个节点都有自己的操作系统和硬件。
分布式操作系统是一个可以将多个计算机联合在一起,让它们可以协同工作,共同完成一个任务的系统。
二、分布式操作系统的特征分布式操作系统的特征主要包括以下几点:1. 分布性:分布式操作系统是由多个计算机节点组成的,每个节点之间相互连接,通过网络进行通信和数据传输。
2. 并发性:分布式操作系统可以同时进行多个任务或操作,不会因为一个任务的阻塞而影响其他任务的执行。
3. 透明性:分布式系统可以让用户感觉不到自己正在使用的是一个分布式系统,而是一个单一系统。
用户无需考虑哪个计算机负责哪个任务。
4. 可靠性:分布式操作系统在一个节点出现故障时,可以通过其他计算机节点来自动处理故障,保证整个系统依然正常运转。
三、分布式操作系统的架构分布式操作系统的架构主要分为两种,一种是客户端-服务器模式,另一种是对等模式。
1. 客户端-服务器模式客户端-服务器模式是分布式系统最常用的架构,它主要由两部分组成:客户端和服务器。
其中,客户端是向服务器请求服务的计算机,而服务器是提供服务的计算机。
客户端和服务器之间通过网络连接进行通信。
2. 对等模式对等模式是指分布式系统中所有的节点都拥有相同的权利,都可以访问和使用其他节点的资源。
只要一个节点连接到了网络,它就可以成为对等节点,也可以为其他节点提供服务。
四、分布式操作系统的应用领域1. 云计算分布式操作系统在云计算领域得到了广泛应用。
云计算就是将计算资源放在云端,用户可以随时随地通过网络访问云端计算资源,无需关注底层的硬件资源。
梧州学院课程论文论文题目分布式操作系统院别信息与电子工程学院专业信息与计算科学班级 12信息与计算科学班组号第五小组组员岑小莲(56)、刘琳琳(60)、陶晓星(42)摘要分布式系统是计算机发展的一个大趋势,本文从分布式系统定义、优缺点、层次结构、算法和实例等方面详细介绍了分布式系统,并通过与集中式系统以及独立PC机的比较,突出分布式系统的特点。
关键字:分布式系统;进程;调度;目录第一章分布式系统的概述 (1)1.1 分布式系统的概念 (1)1.2 分布式系统的优缺点 (1)1.2.1 分布式系统的优点 (1)1.2.2 分布式系统的缺点 (2)1.3 设计中的问题 (2)1.3.1 透明性 (2)1.3.2 灵活性 (3)1.3.3 可靠性 (3)1.3.4 性能 (3)第二章分布式系统层次结构 (4)2.1 对等体系结构 (4)2.2 中间件 (4)第三章分布式系统的同步 (5)3.1 时钟同步 (5)3.1.1 逻辑时钟 (5)3.1.2 物理时钟 (5)3.2 互斥控制 (6)3.2.1 集中式算法 (6)3.2.2 分布式算法 (6)3.2.3 令牌环算法 (7)3.3 选举算法 (8)3.3.1 欺负算法 (8)3.3.2 环算法 (8)3.4 分布式系统的死锁处理 (9)第四章分布式系统的进程 (10)4.1 线程 (10)4.2 分布式系统的调度 (10)4.3 实时分布式系统 (10)4.4实时调度 (11)第五章实例应用 (12)5.1 Amoeba的发展史 (12)5.2 Amoeba的研究目标 (12)5.3 Amoeba的系统结构 (12)5.4 Amoeba的进程管理 (13)第六章总结 (16)参考文献 (17)第一章分布式系统的概述计算机系统正在经历着一场革命。
从1945年现代计算机时代开始到1985年计算机前后,计算机是庞大而又昂贵的。
因此,大多数机构只有少数的几台计算机,同时,由于缺乏一种将它们连接起来的方法,所以这些计算机只能相互独立地运行。
从20世纪80年代中期开始,技术上的两大进步开始改变这种状况。
首先是功能更强的微处理机的开发,开始出现了8位的机型,随后不久16位、32位甚至64位的CPU也开始普及。
其次是高速计算机网络的出现。
局域网(LAN)使得同一建筑内的数十甚至上百台计算机连接起来,使少量的信息能够在大约1毫秒左右的时间里在计算机间传送,更大量的数据则以10^7-10^8bps或更大的速率传送。
广域网(WAN)使得全球范围内的数百万台计算机连接起来,传输速率从64kbps到用于一些先进的实验型网络中的千兆位每秒。
应用这些技术使得将大量CPU组成的计算机系统通过高速网络连接在一起不仅成为可能,而且变得十分容易。
相对于以前包括单个CPU、存储器、外设和一些终端在内的集中式系统(又称单处理机系统),它们通常被称为分布式系统。
1.1 分布式系统的概念分布式系统是多个处理机通过通信线路互连而构成的松散耦合的系统。
分布式操作系统用于管理分布式系统资源。
在分布式计算机操作系统支持下,互连的计算机可以互助协调工作,共同完成一项任务。
能直接对系统中各类资源进行动态的分配和调度、任务划分、信息传输协调工作,并为用户提供一个统一的界面和标准的接口,用户通过这一界面实现所需要的操作以及使用系统资源,使系统中若干台计算机相互协作完成共同的任务,有效地控制和协调任务的并行执行,并向系统提供统一的、有效的接口软件集合。
分布式操作是网络操作系统的更高级形式,它保持网络操作系统所拥有的全部功能,同时又具有透明性、可靠性、高性能等。
1.2 分布式系统的优缺点1.2.1 分布式系统的优点分布式系统与集中式系统相比较以及与独立PC机相比较的优点如下表1.1、表1.2所示表1.1 分布式系统与集中式系统相比较的优点:表1.2 分布式系统与独立PC机相比较的优点:1.2.2 分布式系统的缺点尽管分布式系统有许多优点,但也存在着缺点。
最棘手的问题——软件,就目前的最新技术发展水平,我们在设计、实现及使用分布式系统上都没有太多的经验,因为分布式系统开发的软件还很少。
第二个潜在的问题是通信网络。
由于它会损失信息,所以就需要专门的软件进行恢复,同时网络还会产生过载。
当网络负载趋于饱和时,必须对它进行改造替换或加入另外一个网络扩容。
在这两种情况下,一个或者多个建筑中的某些部分必须花费很高的费用进行重新布线,或者更换网络接口板(如光纤)。
一旦系统依赖于网络,那么网络的信息丢失或饱和将会抵消我们通过建立分布式系统所获得的大部分优势。
1.3 设计中的问题1.3.1 透明性透明性是指分布式系统是一个整体,而不是独立组件的组合,系统对用户和应用程序屏蔽其组件的分离性。
如果一个分布式系统能够在用户与应用程序面前呈现为单个的计算机系统,这样的分布式系统被称为是透明的。
以下是简单的透明性的类型:(1)访问透明性:用相同的操作访问本地资源和远程资源。
(2)位置透明性:不需要知道资源的物理或网络位置就能够访问。
(3)并发透明性:几个进程能并发的使用共享资源,操作互不干扰。
(4)复制透明性:隐藏是否对资源进行复制。
(5)故障透明性:屏蔽资源的故障和恢复。
(6)移动透明性:资源和客户能够在系统内移动而不会影响用户或程序的操作。
(7)性能透明性:当负载变化时,系统能被重新配置以提高性能。
(8)伸缩透明性:系统和应用能够进行扩展而不改变系统结构或应用算法。
1.3.2 灵活性灵活性与透明性就像是父母关系和苹果饼,谁会反对它们的好处呢?很难想象谁会支持一个不灵活的系统。
然而,事情并不是想象的那么简单。
关于分布式操作系统结构的学术观点主要有两种。
一种观点认为,每台机器都运行一个传统的内核,内核自身提供了大多数的服务;另一种观点认为,内核应尽可能少地提供服务,大量的操作系统服务可以从用户级服务器上获得。
这两种模型分别称为单内核和微内核。
1.3.3 可靠性建立分布式系统的最初目的之一就是使系统比单处理机系统可靠。
基本思想是,如果一台机器坏了,其他机器能够接替它进行工作。
换而言之,理论上就是系统可靠性是所有部件的可靠性的“布尔或”。
然而,这是理论上的结论,仙子阿的分布式系统依靠一些专用服务器的正常工作,这些系统的可靠性更有可能是这些部件的“布尔与”而不是“布尔或”。
对可靠性可以从一下三个方面来说:(1)可用性。
存储在和进入系统的数据不能丢失或以任何方式混淆。
如果文件冗余地存放在多个服务器上,那么所有备份都必须保持一致。
一般来说,保存的备份越多,可用性越好,但不一致的可能性却越大。
(2)安全性。
必须保护文件和其他资源不被非法用户使用。
当一条消息到达服务器向其发出请求时,服务器没有一个简单的方法来判断该指令是哪个用户发出的。
在消息中没有名字或标识域可以被相信,因为发送者可能在说谎。
(3)容错性。
假设一个服务器出了故障,然后很快再启动,那么会发生什么情况呢?服务器崩溃会造成系统的死机吗?如果服务器存在正在进行的活动的重要信息的表格,恢复它将是非常困难的。
总之,分布式系统能设计成可以屏蔽错误,也就是对用户隐藏错误。
1.3.4 性能我们可以不同的性能标准来进行衡量系统的运行速度。
其中之一就是响应时间,还有吞吐量(每小时完成的工作量)、系统的利用率和网络容量消耗程度。
此外,任何基准程序的测试结果通常取决于该基准程序自身的性质,一个涉及大量独立的高度受限于CPU计算的基准程序所给出的结果,可能和以某种模式扫描一个大文件的基准程序所给出的结果有很大的不同。
第二章分布式系统层次结构分布式系统的体系结构模型涉及系统的各个部分的位置及其关系。
体系结构模型的例子包括客户服务器模型和对等进程模型。
2.1 对等体系结构在这种体系结构中,一项任务或活动涉及的所有进程扮演相同的角色,作为对等方进行协作交互,不区分客户和服务器或运行它们的计算机。
虽然客户服务器模型为数据和其他资源的共享提供了一个直接的和相对简单的方法,但客户服务器模型的伸缩性比较差。
将一个服务放在单个进程中意味着集中化地提供服务和管理,它的伸缩性不会超过提供服务的计算机的能力和该计算机所在网络连接的带宽。
对等体系结构的目的是挖掘大量参与计算机中的组员(数据和硬件)来完成某个给定的任务或活动。
对等应用和对等系统已经被成功地构造出来,使得无数计算机能访问他们存储和管理的数据及其他资源。
2.2 中间件中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于服务器的操作系统之上,管理计算资源和网络通信。
图2.1给出了中间件在分布式系统层次结构中的位置。
图2.1 分布式系统的层次结构中间件应满足大量应用的需要,运行于多种硬件和操作系统平台并支持分布计算,提供支持跨网络、硬件和操作系统平台的标准接口。
由于标准接口对于可移植性和交互操作性的重要性,中间件已成为许多标准化工作的主要部分。
对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎无须任何修改,从而保护了企业在应用软件开发和维护中的重大投资。
第三章分布式系统的同步3.1 时钟同步分布式系统的同步比集中式系统的同步要复杂一些,因为前者必须使用分布式算法。
如果像集中式系统一样,在某地收集有关系统的所有有关信息,然后让某个进程分析并做出决定,那么这是不切实际的。
一般说来,分布式算法有如下性质:(1)有关信息分散在多台机器中。
(2)进程决策仅仅依赖于本地信息。
(3)系统中单点故障应该避免。
(4)没有公用时钟或其他精确的全局时间资源存在。
前三点都说明在一处收集所有信息并对它进行处理是不可接受的。
如资源分配(以一种无死锁的方式分配)向单一的管理进程发送所有I/O请求,由该管理进程来检查这些请求,根据表中的信息允许或拒绝请求是不实际的。
进而言之,就是一个单点故障就会造成系统不可靠。
最理想的情况是,一个分布式系统应该比单机系统更可靠。
在集中式系统中,时间的概念很清楚,当进程想知道时间时,它使用由内核提供的系统调用。
如果进程A询问时间,之后进程B也询问时间,进程B得到的时间值就应该大于或等于进程A所得到的时间值,但一定不会小于进程A得到的时间值。
3.1.1 逻辑时钟对多数应用来说,所有机器在同一时间上达到一致就足够了,但这里的时间并不一定要与广播中每小时报告一次的真实时间一样。
比如对make程序的运行,只要所有的机器都认为当前是10:00就可,而尽管当前的实际时间时10:02.故对于某一类算法,重要的是内部各时钟的一致,而不是它们是否与真实时间接近,这类算法中通常将时钟称为逻辑时钟。