《高级操作系统.ppt》由会员分享,可在线阅读,更多相关《高级操作系统.ppt(56页珍藏版)》请在优知文库上搜索。
1、2023-4-41高级操作系统Advanced Operating System2023-4-42第一章 分布式系统简介n分布式系统的诞生和定义n分布式系统发展的动力n分布式系统的目标n分布式系统的优缺点n计算机网络与分布式系统的关系n分布式系统硬件n分布式系统软件n分布式系统的设计问题2023-4-431.6 分布式系统硬件1.6.1 分布式系统硬件分类 过去人们曾提出过各种不同的多CPUCPU系统分类方案,但还没有一个得到广泛采用。被应用最多的分类法可能是弗林(flynnflynn,19721972)分类法,尽管它还相当不完善。弗林选择了两个他认为是最本质的特征既指令流数目和数据流数目作为
2、分类依据:第一类:具有单一指令流、单一数据流的计算机称之为SISDSISD,从个人计算机到大型机,所有传统的单处理器计算机(即只有一个CPUCPU)均属此类。第二类:单指令流、多数据流SIMD。这一类是指只有一个指令单元的处理器阵列。指令单元取一条指令,然后控制多个数据单元并行地进行数据处理,每个数2023-4-441.6 分布式系统硬件 据单元均有自己的数据。这种机器对多组数据的重复计算相当有用,例如64个独立向量的所有元素求和。某些超级计算机也属于SIMD(757SIMD(757向量机向量机) )。第三类:多指令流、单数据流MISDMISD。目前,没有一个已知的计算机属于这一类。第四类:多
3、指令流、多数据流MIMDMIMD。它是一组独立计算机的集合,每一个独立计算机都具有程序计数器、程序以及数据。所有的分布式系统都属于MIMDMIMD。所以,弗林分类法分类法对分布式系统来说并无太大意义。 尽管弗林分类法已到此为止,但我们还可以更进一步分类。见图1-4: 2023-4-451.6 分布式系统硬件 紧偶合 松散偶合 图图1-41-4 并行与分布式计算机系统的分类 并行和分布式计算机系统具有共享存储器的多处理器系统无共享存储器的多计算机系统总线开关总线开关2023-4-461.6 分布式系统硬件 我们把所有MIMDMIMD分为两类:n具有共享存储器的多处理器系统。n没有共享存储器的多计
4、算机系统。 两者的区别在于:在一个多处理器计算机系统中,所有CPUCPU共享一个单一的虚拟地址空间。如果一个CPUCPU把值44写入地址1000中,那么,任何其它CPUCPU从地址1000读出的值均是44。 而在多计算机系统中,每台机器均有它私有的存储器。如果某个CPUCPU把值44写入地址1000中,那么,另一个CPUCPU从地址1000中读出的值将不是44。一个多计算机系统例子是由网络连接起来的一群计算机。 2023-4-471.6 分布式系统硬件 根据互连网络结构的不同,以上两个分类还可进一步细分:总线型:是指单一的主干线、总线、线缆或其它把所有机器连接起来的介质。有线电视便采用了这样的
5、方案:架线公司沿街铺设线缆,一个分支线将用户的电视连接到主干线上。开关型:开关型不像有线电视那样具有单一的干线。机器与机器之间有专门的线路连接。它可以有许多种布线方式。信息沿着线路传输。由一个开关来选择信息的下一条出发线。世界上的公用电话系统就是这样组织的。 2023-4-481.6 分布式系统硬件 另一种分类:n处理机是紧耦合的:信息从一台处理机发向另一台处理机的延迟是短暂的且数据传输率(每秒传输位的数目)较高,例如,两个在同一印刷线路板上由蚀刻在板上的线路连接在一起的CPUCPU是紧耦合的。n机器是松散耦合的:机器间发送信息的延迟较长且数据传输率较低,例如,由一个2400位/秒的调制解调器
6、通过电话系统连接的两台计算机无疑是松散耦合的。 一般来说,紧耦合系统更多地用于并行系统(用来解决单一的问题)而中等松散耦合系统(即局域网)主要用于分布式系统(用来解决多个相关性不大的问题)。 2023-4-491.6 分布式系统硬件 总之,多处理器系统比多计算机系统的耦合更紧密。因为它们能以存储器读写速度来交换数据,不过有些基于光纤的多计算机系统也能以存储器读写速度来交换数据。尽管“紧耦合”与“松散耦合”的界限并不是很明确,但他们仍不失为有用的概念。 接下来,我们将详细讨论四种类型计算机系统即基于总线的多处理器系统、基于开关的多处理器系统、基于总线的多计算机系统以及基于开关的多计算机系统。 2
7、023-4-4101.6 分布式系统硬件1.6.2 基于总线的多处理器 基于总线的多处理器系统是由多个连接在一根公共总线上的CPUCPU以及单个存储器模块所组成。一个简单的例子就是使用一块高速的母板,在上面可插入CPUCPU和存储器条。一条典型的总线有32或64条地址线、32或64条数据线以及32条或更多的控制线,这些线都是并行工作的。为了从存储器中读出一个字,CPUCPU首先将所需字的地址放到地址总线上,然后在适当的控制线上设置一个信号以表示读。作为响应,存储器将对应地址中的内容放到数据线上以便CPUCPU读入。写的过程与此类似。 2023-4-4111.6 分布式系统硬件1.6.2 基于总
8、线的多处理器 由于只有一个存储器,如果当 CPU CPU A往存储器中写入一个字而后 CPU CPU B在一微妙后读出,则B将得到刚写入的值。这种特性称之为一致性,一致性在分布式统中具有非常重要的作用。 基于总线的多处理器存在的问题:当有个CPUCPU时,通常总线会过载而造成性能急剧下降。解决方法是在CPUCPU和总线之间加一个高速缓存,如图图1-51-5所示。高速缓存保存最常访问的数据。所有存储器的访问请求均经过缓存。如果所要访问的字在高速缓存中,则高速缓存响应CPUCPU,无需进行总线请求。 2023-4-4121.6 分布式系统硬件 CPU CPU 存储器 总线 图图1-51-5 一个基
9、于总线的多处理器 高速缓冲高速缓冲2023-4-4131.6 分布式系统硬件1.6.2 基于总线的多处理器 如果高速缓存足够大,那么,所要访问的字在高速缓存的可能性即命中率将会很高,而每个CPUCPU的总线通信量将会大幅降低,这将允许更多的CPUCPU连到总线上。通常高速缓存大小为到时,命中率将达到%以上。 但是,高速缓存的引入也带来了一个严重的问题,假设有A和B两个CPUCPU,分别将相同的字读入到各自的高速缓存中。然后A重写这个字。当B再次读这个字时,它从其高速缓存中得到是以前的值,而不是A刚刚写入的那个值。由于高速缓存的不一致性,使得系统编程变得相当困难。 2023-4-4141.6 分
10、布式系统硬件1.6.2 基于总线的多处理器 一个解决办法:当在高速缓存中写入一个字时,同时也往存储器中写入。这样的高速缓存称之为通过高速缓存写。高速缓存读的成功不会引起总线通信,而高速缓存读的失效以及所有高速缓存写的成功和失败均会造成总线通信。所有的高速缓存都一直监视着总线,每当一个高速缓存发现它的一个单元在存储器中对应的单元被写时。它要么从高速缓存中去掉该单元,要么用新值更新这个高速缓存单元。这种高速缓存称为窃听高速缓存(snooping cache)。这种设计具有一致性并对程序员是透明的,所以,几乎所有基于总线的多处理器都采用与之相同或相似的结构。采用这种结构可以在一个单一总线上挂接32或
11、64个CPUCPU。 2023-4-4151.6 分布式系统硬件 1.6.3 基于开关的多处理器系统 为了制造一个超过64个处理器的多处理器系统,需要其它的方法把CPUCPU和存储器连接起来。一种方法就是把存储器分成模块并用交叉杆(crossbarcrossbar)开关将它们与CPUCPU相连接,如图图1-6(a)1-6(a)所示。每个CPUCPU和每一个存储模块均由一个交叉杆开关将其连接。每个交叉点都是一个由硬件控制开或关的小电子交叉点开关(crosspoint switchcrosspoint switch),当CPUCPU要访问某个特定的存储模块时,连接它们的交叉点开关会立即合上,允许对
12、存储模块的访问。 优点:多个CPUCPU可以同时访问存储模块。 缺点:当两个CPUCPU要同时访问相同的存储模块时,它们当中之一必须等待。如果有n个CPUCPU和n个存储模块 2023-4-4161.6 分布式系统硬件 存储器 CPU 存储器 CPU 交叉点开关 22 开关 (a) (b) 图图1-61-6 (a)一个交叉干开关 (b)一个OmegaOmega 开关网络 2023-4-4171.6 分布式系统硬件2023-4-4181.6 分布式系统硬件 1.6.3 基于开关的多处理器 则交叉点开关必须有n2个,当n较大时,交叉点的数目将急剧增加。所以,人们试图寻找一个需要更少开关的开关网络。
13、 多级互连网络(Multi-stage Interconnection Networks,简称MINs):An NN MIN consists of several columns(called stages) of switch elements(SEs) and links that connect the N outputs from a stage to the N inputs of the next stage in a certain pattern(22 SEs are commonly used).典型的多级互连网络就是NN Omega网络。2023-4-4191.6 分布式
14、系统硬件 1.6.3 基于开关的多处理器 图图1-61-6(b b)是一个OmegaOmega网络。这个网络含有4个22开关,每一个开关有两个输入及两个输出。每个开关都可以设置成通过和交叉两种形式。当正确地设置开关时,每个CPUCPU可以访问任意一个存储模块。开关设置仅需几纳秒或更短的时间。 一般情况即N个CPUCPU和N个存储模块,OmegaOmega网络需要logN开关级,每级有N/2个开关,总开关数为(NlogN)/2。虽然对于大N,开关总数要比N2少得多,但仍然相当庞大。OmegaOmega网络的问题:延迟-例如, 对于N=1024, 从CPUCPU到存储模块共有10个开关级,再加上数
15、据回来时的 2023-4-4201.6 分布式系统硬件 1.6.3 基于开关的多处理器 10个开关级。假设CPUCPU是速度为100MIPSMIPS的现代RISCRISC芯片即指令执行时间为10纳秒,那么一个访问存储模块请求要在10纳秒内走完全部的20个开关级即开关时间必须为500皮秒(0.5纳秒)。整个多处理器系统要5120个500皮秒的开关。这需要付出昂贵的代价。 总之,对于基于总线的多处理器系统,即使有窃听高速缓存,其总线容量也会受到最多只能接64个CPUCPU的限制。超过这个限制就需要一个开关网络,大规模交叉杆开关相当的昂贵,而大规模的OmegaOmega网络不仅贵而且慢。所以建造一个
16、大型紧耦合且共享存储器的多处理器系统是可行的,但是比较困难而且昂贵。 2023-4-4211.6 分布式系统硬件1.6.4 基于总线的多计算机系统 在一个无共享存储器的多计算机系统中。每个CPUCPU都与自己的局部存储器直接相连。这一类系统所涉及的问题是CPUCPU间的通讯。由于CPUCPU之间的通信量要比CPUCPU到存储器之间的通信量少几个数量级,所以,采用互连网络比较合适。图图1-71-7中是一个基于总线的多计算机系统。它的拓扑结构与基于总线的多处理器很相似。由于通信量少,所以,不需要高速主干总线,一个速度较低的LANLAN就足够了。因此,图图1-71-7实际上是LANLAN上的工作站集合而不是插在一个快速总线上的CPUCPU集合。(CSMA/CD) 2023-4-4221.6 分布式系统硬件 工作站 工作站 工作站 局部存储器 局部存储器 局部存储器 CPU CPU CPU 网络 图图1-7 1-7 一个由LANLAN上工作站组成的多计算机 2023-4-4231.6 分布式系统硬件1.6.5 基于开关的多计算机系统 目前,人们已提出了各种不同的互连网络。在这些互连网络中,每个