第八章命名服务与透明性

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8.3 分布式系统中的命名方式 8.3.1 名字管理器的主要功能 分布式操作系统中名字管理部分的主要功能是: · 通过管理名字在系统的地址去定位命名过的对象。 · 创建、删除、改变对象的名字。 · 改变对象的位置,以支持对象在系统中的迁移。 · 利用对象名字来支持对象的共享。 · 创建一个对象组。 · 从组中删除成员或将成员加入其中。 · 枚举组中的成员。 · 测试组中成员之间的关系。 · 借助组名共享资源或共享服务程序。 · 支持对象组的递归结构。 · 完成外部名(符号名)到内部名(系统名)的映射 工作。
例如,VMS的命名体系是层次式的。如图8.4所示。
例如,DEC网的命名方式,如图8.5所示
远程站点上的文件可通过把该站点名加在相应文件 的路径名之首来进行访问。例如, site1::userdisk:\dir2\me\letter.dom 在这种方案中,站点名必须惟一,且每个站点必须 知道系统中所有其他站点的名字。这种方案很容易实现, 用户也比较容易掌握。不过,它存在下面的问题: 1. 由于文件的位置作为文件名的一部分,当文件迁 移时,文件名需改变,相关文件操作也需修改。 2.若一文件有多个文件副本位于不同站点上,就有 不同的名字,对其中任何一个的更改都容易导致不一致 性。 3.系统的某些细节(如站点)对用户是可见的,这 是分布式系统所不希望的。 *设计命名方案的一个基本观点是:名字是依赖于 位置还是独立于位置。
8.2 一般的的命名方式 在计算机系统中,每个对象一般有两个名字,一个是由用户识别的文 本名(符号名),另一个是由系统使用的内部名。内部名可以是该对象的 实际位置,也可以是查询该对象之地址的一种表示形式。同一对象可能有 多个名字,一个名字也可用来代表不同的对象(在不同的作用域内)。通 过某种映射,系统可以把用户定义的符号名转换成相应的内部名。 图8.2 给出了一个简单的文件目录结构。
8.4名字服务器的设计 名字服务器(name server)的主要功能是将一个符号串名(一个 整数串名或字符串名)映射成系统内惟一的物理地址。名字服务器管理着 包含有“名字及其物理地址”的对照表,系统中的所有服务程序都由名字 服务器来寻址和定位。 设计名字服务器一般有中央方式、复制方式和分划方式三种途径。 · 用中央方式设计时,全系统仅有一个(中央)名字服务器,系统中的 所有服务器程序都由它来寻址和定位。但由于性能及可靠性方面的原因, 这种方式不常用。 · 用复制方式时,每个站点都有一个名字服务器的副本,用以管理该站 点上的所有服务程序及本站点与其他站点间相互请求的服务信息。 · 分划方式意指: (1)若系统由若干子系统(子网)组成,则对于每个子系统,用一 个名字服务器管理本子系统上的所有服务程序及本子系统与其他子系统相 互请求的服务信息。 (2)若系统的命名空间可根据某种方式来分划,则对于每个经这样 分划后的实体,用单独的或复制式的名字服务器管理。 (3)将命名空间组织成层次结构来管理。
8.1.3 命名服务的一般要求 命名服务起初是很简单的,它只需要在单一的 管理域中将名字和对应的地址联编起来。网络互连 和分布式系统规模的扩大,使得名字映射问题变得 越来越复杂。 1、处理任意数量的名字并为任意数量的管理组 织服务 2、长生命期: 3、高可靠性: 4、故障隔离: 5、容忍怀疑: Internet域命名系统(DNS)使用得非常广泛, 它命名Internet上的对象(用户和计算机)。
8.3.3惟一标识符和字符串名 系统中的每一对象给定一个惟一的标识符 (UID),即在系统中,它惟一地指称该对象。一 个对象的UID在其整个生命期内决不改变。特别, 当一个对象从一站点迁称到另一站点时其UID仍保 持不变。 事实上,一个UID是相关对象的绝对名字,它 通常是利用系统时钟产生的。UID也可作为一种权 限(capability)使用,在这种情况下,与其相关 的对象是受保护的,它既不能由用户改变,也不应被 用户忘却。 为了使UID在全系统范围内惟一,也可以将局 部宿主ID作为它的一部分。此外,它还可含有一些 随机生成的位,使得它难以猜测,从而起到保密作用。
8.5.2 与透明性相关的几个问题 在一个实用的分布式操作系统中提供完全的透明 性是比较困难的,而且也未必总是需要的。因为透明 性与分布式系统的下面几点要求相冲突: (1)局部自治性:在一个分布式系统中,某个站 点的管理者或拥有者总希望对它的资源保持尽可能多 的局部控制,这一点有时可能与系统的透明性相冲突。 (2)优化:在某些情况下,用户可能希望知道资 源位置的显示信息并对它进行控制,这可能出于优化 系统性的要求。这方面的要求显然与透明性是相冲突 的。 (3)异构:完全透明性是很难的,这个问题体现 在两个方面。第一是基础硬件可随站点的不同而异。 第二是各站点上都可能运行不同的系统软件。
由于系统可以有多个用户,因此,目录常常组织成层次结构,如图 8.3所示。 文件名不仅指文件名本身,而且也应包括它与根之间所有目录的名字 (路径名)。 大多数系统允许用户设置一个默认目录或当前目录,在这种前提下, 用户不必写出完全路径名。 由于分布式环境中的名字可用来指称不同站点或不同站点的不同层次 结构上的对象,因此与单机系统相比,其命名和名字的映射工作更加复杂。 下面讨论分布式环境下的命令方式及有关问题。
Fra Baidu bibliotek
字符串名(简称串名,即文本名或符号名)具有如 下特征: ●同一串名可由不同的用户用来访问不同的对象; ●不同的串名可由(不同的)用户用来访问相同的对 象; ●对象可以在站点间迁移不必改变其串名。
实际上,在大多数系统中,字符串名主要供用户使用, 而UID仅供操作系统使用。UID通常是定长、压缩形 式的。字符串名一般较长且往往是可变长的。操作系统 提供了从字符串名到UID的映射。
8.5 分布式系统的透明性 系统的透明性(transparency)是指系统的内部细节对用户是隐藏的。 一个真正透明的分布式系统的用户把该系统看成是一个统一的整体。例如,它可 以任意迁移系统中的某一文件而不必改变文件的名字。 8.5.1 透明性 分布式系统的透明性主要包含以下方面: (1)名字透明性:每个对象有一个全局名字 (2)位置透明性:对象的名字独立于该对象的位置 (3)程序执行的透明性:可在系统内任意处理机上调度程序执行 (4)存取透明性:存取一个对象与该对象的位置无关 (5)并发存取透明性:任意一个用户并不知道有多个用户在并发存取 (6)进程透明性:为一台机器编写的程序可在多台机器上运行 (7)复制透明性:某个用户并不知道某个对象是复制的 (8)故障透明性:系统的某些故障可以隐藏而不影响系统 (9)文件系统透明性:不知文件的存放位置、文件的副本有多少等信息 (10)性能透明性(又称网际透明性):访问远地资源与本地资源无异 (11)全局透明性:用户像使用单机一样使用分布式系统 不难看出,命名方案与透明性问题极为相关,系统的透明性隐含了下面的事 实: · 资源的位置不应嵌入其名字中: · 名字应该是全局惟一的。
第八章 命名服务与透明性 8.1 概述 在一个分布式系统中,名字可用于指称或索引各种类型的资 源,包括计算机、服务、端口、个体对象以及用户。分布式系统 中资源的共享与通信需要名字,用户(客户)请求计算机操作诸 多资源中的某个特定对象时需要使用名字。 8.1.1 名字与属性 名字可分为人们可读的文本名和系统标识符。前者便于人们 识别和记忆,后者是软件用来对资源进行有效地解释和存储的名 字形式,是一个定长的位串,二者统称为名称(name),下面 是本书中出现的几中名称: · 物理网址和逻辑网址:这类名称可视为名字的位置或地址; · 端口、进程和组标识符:这类名称可视为消息的目的地; · 资源标识符:由服务器和内核管理的资源的低层独立定位的 标识符; · 文件:使用人们可读的文本名字进行存取的信息集。
8.1.2 命名服务系统 命名服务系统管理着一个联编数据库,其中存 储着文本名(可读的)及其相关的属性。命名服务 系统支持的主要操作是解析一个名字——在该数据 库中查找给定名字的相关属性,此外还有为新名字 生成新的联编、删除联编以及列出已联编的名字等 操作。名字管理从其他服务中独立出来很大程度上 是因为分布式系的开放性,此外还有以下原因: 一致性:让不同的服务器或服务系统管理的资 源出现在同一命名方案中是比较方便的。 集成(integration):在分布式系统中,不 一定总能预测共享的范围。有时候,需要共享和命 名在不同管理域中创建的资源,这可能会引起问题。 例如,合并两个用户集,可能发生用户名冲突。
8.3.2 分布式系统中的命名方案 分布式系统中常用的命名方案有绝对命名、相对命名和 层次式命名三种。 · 由绝对命名方案命名的名字是全系统范围惟一的、无二义 性的。在机内,这类名字通常是由时钟或计数器之值产生的位 串。 · 由相对命名方案命名的名字依赖于使用它的上下文。对于 不同的使用者,一个对象的名字可以是不同的,或者说,一个 对象的名字不惟一。 · 层次式命名方案用如下方式组织系统中的对象名: (1)对象被分划成若干组; (2)每组给定全局唯一的组名; (3)每组中的每个对象在组内给定唯一的名字; (4)一个组中对象名还可按此方式进一步分划成若干组;
图8.1 给出了当客户用文本名字对某一资源(如文件)进行操作时,一 些不同类型的名字是如何组合在一起的。 分布式系统中使用的许多名称都是有特定含义的,客户(用户或进程) 使用这样的名称请求服务系统对它管辖的命名对象和资源进行操作。如图 8.1所示。 引用超出任何单一服务系统范围的实体时,也需要命名。这些实体的典 型例子包括用户、计算机及服务系统本身。这些命名要求在范围上应该是全 球的。 名称和对象之间的联结称为联编(binding)。 一般而言,属性值或是基本值,如整数,或是自身的名称,如 internet地址。最终,所有的名称都要被简化成基本值或不能再进一步 “查找”的基本名,如以太网址。与名称相关的属性不仅对用户而且对其他 服务都是有用的。
相关文档
最新文档