分布式操作系统课件.ppt
《分布式操作系统课件.ppt》由会员分享,可在线阅读,更多相关《分布式操作系统课件.ppt(145页珍藏版)》请在三一办公上搜索。
1、1,2.3 命名服务,2.3.1 概述(名字、属性、名字服务系统、名字服务的要求)2.3.2 一般的命名方式2.3.3 分布式系统中的命名方式2.3.4 名字服务器的设计,2,2.3命名服务2.3.1概述,在一个分布式系统中,名字可用于指称或索引各种类型的资源,包括计算机、服务、端口、个体对象以及用户。分布式系统中资源的共享与通信需要名字;用户(客户)请求计算机操作诸多资源中的某特定的对象时需要使用名字;进程之间不能共享由计算机系统管理的资源,除非它们能协调一致地对资源进行命名;用户之间也不能通过分布式系统相互通信,除非他们能对其他用户进行命名。,3,一、名字与属性,名字,统称为名称(name
2、)人们可读的文本名,便于人们识别和记忆系统标识符,软件用来对资源进行解释和存储的名字形式,是一个定长的位串下面是几种名称:物理网址和逻辑网址:这类名称可视为名字的位置或地址端口、进程和组标识符:这类名称可视为消息的目的地资源标识符:由服务器和内核管理的资源的低层独立定位的标识符文件:使用人们可读的文本名字进行存取的信息集,4,一、名字与属性(续),客户用文本名对资源的操作过程(Amoeda)存取一个资源涉及到将其文件名映射成对应的资源标识符,再将该资源标识符映射成一个端口标识符和一个特定服务的标识符;然后将这个端口标识符映射成一个网络地址,将这个特定服务的标识符映射到相关服务器中的资源。,5,
3、一、名字与属性(续),分布式系统中使用的许多名称都是有特定含义的,客户(用户或进程)使用这样的名称请求服务系统对它管辖的命名对象和资源进行操作。若系统管理很多对象,那么每个对象都得命名,考虑到效率,这个名称应能直接映射它所代表的对象。例如,当要求删除一个文件时,该文件的名称就被传递给文件服务系统;请求向一个进程发信号时,该进程的标识符被提供给进程管理系统。这样一些名称仅用在管理这些命名对象的服务系统的上下文(共享对象除外)中。,6,一、名字与属性(续),引用超出任何单一服务系统范围的实体时,也要命名。典型例子包括:用户(带有专用名、逻辑名、用户标识符和电子邮件地址等)计算机(带有名字宿主名,如
4、mac41)服务系统本身(如文件服务、打印服务等)。所有这些名称必须是有意义的、可读的因为用户和系统管理员需要通过这些名称访问分布式系统的主要组件和配置,程序员在编程过程中需要这些名称去访问相应的服务(系统),用户借助它们进行通信。考虑到 Internet 提供的连接能力,这些命名要求在范围上应该是全球的。,7,一、名字与属性(续),名称和对象之间的联结称为联编(binding)。特定服务名被服务系统联编到相关对象或资源的实际表示上用户名、计算机名和服务(系统)名被联编到命名对象的属性上,所有这些对象都把地址作为属性之一。一般而言,属性值或是基本值,如整数;或是自身的名称,如 Internet
5、 地址230.1 32.123.112等。最终,所有的名称被简化成基本值或不能再进一步“查找”的基本名。与名称相关的属性不仅对用户而且对其他服务都是有用的。例如,在电子邮件系统中,Internet域名系统(DNS)用来从电子邮件地址中查找邮件主机地址,但由另外的软件来传递和存储邮件消息。,8,二、名字服务系统,名字服务系统管理着一个联编数据库,其中存储着文本名(可读的)及其相关的属性。其支持的操作有:解析一个名字在该数据库中查找给定名字的相关属性;为新名字生成新的联编;删除联编;列出已联编的名字等操作。注意:虽然把联编集看作一个数据库,但一般说来名字不是简单键,常常由若干部分组成(例如,),这
6、些部分需在数据库的不同区域中分别查找,这些不同区域即上下文(context)。,9,二、名字服务系统(续),名字管理从其他服务中独立出来的原因:很大程度上是因为分布式系统的开放性;一致性(unification):让不同的服务器或服务系统管理的资源出现在同一命名方案中似乎比较方便的。例如在UNlX中的NFS中,一些文件在本地磁盘上管理,而另一些则在远程服务器上,所有的文件出现在单一的名字空间层次结构中。此外,一些“文件”的名字涉及到本地设备或命名过的管道。,10,二、名字服务系统(续),集成(integration):在分布式系统中,不一定总能预测共享的范围。有时候,需要共享和命名在不同管理域
7、中创建的资源,这可能会引起问题,例如,合并两个用户集,分配给每个用户的登录名可能会发生冲突。更坏的情况是,这两组用户可能有完全不同的命名规则。,11,三、名字服务的一般要求,名字服务越来越复杂。几个例子:Grapevine:最早的可扩充多域名字服务系统之一Global Name Service:DEC系统研究中心开发的全球名字服务,是 Grapevine的下一代,目标为:处理任意数量的名字并为任意数量的管理组织服务:例如,该系统应能处理世界上所有计算机用户的E-mail地址。,12,三、名字服务的一般要求(续),长生命期:在其生命期中,名字空间的组织和实现名字服务的一些组件将会发生许多变化。高
8、可靠性:绝大多数服务系统依赖于名字服务系统,一旦它崩溃了,其他服务系统就无法工作。故障隔离:局部故障不会导致整个名字服务系统失效。容忍怀疑:在一个较大的开放系统中,不存在所有客户都信赖的组件。DNS:Internet域命名系统(DNS)使用得非常广泛,它命名Internet上的对象(用户和计算机)。,13,2.3.2一般的命名方式,在计算机系统中,每个对象一般有两个名字:由用户识别的文本名(符号名)由系统使用的内部名内部名可以是该对象的实际位置,也可以是查询该对象的地址的一种表示形式。通过某种映射,系统可把用户定义的符号名转换成相应的内部名。名字和对象之间的关系:同一对象可能有多个名字;同一名
9、字也可用来代表不同的对象(在不同的作用域内),14,2.3.2一般的命名方式(续),A、B各有三个文件,其目录包含了每个文件的文件名及指向对应文件在磁盘上地址的指针。这里,相同的文件名可用来指称不同的文件。例如,两个目录中都含有s.pas,但它却代表两个不同的文件。不同的文件名也可以指称同一个文件。例如,A目录中的test.dat和B 目录中的old.dat两者的指针都指向“文件1”。,15,2.3.2一般的命名方式(续),由于系统可以有多个用户,因此,目录常常组织成层次结构。文件名的含义:不仅指文件名本身而且也应包括它与根之间所有目录的名字(路径名)。一个例子:tset.dat文件的 完全路
10、径名是root:A:test.dat。,16,2.3.2一般的命名方式(续),大多数系统允许用户设置一个默认目录或当前目录,此时用户不必写出完全路径名。一个例子:假定A设置它的默认目录为root:A,当用户使用文件名my.c时,操作系统 就自动地把默认目录名作为 my.c的前缀,形成完全路 径名root:A:my.c。,17,2.3.3分布式系统中的命名方式,分布式系统中的命名更复杂:由于分布式环境中的名字可用来指称不同场点或不同场点的不同层次结构上的对象,因此与单机系统相比,其命名和名字的映射工作更加复杂。以下讨论分布式环境下的名字管理器的主要功能命名方案标识符和字符串名,18,一、名字管理
11、器的主要功能,DOS中名字管理部分的功能:通过管理名字在系统的地址去定位命名过的对象;创建、删除、改变对象的名字;改变对象的位置,以支持对象在系统中的迁移;利用对象名字来支持对象的共享;创建一个对象组;,19,一、名字管理器的主要功能(续),从组中删除成员或将成员加入其中;枚举组中的成员;测试组中成员之间的关系;借助组名共享资源或共享服务程序;支持对象组的递归结构;完成外部名(符号名)到内部名(系统名)的映射工作。,20,二、分布式系统中的命名方案,分布式系统中常用的命名方案有绝对命名、相对命名和层次式命名三种。由绝对命名方案命名的名字是全系统范围唯一的、无二义性的。在机内,这类名字通常是由时
12、钟或计数器之值产生的位串。由相对命名方案命名的名字依赖于使用它的上下文。对于不同的使用者,一个对象的名字可以是不同的,或者说,一个对象的名字不唯一。,21,二、分布式系统中的命名方案(续),层次式命名方案用如下方式组织系统中的对象名:对象被分划成若干组;每组给定全局唯一的组名;每组中的每个对象在组内给定唯一的名字;一个组中对象名还可按此方式进一步分划成若干子组。,22,二、分布式系统中的命名方案-实例1,VMS的命名体系:层次式,完全路径名由一个设备名接任何个数的目录名再接文件名和扩展文件名构成。图2-22展示了VMS中两个设备 Userdisk 和Sysdisk的目录结构。Userdisk有
13、两个目录dirl和dir2。文件letter.dom 的完全路径名是Userdisk:dir2.me letter.dom.,23,二、分布式系统中的命名方案-实例2,DEC网命名方式:把类似VMS的命名体系再向上扩充一层,使之包含场点名,如图2-23所示。远程场点上的文件可通过把该场点名加在相应文件的路径名之首来进行访问。例如,在sitel上的文件letter.dom的完全路径名现在为sitel:userdisk:dir2.meletter.dom.,24,二、分布式系统中的命名方案-实例2(续),DEC网命名方案中,场点名必须唯一,且每个场点必须知道系统中所有其他场点的名字。这种方案容易实
14、现,用户也比较容易掌握。但存在下面的问题:由于文件的位置事实上已作为文件名的一部分,那么当一文件从一场点迁移到另一场点时,意味着该文件的名字也必须改变,从而导致凡涉及到访问该文件名的所有操作也不得不作相应的修改。若一文件有多个副本且位于不同的场点上,它们就会有不同的名字,那么对它们的任何更改都容易导致不一致性。系统的某些细节(如场点)对用户是可见的。一般说来,这是分布式系统的设计者所不希望的。,25,二、分布式系统中的命名方案-设计原则,设计命名方案的一个基本观点:名字是依赖于位置还是独立于位置。这也可以说是性能对灵活性的问题。在不依赖于位置的命名方案中,对象的名字不含其在系统中的位置。这使得
15、可对系统中的远程或本地资源(对象)进行一致的存取。但在依赖于位置的命名方案中,就可能出现像DEC网命名方案的问题。移动文件要注意改名,后续操作也要注意名字问题多副本情况一致性的维护问题透明性的问题,26,三、唯一标识符和字符串名,UID系统中的每一对象给定一个唯一的标识符(UID),即在系统中,它唯一地指称该对象。一个对象的UID 在其整个生命期内决不改变。特别,当一对象从一场点迁移到另一场点时其UID 仍保持不变。一个UID是相关对象的绝对名字,它通常是利用系统时钟产生的。UID 也可作为一种权限使用,此时,与其相关的对象是受保护的,它既不能由用户改变,也不应被用户忘却。为了使UID 在全系
16、统范围内唯一,也可以将局部宿主ID作为它的一部分。此外,它还可含有一些随机生成的位,使得它难以猜测,从而起到保密作用。,27,三、唯一标识符和字符串名(续),字符串名(简称串名)具有如下特征:同一串名可由不同的用户用来访问不同的对象;不同的串名可由(不同的)用户用来访问相同的对象;对象可以在场点间迁移不必改变其串名。,28,三、唯一标识符和字符串名(续)-总结,在大多数系统中,字符串名主要供用户使用,而UID仅供操作系统使用。UID通常是定长、压缩形式的(一般有64128位),这就有利于系统级的构造、使用和管理;字符串名一般较长且往往是可变长的(如10-100字节),这对用户是方便的,但不太适
17、合在系统级使用。操作系统提供了从字符串名到UID 的映射。,29,2.3.4名字服务器的设计,名字服务器(name server)的主要功能:将一个符号串名(一个整数串名或字符串名)映射成系统内唯一的物理地址。名字服务器管理着包含有“名字及其物理地址”的对照表,系统中的所有服务程序都由名字服务器来寻址和定位。例子:,30,2.3.4名字服务器的设计(续),剑桥大学设计CDCS中的服务程序族利用其名字服务器来寻址和定位。为了引用一个服务程序,client 将代表某个服务程序名字的一个ASCII串发送给名字服务器,名字服务器收到这一信息后,就查看该串是否在其管理的表中。若在,它就返回所指服务程序的
18、所在处理机编号、用于编址它的端口和相应的协议等。在CDCS中,名字服务器本身的地址是固定的,系统提供了向名字服务器管理的表中添加或从中删除信息的命令。不过,出于保护原因,这类命令只能由系统管理人员使用。,31,2.3.4名字服务器的设计(续),设计名字服务器一般有中央方式、复制方式和分划方式三种途径。用中央方式设计时,全系统仅有一个(中央)名字服务器,系统中的所有服务程序都由它来寻址和定位。但由于性能及可靠性方面的原因,这种方式不常采用。用复制方式时,每个场点都有一个名字服务器的副本,用以管理该场点上的所有服务程序及本场点与其他场点间相互请求的服务信息。,32,2.3.4名字服务器的设计(续)
19、,分划方式意指:若系统由若干子系统(子网)组成,则对于每个子系统,用一个名字服务器管理本子系统上的所有服务程序及本子系统与其他子系统相互请求的服务信息;或者若系统的名字空间可根据某种方式来分划,则对于每个经这样分划后的实体,用单独的或复制式的名字服务器管理;或者将名字空间组织成层次结构来管理。,33,2.4 DOS中的同步,分布式系统中的进程通信消息传递(Send、Receive、Replay等原语)RPC组通信这并不是分布式系统的全部内容。与此紧密相关的是进程之间如何协作及如何彼此同步。比如说,在分布式系统中临界区如何实现,资源如何分配。,34,2.4 DOS中的同步(续),在单CPU系统中
20、,临界区、互斥和其它同步问题经常使用信号量、管程等方法来解决,这些方法在分布式系统中并不十分适用,因为它们依赖于共享存储器的存在。比如,有两个进程通过使用信号量而相互作用,它们必须都能访问信号量。如果它们在同一台机器上运行,能够共享内核中的信号量,并通过执行系统调用访问它。如果它们运行在不同机器上,这种方法就不适用了,而需要其它技术。甚至看似简单的问题,比如判断事件A在事件B之前还是之后发生的问题也需要认真考虑。,35,2.4 DOS中的同步(续),2.4 分布式操作系统中的同步2.4.1 时钟同步问题提出逻辑时钟与事件定序时间戳时钟同步算法2.4.2 互斥集中式算法、分布式算法、令牌环算法、
21、选举算法,36,2.4.1 时钟同步,集中式系统的同步算法:在某地收集系统的所有有关信息,然后让某个进程分析并做出决定。在DOS中的分布式算法有如下性质:相关信息分散在多台机器中;进程决策仅仅依赖于本地信息;系统中单点故障应该避免;没有公用时钟或其它精确的全局时间资源存在。前三点都说明在一处收集所有信息并对它进行处理是不可接受的。比如,资源分配(以一种无死锁的的方式分配)向单一的管理进程发送所有I/O请求,由它来检查它们,根据表中的信息准予或拒绝请求是不实际的。在大系统中,这种解决方法会给某个进程带来太重的负担。,37,2.4.1 时钟同步,进一步而言,一个单点故障会造成系统不可靠。最理想的情
22、况是,一个分布式系统应该比单机系统更可靠,一台机器崩溃不影响其它机器的继续运行,不通过集中而获得同步所使用的方法应该与传统操作系统所用的方法不同。上述的最后一点是十分关键的,在集中式系统中时间的概念很清楚,当进程想知道时间时,它使用系统调用,由内核提供。如果进程A询问时间,之后进程B也询问时间,B得到的时间值就应该大于或等于A所得到的时间值,但一定不会小于A得到的时间值。在分布式系统中,获得时间上的一致是并不容易。,38,一个简单的例子:在缺少全局时间时的UNIX下的make程序-DOS中很难获得时间上的一致,UNIX系统中一个大程序通常可被分割成多个源文件,如果某个源文件发生变化,只需将该文
23、件重新编译即可,而不需要对所有的文件进行重编译。Make程序所使用的方法:当编程者修改完所有的源文件,他启动make程序,看一下源文件和目标文件最后一次修改的时间,如果源文件INPUT.C时间为2151,而相应的目标文件INPUT.O时间为2150,make就知道INPUT.C在INPUT.O创建后被改动过。因此,INPUT.C必须重新编译。相反,若INPUT.C时间为2144,而INPUT.O时间为2145,就不必再重编译了。make检查所有的源文件并找出哪一个需要重编译,调用编译器重新编译它。,39,一个简单的例子:在缺少全局时间时的UNIX下的make程序-DOS中很难获得时间上的一致(
24、续),在没有统一时间的分布式系统中:假设OUTPUT.O的时间为2144,紧随其后OUTPUT.C被修改,但是由于它所在机器上的时钟略慢,造成OUTPUT.C时间为2143,如图2-24所示。make将不再调用编译器,最终可执行的二进制程序将包括由老的源文件和新的源文件所产生的混合目标文件,这样可能将不能再正常执行。,40,一、问题提出,所有的计算机都有一个计时电路(计时器),通常是由一个精确的石英晶体制成,当其在张力限度内时,石英晶体以一定的频率振荡。与每个晶体相关的是两个寄存器、一个计数器和一个保持寄存器。每次振荡时使计数器减1,当计数器减为0时,产生一次中断,计数器重新从保持寄存器中装入
25、起始值,通过这种方法可以编程使得一个计时器每秒能产生60次中断或以其它希望的频率产生中断成为可能,每次中断称作一个时钟点(clock tick)。当系统刚启动时,总是要求操作者输入日期和时间,然后将它们转换成某一已知起始时间后的时钟值,并将它存储在存储器中,在每个时钟点时,中断服务程序将此值加1,用这种方法进行(软)时钟计时。,41,一、问题提出(续),在单机单时钟中,如果时钟被瞬间关闭其问题不会太大,因为这台机器上所有进程使用同一时钟,它们仍将内在地保持一致。比如,文件INPUT.C时间为2151,文件INPUT.O时间为2150,make将重新编译源文件,假设时钟关闭的时间为2,真正的时间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 操作系统 课件
链接地址:https://www.31ppt.com/p-3808355.html