分布式与网络操作系统.ppt
第8章 分布式和网络操作系统,操作系统,陆松年,8.1 分布式操作系统概述,1分布式系统的来由刚开始的计算机仍然是集中式的,计算机与计算机之间是独立的个体,互不相干。资源的利用率很低。例如两台计算机要达到同样的功能,必须自行配备同样的硬件和软件,不能借用。用电线将计算机连起来,就出现了网络。在网络上有些计算机负责管理打印机、数据库等,其他计算机如果要使用这些功能就向这些计算机发请求就可以了。这样就出现了资源的分布。另一个发展的分支则是处理的分布。多连几个CPU,把一个任务分成几块,齐心协力共同完成。,2分布式系统的优点,一个最重要的优势还是在于经济。分布式系统具有比一个大型的集中式系统更好的性能价格比。分布式系统便于资源共享。各种信息、文件、数据库和各种昂贵的硬件资源被分布式地管理和维护,并为用户的访问提供了方便。这样就能节省大量的重复投资。分布式系统还比集中式系统更健壮、更可靠。如果一台计算机发生故障,不会影响其他计算机,整个系统仍可继续运行。分布式系统更容易扩充。如果工作负荷增加的话,只要多添几个处理机就可以解决。,分布式系统的缺点,一个比较关键的问题是软件。分布式的软件怎么做?什么样的操作系统、编程语言以及应用才适合这样的系统?用户该对系统的分布性了解多少?分布式系统通过网络连接,而通信网必然存在信息丢失,这个问题如何解决?再有就是安全问题,分布式系统过于容易共享的数据。这些优点相对于缺点而言,实在是挡不住的诱惑。分布式系统由于大量个人计算机的存在和人们协同工作的需要而不可避免地存在和发展下去。,3分布式系统的定义和特点,一群计算机,通过网络连接在一起,但是在用户看来却就像是面对着一台集中式计算机,而不是面对着一群计算机。首先分布式系统硬件上必须是分布的。分布式系统是多计算机系统,各个计算机或处理器都有自己的私有内存。多个处理器只管自己内存里的内容,与别人无关。松耦合、紧耦合分布式操作系统应该把这一群没有主、次之分的网络计算机变成一个虚拟的单处理器,不必关心有多少计算机。分布在各处的计算机资源为全系统共享,用户不必关心哪些资源在哪里。分布式操作系统应该具有这样的特征:具有一个单一的、全局的进程处理通信机制,任何两台计算机都可以通过通信来交换信息。一个程序可以发布于若干台计算机上并行地运行。无论在哪里看到的文件系统应该是一样的。,设计实现分布式操作系统时要考虑的问题,(1)透明性(2)灵活性(3)可靠性(4)性能是操作系统的生命力所在(5)相称性,8.2 网络通信机制,1OSI模式和ATM模式,这两种模式都是分层结构,数据传送时要在层与层之间加上或卸去一个数据头(header),比较麻烦。在WAN情况下数据传送迟延大,相比之下这些CPU时间就不算很多,而且这些复杂的协议处理能够有助于数据的正确接收及减轻网络负担,但是在LAN里面,数据传送延迟很小,协议处理就占用很多CPU时间。因此,大部分建立在LAN 上的分布式系统根本不采用这些分层协议,即使用,也只是用其中的一部分考虑数据发送接收只不过是问题的一个方面,至于分布式系统该如何构建,这两种模式就根本没有触及。,2Client-Server模式,在Client-Server模式里面,把操作系统看做是由一些协同工作的进程组成,这些进程就是Server,它为用户(Client)提供各种服务(这里的用户指应用程序)。Client和Server之间的通信采用简单的无连接的请求回答协议。Client进程向Server进程发一个请求消息,要求获得某项服务,Server处理以后向Client发回数据或错误信息。将其与OSI 7层模型相对应,就应该是图8-1这样的。而且在Request/Reply层中并不需要会话管理,因为这里根本就没有什么会话。,3分布式系统中进程通信方式,Client 与Server之间的通信是建立在input/output之上的,而要使计算过程看起来像一个集中式的计算过程,执行用户程序的进程应该看不见这些I/O操作。分布式系统中进程之间的通信方式。一种是使用分布式消息传送机制,这类似于单机系统中的进程消息的发送和接收。消息的传送又分为异步消息发送和接收和同步消息发送和接收两种。另一种称为远程过程调用(Remote Procedure Call,简称RPC),允许程序调用别的计算机上的过程。调用和被调用的过程是处于不同计算机上的,它们的地址空间不一样,麻烦就来了。有的调用传递的是指针,所指向的地址空间是不明长度的,比如一个指针数组等,另一方面参数和结果都必须传递,因为不同的计算机有可能采用不同的数据表示方式,要实现正确的传递,也很复杂。,8.3 网 络 同 步,分布式操作系统如何对付进程间协作和同步问题。在单CPU系统中,关键性区域的控制和互斥操作,以及其他一些同步问题是用信号灯、管理器这样的方式解决的。然而在分布式系统中,这些方法就不太行得通了,因为这些方法是基于共享内存条件之上的,在分布式系统中不可能采用这样的机制。就连一些看起来很简单的问题,比如说,到底事件A先发生还是事件B先发生,在分布式系统中都得好好考虑考虑。Lamport提出一种逻辑时钟的概念,来确定事件发生的先后顺序。但是在真实时间相关密切的过程中,例如银行转账收利息等,这个方法就又行不通了。由于真实物理时间本身算法的复杂性,各计算机本身晶振频率的不一致性,要使系统中每一台计算机都保持与真实物理时间相同是很困难的。,同步互斥问题,在系统获得统一的时间后,才有可能解决一些同步问题。在临界区域互斥机制方面,人们提出了三种比较有代表性的算法。第一种是集中式的(Centralized Algorithm)。这种算法里面有一个协调器(Coordinator)。第二种是分布式的(Distributed Algorithm)。第三种是令牌问询式的(Token Ring Algorithm)。系统中各个进程组成一个逻辑环,令牌在环上游走。拿到令牌的进程可以进入关键性区域,或者将令牌传递到下一个进程。这样也实现了互斥操作。,8.4 网络操作系统,网络操作系统具备以下5方面的功能 资源共享与管理 网络通信 网络服务:主要和基本的网络服务有电子邮件服务、文件传输、存取和管理服务、共享硬盘服务、共享打印服务。网络管理:基本任务是安全管理,即保证网络使用中数据的安全性。其中有存取权限控制、网络容错技术等具体的管理手段。此外还对网络性能进行监视、统计,记录必要的信息。网络管理涉及的主要安全设备和服务有防火墙、入侵检测、安全审计和病毒防护等 互操作能力:指不同网络各主机之间能够以透明方式访问对方的文件系统。,网络操作系统常用的工作模式,有3种:对等模式(Peer-to-Peer)、文件服务器模式和Client/Server模式。对等模式,各主机地位相同,安装相同的协议栈,彼此之间直接共享设定的网络资源。文件服务器模式,由服务器提供共享的硬盘和控制一些资源的共享。数据的共享以文件形式通过对文件的加锁、解锁来实施控制的。用户通过对服务器发送请求获得服务。Client/Server模式,Client是一组进程,Server是一组进程。Client进程作为前端,进行应用方面的任务,Server进程作为后端,进行处理方面的任务。Client与Server通过网络通信发送请求和响应进行联系。,