




已阅读5页,还剩101页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章分布式操作系统引言 计算机技术及通信技术的飞速发展 各种类型的区域网 广域网不断出现大量的计算机通过网络被连结在一起 从而获得极高的运算能力及广泛的数据共享用高速通信联结起来的大量的计算机系统 通常称作为分布式系统而这是针对以往集中式系统 即 单处理机系统 包含一个处理机 存储器 外设及一些终端 而言的分布式系统 所需用的软件同集中式系统是不同的 对于操作系统的需求也是不同的 机群类操作系统向广域化发展 NOW与GLUnix加州大学伯克利分校开发的机群操作系统NOW 使廉价工作站以机群方式达到分布式超级计算机的效能 其规模为100台UltraSPARC I处理机机群 巳投入正常运行 排名于世界最快的200台超级计算机之内构筑了GLUnix 在现有OS上的一层 策略是可移植 可跟踪销售商软件升级 能够管理实际的100台处理机系统 当代操作系统的发展趋势之一 1 在NOW于1998年完成之后 加州大学伯克利分校的一个更大规模的机群项目Millennium 千年 开始启动其目的是在校园范围完成内一个 机群的机群 ClusterofClusters Millennium 机群类操作系统向广域化发展 当代操作系统的发展趋势之一 2 Millennium由五层构成 第1层 计算机分布在十七个校园区内第2层 多处理机服务器 提供计算服务第3层 NOW组 每一个NOW都是个机群第4层 一个大规模的NOW 供全校园共享第5层 整体计算层 在NOW组上构造 用于提供NOW组和校园NOW的共享 机群类操作系统向广域化发展 当代操作系统的发展趋势之一 3 Vineyard项目 加州大学伯克利分校又一个面向未来的研究项目目标 超越一个伯克利分校校园范围内的机群 要通过高速网络连接其它工作站机群构成一个协同工作站机群联合体 afederationofcooperatingworkstationclusters 机群类操作系统向广域化发展 当代操作系统的发展趋势之一 4 Beowulf项目 开始于1994年 由NASA的Goddard空间飞行中心 GSFC 研制吸收了NOW和其它机群的设计思想用微型计算机 Linux和以太网设备等产品构造了机群现在已有分布在全世界各地的约六十个大学和研究机构在使用它 目前Beowulf还在继续发展 机群类操作系统向广域化发展 当代操作系统的发展趋势之一 5 8 1什么是分布式系统 1 分布式系统的定义 尚不存在一致性的 普遍接受的定义 我们定义 分布式系统是若干台独立计算机的一种联合体 在该联合体的用户看来 这个联合体就是一台单独的计算机在这个定义中 前半句说明是对计算机硬件的要求 后半句是对计算机软件的要求 这两项都是对分布式系统基本的要求 另一个角度 分布式系统是这样的一个系统 它运行在不具有共享内存的多台计算机上 但在用户眼里它却象是一台计算机 8 1什么是分布式系统 2 实质思想 用户不必去关心系统中的多台计算机的存在 尽管目前不存在完全满足该条件的系统 但已经有一些原型机开始出现 8 1什么是分布式系统 3 8 2分布式系统的作用 分布式系统是可以构造的 能构造的物品 不等于就是一个好主意比如 可在一台PC机上安装8台软磁盘机 但有什么作用呢 因此有必要讨论分布式系统有何优点及缺点 8 2 1分布式系统相对于集中式系统的优势 1 1 它的分布式举例 一个连锁商店集团 每一个商店有计算机系统处理当地业务 总部需要掌握各商店业务一种解决方案就是使所有的计算机联网工作 象一台单独的计算机 并运行相关的应用软件 构成了一个商用分布式系统 8 2 1分布式系统相对于集中式系统的优势 2 2 经济是分布式系统发展上的主要动力80年代后期CPU成本的大下降 用便宜的CPU 组成一个高性能 低成本的计算机系统构造有10 000个芯片的计算机 每一CPU芯片为1 000MIPS 可以获得10 000 000MIPS的运算性能3 同样的性能在集中式系统中可能极高成本 或者干脆实现不了 8 2 1分布式系统相对于集中式系统的优势 3 4 它的可靠性对于单个CPU系统而言 CPU故障意味系统的垮台分布式系统有多个CPU 当一个CPU系统发生故障时 整个系统仍旧能够工作对于高可靠的环境 如核电站等 分布式系统是有其用武之地的分布式系统的主要优点是 分布式系统可以以较低的成本获得较高的运算性能5 可扩展性 8 2 1分布式系统相对于独立PC机的优势 8 2 2分布式系统的弱点 1 1 缺乏设计 实现和使用分布式软件的经验对于分布式系统 如何设计它的操作系统呢 如何设计语言 什么样的应用软件较适合分布式系统呢 对于这些问题 许多答案还不清楚 8 2 2分布式系统的弱点 2 2 有关分布式系统中的通信问题因为信息在通信传送中可以丢失 这是分布式系统中的大问题 没有可靠的通信手段 就不存在分布式系统 8 2 2分布式系统的弱点 3 3 分布式系统共享数据但是 易于共享 也就容易出现安全上的问题 分布式系统的前途 分布式系统的优点比缺点更为重要 而且缺点可以通过种种技术手段来加以弥补有迹象表明 在今后的年代中 孤立的中 大型计算机系统将不复存在 8 3按硬件特点分类 1 8 3按硬件特点分类 2 不同的分类方法1 根据指令流的数目和数据流的数目2 根据是否有共享内存作为依据3 根据连接方式分类4 考察系统中机器是紧耦合的还是松耦合的 8 3按共享内存分类 一组具有共享内存的计算机 通常称为多处理机另一组计算机则没有共享内存 称为多计算机多计算机的一个实例 由网络连接起来的一组个人计算机群 8 3按连接方式分类 基于总线 基于总线是指用单一的媒介 如网络 总线 电缆等将所有机器连接起来 基于总线的例子有 有线电视公司用一根电缆将所有用户连接在一起基于交换 基于交换的系统中 机器与机器之间有单独的线相连 但没有单一总线的存在 机器间传递的消息需要在每一步传输路径上进行显式的交换 公用电话系统就是一种交换系统 8 3按耦合方式分类 1 按紧耦合的还是松耦合方式分类在紧耦合系统中 消息在机器之间传输的时延很短 数据传输率很高在松耦合系统中 情况正好相反 传输时延大 数据传输率低例子 同一印刷电路板上的两个CPU就属于紧耦合型通过电话用调制解调器连接起来的两台计算机就属于松耦合型 8 3按耦合方式分类 2 紧耦合型系统趋向于用作并行系统 用于解决同一个问题松耦合型系统趋向于作为分布式系统 用于解决多个不相关的问题 8 3按耦合方式分类 3 一个反例 一项利用成千上万台分布在全世界范围内的个人计算机 共同寻找分析宇宙中可能的外星人智能信号的项目 SETI TheSearchforExtraterrestrialIntelligenceatHome 参加项目的每一台计算机都分配了一个独立分析范围 在空闲的时间里机器做分析信号的工作 并在工作完成时用电子邮件汇报结果 8 3 1总线型多处理机 1 总线型多处理机由用一根总线连接起来的多个CPU和存储模块组成只有一个共享内存 所以 如果CPUA往内存中写一个数据 CPUB随后读取该字的话 B将读到A写入的值 具有这种性质的主存被称为具有一致性一致性在分布式操作系统中是一个重要的概念 8 3 1总线型多处理机 2 总线型多处理机的问题通常当CPU增加到4 5个以上时 总线就有可能过载 系统的总体性能可能急剧下降一种解决的方法 在CPU与总线之间增加高速缓存 存放CPU最近访问过的内容 如果高速缓存足够大 那么高速缓存命中率就会比较高 这样由CPU引起的总线传输就将少得多 从而使系统中能容纳更多的CPU通常 当高速缓存的大小在64k到1M之间时 命中率会高达90 以上 8 3 1总线型多处理机 3 高速缓存也带来了一致性问题比如两个CPU A和B 每个都将同一个字读入到各自的高速缓存中 然后A改写了该字 当B随后读该字时 它读到的是原来的值 而不是A新写入的值 这样内存就不再一致了 8 3 1总线型多处理机 4 一种解决方案 高速缓存被设计成写通过 write through 的当一个字被写入高速缓存时 它也同时被写入内存当中高速缓存读命中不引起总线传输 但所有的写操作都将引起总线传输 8 3 1总线型多处理机 5 此外 所有的高速缓存都要监听总线传输 当发现总线上的一个写操作所写的单元是在自己缓存的单元中时 它要么将自己缓存的单元清除 要么用写入的值更新该单元 称作监听型高速缓存方案符合一致性的要求 几乎所有的总线型多处理机都采用了写通过策略的监听型高速缓存这样的方案或类似的方案 8 3 2交换型多处理机 1 用多于64个的处理机来构造多处理机 就需要采用另一种不同的方式来连接CPU与存储器可能的方案是将主存分成多个模块 然后用交叉开关将它们与CPU连接起来 每个CPU和每个存储模块都有连线引出来 在每一个交叉点处都有一个小的交叉开关 它能打开或者合上 当一个CPU要访问某个存储模块时 相应的开关合上 访问就可以进行 8 3 2交换型多处理机 2 优点 在同一时刻可以有多个CPU分别访问不同的存储模块但是当两个CPU要同时访问同一存储模块时 其中一个必须等待 8 3 2交换型多处理机 3 8 3 2交换型多处理机 4 缺点 在要连接n个CPU与n个存储模块时 需要n2个开关 当n很大时 交叉开关方案就变得不太可行了但只要恰当地设置开关 每个CPU都能访问到任何一个存储单元 8 3 2交换型多处理机 5 例 omega网在该网络中包含4个2 2的开关 每个开关有2个输入和2个输出 它能接通任何一对输入与输出 一般而言 要连接n个CPU与n个存储单元 每一级要n 2个开关总共要 nlog2n 2个开关 它比n2要好 但仍然很大 8 3 2交换型多处理机 6 C C C C M M M M 2X2开关 CPU 存储模块 OMEGA网 8 3 2交换型多处理机 7 时延问题例如n 1024时 从CPU到存储单元要经过10个交换级 回过来也要10级 假设CPU是用100MHz的蕊片 那么它每10ns执行一个指令一个存储访问请求要在10ns内走过20级 每个开关的时延只能是0 5ns整个多处理机需要5120个0 5ns的开关 这么多短时延的开关不会是很容易就能做到的 8 3 3总线型多计算机 1 多计算机系统比较容易构造成功 在这种系统中每个CPU都有自身的主存 不能直接访问其它CPU的存储器多计算机系统的问题 如何解决CPU之间的通信由于在多计算机中 通信是在CPU与CPU之间进行的 通信量要比多处理机那种从CPU到主存之间的通信量少几个数量级 所以不需要非常高速的总线 实际上 它可以使用低速的局域网进行CPU与CPU之间的通信 8 3 3总线型多计算机 2 总线型多计算机 它是由局域网连接的一群工作站 8 3 4交换型多计算机 1 所有的多计算机都使用一种网络交换器 实现计算机与计间的通信网络交换器是一种能接收计算机发来的信息包 加以暂时存储 然后发到另一端计算机的网络部件 8 3 4交换型多计算机 2 网络交换器能暂时存放发来的信息 用它可分割局域网 连接不同的局域网及扩展局域网的应用直径 从而高效地实现不同类型计算机之间和不同拓扑结构的计算机网络之间的通信特点 每个CPU只能直接访问它私有的主存 并且这种访问是独享的 不允许其它CPU访问 8 4不同软硬件组合的系统 讨论针对多处理机和多计算机的操作系统多CPU的操作系统 大致可分出两类 紧耦合型与松耦合型松耦合型 允许系统中的机器和用户独立于其它机器和用户工作 但又有交互例一群个人机 每台都有CPU 主存 硬盘和操作系统 又通过网共享资源紧耦合型例 一台专门运行象棋程序的多处理机 每个CPU都分配有一个棋局进行推理 推理结束返回结果 8 4 1网络操作系统 1 典型的网络操作系统 一个通过局域网连接的微型计算机网络每个用户有自己的微机工作站 可能有硬盘 也可能没有 但必定有自己的操作系统操作系统管理单个的工作站 文件服务器 还要关心它们之间的通信有可能所有的机器都运行同样的操作系统 但这不是必须的 每台机器都有高度的自治权 除了网络通信之外 没有多少对整个系统范围的要求 8 4 1网络操作系统 2 每个用户都在各自的网络工作站上工作 用户是否需要访问网络上其它工作站 是用户自主的决定用户可以依据权限 使用整个网络中的各项资源 但任何时候用户也不会认为他好象就工作在一台计算机上如果出现了这种想法并试图这样去做 那么网络操作系统会明白地告诉他 这是一个错误比如 用户自己的工作站上只有C D两个硬盘 他想访问另一台机器上的F中的文件 如果用户不指定F盘在哪台机器上 系统一定会告诉他 本机上没有F盘 8 4 1网络操作系统 3 典型的网络操作系统 Sun公司网络文件系统NetworkFileSystem NFS讨论NFS的三个方面体系结构协议实现 NFS体系结构 1 基本的思想 让任意多的客户与服务器共享同一个文件系统客户与服务器在同一个局域网上 多数情况 或在广域网上假定 客户与服务器运行在不同的机器上 NFS允许一台机器可以同时既是客户又是服务器 NFS体系结构 2 每台NFS服务器 将自己的一个或多个目录共享 以便让远程的客户能访问 一个目录被共享时 其所有子目录就被共享 etc exports文件列出了一台服务器上要被共享的目录 当服务器启动时 这些目录就自动被共享 NFS体系结构 3 客户通过mount共享目录来访问它们 当客户mount一个远程目录时 该目录就成为本地目录树中的一部分 许多Sun工作站是无盘站 一台无盘站可以将一个远程的目录mount成它的根目录 它的整个文件系统就完全由远程的服务器来支持 而有本地硬盘的工作站则可以将远程的目录mount到本地目录树中 形成一个部分是本地 部分是远程的文件系统 对于在客户机上运行的程序来说 文件是在本地还是在远程服务器上是没有关系的 NFS体系结构 4 NFS基本的体系结构 服务器将自己的目录共享 客户机mount它们当两个或多个客户mount同一个目录时 它们就能通过共享文件进行通讯 某个客户机的程序创建一个文件后 另一个客户机上的程序就可以读该文件 共享文件就象通常的文件一样被使用 这种简单性是NFS具有吸引力的一个重要方面 NFS协议 1 NFS的一个目标就是支持异构系统 客户与服务器能运行在不同的操作系统和不同的硬件上 这样就需要在客户与服务器之间定义一个清晰的接口NFS定义了两个客户 服务器协议 NFS协议 2 协议是由客户发往服务器的请求 以及服务器返回给客户的响应组成的集合 服务器只需要能辨别和处理协议中定义的请求 它无需了解有关客户的更多信息 同样地 客户也可以将服务器当成一个接受并处理一定请求的黑盒子 NFS协议 3 第一条NFS协议是关于mount的 客户将一个路径名发给服务器 请求将该路径所说明的目录mount到客户的目录树中 消息中不需要包含目录将被mount的位置 因为服务器不需要关心这点 如果路径合法 并且该目录在共享目录集中 服务器就将返回一个文件指针给客户 这个指针唯一地确定了文件系统的类型 硬盘 该目录对应的I节点号 索引节点号 以及安全信息 随后对该目录的读写操作就可以通过该文件指针来进行 NFS协议 4 有许多客户端可以静态mount某些远程目录 一般这些客户端都有了一个名叫 etc rc的文件 该文件是一个包含了mount命令的shell脚本 当客户机启动时 这个shell脚本会自动执行 NFS协议 5 另一种情况是Sun版本的Unix支持的自动mount 它将本地的一个目录与一群远程的目录联系起来 在客户机启动时远程目录并没有被mount到客户机上 而是等到远程文件被首次打开时 操作系统才向每个指定的服务器发送一条消息 然后选择第一条响应的服务器 mount相应的目录 NFS协议 6 自动mount相对于使用 etc rc文件的静态mount有两个好处 第一 在客户机启动时 如果 etc rc文件中指明的某个NFS服务器没有启动 则客户机就启动不了 或者至少也要经过一定的延时 并显示出错信息 如果用户当时并不需要用到NFS服务器 那么所有这些工作都是浪费的 NFS协议 7 第二 自动mount允许客户机并行地与多个NFS服务器联系 这样达到了一定程度的容错性 只要有一台NFS服务器启动就够了 而且响应速度也得到一定的改善 通过选择最先到的响应 NFS协议 8 自动mount假定 与某个目录相关连的所有远程目录是等效的 因为NFS没有提供对文件和目录复制的自动支持 必须由用户自己来保证文件系统的一致性 因此自动mount大部分情况下针对的是只读文件系统 NFS协议 9 第二条NFS协议是关于目录和文件访问的 客户可以发送消息给服务器 以操作目录 或读写文件 另外 它们也可以访问到文件的属性 诸如文件的模式 大小 和最后一次修改的时间 NFS支持大部分UNIX有关文件的系统调用 但OPEN和CLOSE例外 NFS协议 10 因为在读写文件之前无需打开文件 读写完后也不需要关闭文件 客户如果要读一个文件 它向服务器发送一条包含文件名字的消息 请求服务器查看该文件 并返回对应的文件指针 查看文件与打开文件不同 查看操作并不将信息拷贝到系统内部表中 NFS协议 11 READ系统调用包含了文件指针 读的偏移地址和读取的字节数 采用这种方式的好处是服务器不需要记住任何打开的文件 当服务器崩溃再恢复时 没有丢失任何有关打开文件的信息 因为本来就没有这样的信息 这样一种不包含有关打开文件状态信息的服务器被称为是无状态的 NFS协议 12 相反 在UNIX系统V中 使用了远程文件系统RFS 它要求读写文件之前必须先打开文件 服务器记录所有被打开文件的信息 如当前读写头的位置 这样不需要每条请求都带上偏移地址 这种方式的缺点是一旦服务器崩溃再重启时 所有打开了文件的连接都丢失了 客户程序将随之失败 NFS则不存在这个问题 NFS协议 13 然而 NFS难以达到和UNIX完全一致的语义 例如 在UNIX中 一个文件可以被打开 并且被锁住 这样其它进程就不能再访问它 当文件关闭时 锁也同时被解开 而在NFS这样无状态的服务器中 锁是不能与打开的文件联系起来的 因为服务器不知道哪些文件被打开了 NFS需要另外一种机制来实现锁的功能 NFS协议 14 NFS使用UNIX的保护机制 对所有者 同组人员和其他用户分别有rwx位来记录他们的权力 早期的NFS中 每个请求只是简单地包含调用者的用户标识和组标识 服务器用它们来进行权限检查 但实际上 这是基于所有客户都是可信的这一假设 NFS协议 15 目前公开密钥机制可以用于客户与服务器之间的相互认证 当使用这个选项时 一个恶意的客户就无法伪装成另一个客户 因为它不知道后者的私有密钥 不过 现在密码只用作认证 数据本身还是没有加密的 NFS的实现 1 客户与服务器的实现与NFS协议之间是独立的 它包含三层 顶层是系统调用层 它负责处理象OPEN READ CLOSE这样的系统调用 在分析完调用和所带的参数后 它进激发第二层 虚拟文件系统层 VFS NFS的实现 2 VFS层的任务是维护一个打开文件表 类似于UNIX中的打开文件的I节点表 在UNIX中 一个I节点用一个 设备 I节点号 对唯一标识 VFS中打开文件表的表项称为V节点 虚拟I节点 每个打开的文件都对应有一个V节点 V节点用于指明文件是本地的还是远程的 对于远程的文件 还记录了足够的信息以便访问它们 NFS的实现 3 例子 一个调用MOUNT OPEN 和READ的序列 要mount一个远程文件系统时 系统管理员调用mount程序 指明远程的目录名 将要mount到的本地目录位置 以及其他信息 Mount程序分析远程目录的名字 从中提取它所在的机器名 然后与该机器联系 如果该目录存在 并且可以被远程mount 服务器就返回该目录的文件指针 最后mount程序调用mount系统调用 将文件指针传给内核 NFS的实现 4 接着内核为远程目录建立一个V节点 并让NFS客户代码在它内部创建一个R节点 远程I节点 存放这个文件指针 V节点指向R节点 这样VFS层中的每个V节点要么存放了指向NFS客户代码中R节点的指针 要么存放了指向本地操作系统中I节点的指针 从该V节点可知一个文件或目录是本地的或是远程的 如果是远程的 它能知道该文件的文件指针 NFS的分层结构 NFS的实现 5 当一个远程文件被打开时 内核先分析该文件的文件名 得到它所在的远程文件系统所被mount到的本地目录名 它看到该目录是远程目录 并且通过V节点表找到该目录所对应的R节点的指针 它接着就让NFS客户代码去打开这个远程文件 NFS客户代码请求相应的服务器查看该文件 并返回该文件的指针 客户代码接着在自己的内部表中为该远程文件添加一个R节点 并将结果返回给VFS层 VFS层在V节点表中为该远程文件构造一个V节点 存放指向R节点的指针 这里 我们又看到每个打开的文件或目录都有一个V节点 它指向一个R节点或一个I节点 NFS的实现 5 调用者能得到远程文件的文件描述符 这个描述符通过在VFS层的V节点表映射到相应的V节点 请注意 在服务器端是不存在对客户打开文件的记录 尽管当接到请求时 服务器需要提供文件指针 但它不保存哪些文件被客户打开 在客户端有它的文件指针 当一个文件指针发给服务器用于访问文件时 服务器只是检查该指针是否有效 有效的话 就使用它去访问文件 如果要求安全检查时 服务器会确认在RPC头中的认证密钥是否有效 NFS的实现 6 当文件描述符用于随后的系统调用时 例如READ调用 VFS层将找到相应的V节点 由此判定它是在本地还是在远程 是用I节点还是用R节点描述 NFS的实现 7 提高性能的技术 1 客户与服务器之间传输的是大粒度的数据 通常是8192个字节 客户端的VFS层得到8K数据后 它会自动请求读下一个8K数据块 这样 当它需要该数据块时 数据已经到达了 这种技术称为预取 它在一定程度上能改善性能 NFS的实现 8 对于写也采取了类似的策略 当一个写操作写的数据少于8K时 数据先在本地积累下来 只有当数据积累到8K时 才真正发送给服务器 当文件关闭时 所有的数据被立即发送给服务器 NFS的实现 9 提高性能的技术 2 caching 高速缓存 服务器缓存数据可以减少磁盘访问次数 而这对客户是透明的 客户维护两类高速缓存 一类是针对文件属性 I节点 的 另一类是针对文件数据的 当需要I节点或文件数据块时 首先检查它们是否在客户的高速缓存中 如果在 就不需要网络传输了 NFS的实现 10 尽管高速缓存能显著地改善性能 它也引入了非常讨厌的问题 假设两个客户都缓存了同一个文件数据块 其中的一个更新该数据块后 另一个客户随后读该数据块时 得到的将是老的数据块 这时出现了高速缓存的不一致性 介绍多处理机时也遇到了同样的问题 但在多处理机中可以通过让高速缓存监听总线来解决 而这里却不可能这样做 因为更新位于客户高速缓存中的文件块不会产生任何的网络通讯 即便是产生网络通讯 现有的硬件也无法监听所有的网络通讯 NFS的实现 11 考虑到这个问题的严重性 在NFS的实现中通常采取若干办法来减轻它的不利影响 一个办法是给每个高速缓存块附加一个计时器 当计时器超时时 丢弃该缓存块 通常数据块的超时是3秒 目录块的超时是30秒 这样作可以缓和问题 另外 当一个被高速缓存的文件打开时 客户会发一条消息给服务器 看该文件最近一次被修改的时间 如果修改发生在缓存之后 缓存块将被丢弃 客户重新从服务器读取新的拷贝 最后 每隔30秒 时钟都会超时 所有的dirty缓存块 修改过的块 都将被写回服务器 NFS的实现 12 NFS因为没有严格地实现UNIX的语义而受到广泛地批评 一个客户对某个文件的写操作能否影响到随后另一个客户对同一个文件的读操作 是与时间相关的 而且 一个文件被创建后 外界可能要等到30秒后才知道 还存在其它类似的问题 NFS的实现 13 尽管NFS提供了共享文件系统 它的效果就象一个打了补丁的UNIX 它没有完全定义好文件访问的语义 一群合作的程序运行的结果与时间相关 另外 NFS只涉及到文件系统 其它诸如进程这样重要的问题都没有涉及 尽管如此 NFS还是得到广泛的使用 NFS是运行在松耦合硬件上的松耦合软件 8 4 2真正的分布式操作系统 1 分布式操作系统的思想 是让用户不关心系统中多CPU的存在 目前尚不存在真正的符合条件的系统 但有原型机出现分布式的特征 进程管理应该处处一致 当一个进程开始时 所有内核将协调工作 以便找到运行该进程的最佳位置在所有机器上有单一的系统调用集合 这些调用还必须适合分布式的环境 既然在所有地方系统调用都一样 那么在所有CPU上运行同样的内核也就是自然的结果了 8 4 2真正的分布式操作系统 2 本地通信与远程通信有相同的机制有全局的保护机制需要一个全局的文件系统当然 每个内核对本地的资源还是有较大的控制权例如 既然没有共享内存 那么让各个内核管理自己的内存是很自然的事需要页面交换时 本地的内核是决定怎样做的最佳人选 没有必要全局化 8 4 3多处理机分时系统 1 常见的多处理机分时系统是运行UNIX分时系统的机器 它们与传统机器的区别仅仅是用多个CPU取代了单CPU对于外界而言 一个由32个速度为3MIPS的CPU组成的多处理机就象一个速度为96MIPS的CPU这类系统的特点是存在进程运行队列 即由系统中处于就绪态的进程组成的队列 一个保存在共享内存中的数据结构描述了这个单一的运行队列 8 4 2多处理机分时系统 2 因为没有CPU私有内存 所有程序都存放在全局共享内存中 对于一个在结束前被调度很多次的长进程而言 它在每个CPU上运行的时间将是平均的多处理机分时系统与分布式系统之间不同点的另一个方面是文件系统 多处理机上的操作系统通常有传统的文件系统 与单处理机系统几乎没有任何差别 还包括一个单一 统一的文件块高速缓存系统 8 5分布式操作系统的特征 8 5 1透明性 1 怎样让人相信在所谓的分布式系统中这样一群机器和一台普通的单处理机系统会一样呢 能达到这样目标的系统被称为是透明的 8 5 1透明性 2 透明性有两种层次含义一种含义是对用户隐藏了分布性例如 当一个UNIX用户敲入make时 从终端发出命令 再将结果显示到终端上 分布式系统可以跟单处理机系统的表现完全一样 唯一不寻常的事情是 系统的性能似乎快了很多 用户不知道诸如编译一类的工作是在多台机器上执行的 8 5 1透明性 3 系统对程序透明是透明性含义的更低一个层次 也就是说从系统调用的接口看不出有多个处理器存在如果在一个系统中 访问远程文件是通过显式地建立一条与远程服务器的连接 再将消息发送给它 那么这样的系统显然不是透明的 8 5 1透明性 4 透明性的各种含义在一个真正的分布式系统中 用户不清楚CPU 打印机 文件 数据库等等资源到底在哪里 位置透明性如果资源可以自由地从一处迁移到另一处 无需改变它们的名字 这就是迁移透明性 8 5 1透明性 5 如果操作系统可以任意复制文件和其它资源 形成多个拷贝 而用户却不用关心这点 那么系统是复制透明性的如果用户注意不到其它用户的存在 那么系统是并发透明的在用户眼里分布式系统应该象一台传统的 单处理器系统 8 5 1透明性 6 如果一个程序员知道某个分布式系统中有10 000个CPU 并且想利用其中的一部分CPU运行象棋程序 系统该怎么办 理论上的答案是 操作系统及其它系统软件如编译器 运行系统应该能知道怎样利用程序中潜在的并行性 程序员不需要知道这点 这是最困难的一种透明性 并行透明性目前还没有人能做到这点 如果能实现并行透明性 那么有关分布式系统的研究将进入新的层次 8 5 2灵活性 1 设计第二个关键性问题是灵活性涉及到灵活性的关键 分布式系统的结构设计 8 5 2灵活性 2 对于分布式系统的结构有两种不同的观点认为每台机器上应该运行一个传统的内核 自身提供大部分的服务 这种方式称为单内核认为每台机器上的内核应该提供尽可能少的服务 大部分操作系统的服务应该通过用户级的服务器来实现 这种方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3.17 明朝的灭亡 说课稿 2023-2024学年统编版历史七年级下册
- 2025光纤光缆购销合同
- 2025建筑材料采购分包合同
- 2024年七年级历史上册 第一单元 史前时期:中国境内人类的活动 第3课 远古的传说说课稿 新人教版
- 沪科版高一物理必修二第一章第一节平抛运动教学设计
- 2.2 充分条件、必要条件、充要条件说课稿-2025-2026学年高中数学苏教版2019必修第一册-苏教版2019
- 福建省16次年会教学设计《探索生长素类似物促进插条生根的最适浓度》教案
- 印刷厂员工更衣室管理规定
- 厦门事业单位笔试真题2025
- 2025合同样本-实习生合同范本
- 旧楼拆除防尘降噪专项措施
- 2025年中国毛皮服装市场调查研究报告
- 矿山开采运输管理制度
- 律师行业税务问题课件
- 2025年中医适宜技术考试练习题库(含答案)
- DB63T 1599-2025 高海拔高寒地区公路边坡生态防护技术设计规范
- 横向合同终止协议
- Module 9 great inventions Unit 3 教学设计 2024-2025学年外研版九年级英语上册
- 医院危险化学品安全管理制度
- 特殊教育《学习剪指甲》
- 投资担保合同范本7篇
评论
0/150
提交评论