您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 分布式操作系统2.3-2.5
12.3命名服务2.3.1概述(名字、属性、名字服务系统、名字服务的要求)2.3.2一般的命名方式2.3.3分布式系统中的命名方式2.3.4名字服务器的设计22.3命名服务2.3.1概述在一个分布式系统中,名字可用于指称或索引各种类型的资源,包括计算机、服务、端口、个体对象以及用户。分布式系统中资源的共享与通信需要名字;用户(客户)请求计算机操作诸多资源中的某特定的对象时需要使用名字;进程之间不能共享由计算机系统管理的资源,除非它们能协调一致地对资源进行命名;用户之间也不能通过分布式系统相互通信,除非他们能对其他用户进行命名。3一、名字与属性名字,统称为名称(name)人们可读的文本名,便于人们识别和记忆系统标识符,软件用来对资源进行解释和存储的名字形式,是一个定长的位串下面是几种名称:物理网址和逻辑网址:这类名称可视为名字的位置或地址端口、进程和组标识符:这类名称可视为消息的目的地资源标识符:由服务器和内核管理的资源的低层独立定位的标识符文件:使用人们可读的文本名字进行存取的信息集4一、名字与属性(续)客户用文本名对资源的操作过程(Amoeda)存取一个资源涉及到将其文件名映射成对应的资源标识符,再将该资源标识符映射成一个端口标识符和一个特定服务的标识符;然后将这个端口标识符映射成一个网络地址,将这个特定服务的标识符映射到相关服务器中的资源。5一、名字与属性(续)分布式系统中使用的许多名称都是有特定含义的,客户(用户或进程)使用这样的名称请求服务系统对它管辖的命名对象和资源进行操作。若系统管理很多对象,那么每个对象都得命名,考虑到效率,这个名称应能直接映射它所代表的对象。例如,当要求删除一个文件时,该文件的名称就被传递给文件服务系统;请求向一个进程发信号时,该进程的标识符被提供给进程管理系统。这样一些名称仅用在管理这些命名对象的服务系统的上下文(共享对象除外)中。6一、名字与属性(续)引用超出任何单一服务系统范围的实体时,也要命名。典型例子包括:用户(带有专用名、逻辑名、用户标识符和电子邮件地址等)计算机(带有名字—宿主名,如mac41)服务系统本身(如文件服务、打印服务等)。所有这些名称必须是有意义的、可读的因为用户和系统管理员需要通过这些名称访问分布式系统的主要组件和配置,程序员在编程过程中需要这些名称去访问相应的服务(系统),用户借助它们进行通信。考虑到Internet提供的连接能力,这些命名要求在范围上应该是全球的。7一、名字与属性(续)名称和对象之间的联结称为联编(binding)。特定服务名被服务系统联编到相关对象或资源的实际表示上用户名、计算机名和服务(系统)名被联编到命名对象的属性上,所有这些对象都把地址作为属性之一。一般而言,属性值或是基本值,如整数;或是自身的名称,如Internet地址230.132.123.112等。最终,所有的名称被简化成基本值或不能再进一步“查找”的基本名。与名称相关的属性不仅对用户而且对其他服务都是有用的。例如,在电子邮件系统中,Internet域名系统(DNS)用来从电子邮件地址中查找邮件主机地址,但由另外的软件来传递和存储邮件消息。8二、名字服务系统名字服务系统管理着一个联编数据库,其中存储着文本名(可读的)及其相关的属性。其支持的操作有:解析一个名字——在该数据库中查找给定名字的相关属性;为新名字生成新的联编;删除联编;列出已联编的名字等操作。注意:虽然把联编集看作一个数据库,但一般说来名字不是简单键,常常由若干部分组成(例如,he@ncepu.edu.cn),这些部分需在数据库的不同区域中分别查找,这些不同区域即上下文(context)。9二、名字服务系统(续)名字管理从其他服务中独立出来的原因:很大程度上是因为分布式系统的开放性;一致性(unification):让不同的服务器或服务系统管理的资源出现在同一命名方案中似乎比较方便的。例如在UNlX中的NFS中,一些文件在本地磁盘上管理,而另一些则在远程服务器上,所有的文件出现在单一的名字空间层次结构中。此外,一些“文件”的名字涉及到本地设备或命名过的管道。……10二、名字服务系统(续)……集成(integration):在分布式系统中,不一定总能预测共享的范围。有时候,需要共享和命名在不同管理域中创建的资源,这可能会引起问题,例如,合并两个用户集,分配给每个用户的登录名可能会发生冲突。更坏的情况是,这两组用户可能有完全不同的命名规则。11三、名字服务的一般要求名字服务越来越复杂。几个例子:Grapevine:最早的可扩充多域名字服务系统之一GlobalNameService:DEC系统研究中心开发的全球名字服务,是Grapevine的下一代,目标为:处理任意数量的名字并为任意数量的管理组织服务:例如,该系统应能处理世界上所有计算机用户的E-mail地址。12三、名字服务的一般要求(续)……长生命期:在其生命期中,名字空间的组织和实现名字服务的一些组件将会发生许多变化。高可靠性:绝大多数服务系统依赖于名字服务系统,一旦它崩溃了,其他服务系统就无法工作。故障隔离:局部故障不会导致整个名字服务系统失效。容忍怀疑:在一个较大的开放系统中,不存在所有客户都信赖的组件。DNS:Internet域命名系统(DNS)使用得非常广泛,它命名Internet上的对象(用户和计算机)。132.3.2一般的命名方式在计算机系统中,每个对象一般有两个名字:由用户识别的文本名(符号名)由系统使用的内部名内部名可以是该对象的实际位置,也可以是查询该对象的地址的一种表示形式。通过某种映射,系统可把用户定义的符号名转换成相应的内部名。名字和对象之间的关系:同一对象可能有多个名字;同一名字也可用来代表不同的对象(在不同的作用域内)142.3.2一般的命名方式(续)A、B各有三个文件,其目录包含了每个文件的文件名及指向对应文件在磁盘上地址的指针。这里,相同的文件名可用来指称不同的文件。例如,两个目录中都含有s.pas,但它却代表两个不同的文件。不同的文件名也可以指称同一个文件。例如,A目录中的test.dat和B目录中的old.dat两者的指针都指向“文件1”。152.3.2一般的命名方式(续)由于系统可以有多个用户,因此,目录常常组织成层次结构。文件名的含义:不仅指文件名本身而且也应包括它与根之间所有目录的名字(路径名)。一个例子:tset.dat文件的完全路径名是root:A:test.dat。162.3.2一般的命名方式(续)大多数系统允许用户设置一个默认目录或当前目录,此时用户不必写出完全路径名。一个例子:假定A设置它的默认目录为root:A,当用户使用文件名my.c时,操作系统就自动地把默认目录名作为my.c的前缀,形成完全路径名root:A:my.c。172.3.3分布式系统中的命名方式分布式系统中的命名更复杂:由于分布式环境中的名字可用来指称不同场点或不同场点的不同层次结构上的对象,因此与单机系统相比,其命名和名字的映射工作更加复杂。以下讨论分布式环境下的名字管理器的主要功能命名方案标识符和字符串名18一、名字管理器的主要功能DOS中名字管理部分的功能:通过管理名字在系统的地址去定位命名过的对象;创建、删除、改变对象的名字;改变对象的位置,以支持对象在系统中的迁移;利用对象名字来支持对象的共享;创建一个对象组;……19一、名字管理器的主要功能(续)……从组中删除成员或将成员加入其中;枚举组中的成员;测试组中成员之间的关系;借助组名共享资源或共享服务程序;支持对象组的递归结构;完成外部名(符号名)到内部名(系统名)的映射工作。20二、分布式系统中的命名方案分布式系统中常用的命名方案有绝对命名、相对命名和层次式命名三种。由绝对命名方案命名的名字是全系统范围唯一的、无二义性的。在机内,这类名字通常是由时钟或计数器之值产生的位串。由相对命名方案命名的名字依赖于使用它的上下文。对于不同的使用者,一个对象的名字可以是不同的,或者说,一个对象的名字不唯一。21二、分布式系统中的命名方案(续)层次式命名方案用如下方式组织系统中的对象名:对象被分划成若干组;每组给定全局唯一的组名;每组中的每个对象在组内给定唯一的名字;一个组中对象名还可按此方式进一步分划成若干子组。22二、分布式系统中的命名方案-实例1VMS的命名体系:层次式,完全路径名由一个设备名接任何个数的目录名再接文件名和扩展文件名构成。图2-22展示了VMS中两个设备Userdisk和Sysdisk的目录结构。Userdisk有两个目录dirl和dir2。文件letter.dom的完全路径名是Userdisk:[dir2.me]letter.dom.23二、分布式系统中的命名方案-实例2DEC网命名方式:把类似VMS的命名体系再向上扩充一层,使之包含场点名,如图2-23所示。远程场点上的文件可通过把该场点名加在相应文件的路径名之首来进行访问。例如,在sitel上的文件letter.dom的完全路径名现在为sitel::userdisk:[dir2.me]letter.dom.24二、分布式系统中的命名方案-实例2(续)DEC网命名方案中,场点名必须唯一,且每个场点必须知道系统中所有其他场点的名字。这种方案容易实现,用户也比较容易掌握。但存在下面的问题:由于文件的位置事实上已作为文件名的一部分,那么当一文件从一场点迁移到另一场点时,意味着该文件的名字也必须改变,从而导致凡涉及到访问该文件名的所有操作也不得不作相应的修改。若一文件有多个副本且位于不同的场点上,它们就会有不同的名字,那么对它们的任何更改都容易导致不一致性。系统的某些细节(如场点)对用户是可见的。一般说来,这是分布式系统的设计者所不希望的。25二、分布式系统中的命名方案-设计原则设计命名方案的一个基本观点:名字是依赖于位置还是独立于位置。这也可以说是性能对灵活性的问题。在不依赖于位置的命名方案中,对象的名字不含其在系统中的位置。这使得可对系统中的远程或本地资源(对象)进行一致的存取。但在依赖于位置的命名方案中,就可能出现像DEC网命名方案的问题。移动文件要注意改名,后续操作也要注意名字问题多副本情况一致性的维护问题透明性的问题26三、唯一标识符和字符串名UID系统中的每一对象给定一个唯一的标识符(UID),即在系统中,它唯一地指称该对象。一个对象的UID在其整个生命期内决不改变。特别,当一对象从一场点迁移到另一场点时其UID仍保持不变。一个UID是相关对象的绝对名字,它通常是利用系统时钟产生的。UID也可作为一种权限使用,此时,与其相关的对象是受保护的,它既不能由用户改变,也不应被用户忘却。为了使UID在全系统范围内唯一,也可以将局部宿主ID作为它的一部分。此外,它还可含有一些随机生成的位,使得它难以猜测,从而起到保密作用。27三、唯一标识符和字符串名(续)字符串名(简称串名)具有如下特征:同一串名可由不同的用户用来访问不同的对象;不同的串名可由(不同的)用户用来访问相同的对象;对象可以在场点间迁移不必改变其串名。28三、唯一标识符和字符串名(续)-总结在大多数系统中,字符串名主要供用户使用,而UID仅供操作系统使用。UID通常是定长、压缩形式的(一般有64~128位),这就有利于系统级的构造、使用和管理;字符串名一般较长且往往是可变长的(如10-100字节),这对用户是方便的,但不太适合在系统级使用。操作系统提供了从字符串名到UID的映射。292.3.4名字服务器的设计名字服务器(nameserver)的主要功能:将一个符号串名(一个整数串名或字符串名)映射成系统内唯一的物理地址。名字服务器管理着包含有“名字及其物理地址”的对照表,系统中的
本文标题:分布式操作系统2.3-2.5
链接地址:https://www.777doc.com/doc-3996515 .html