计算机操作系统原理培训及实操第7章.pdf
《计算机操作系统原理培训及实操第7章.pdf》由会员分享,可在线阅读,更多相关《计算机操作系统原理培训及实操第7章.pdf(186页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章 高级操作系统第7章 高级操作系统7.1 多处理机操作系统多处理机操作系统7.2 网络操作系统网络操作系统7.3 分布式操作系统分布式操作系统第7章 高级操作系统7.1 7.1 多处理机操作系统多处理机操作系统7.1.1 7.1.1 多处理机系统的分类多处理机系统的分类 过去几年中,人们已经提出过不同的多CPU计算机系统的分类方案,但却没有一种方案真正流行或者被广泛采用。在这些方案中最经常被引用的是Flynn的分类方案(见图7-1)。Flynn提出两个他认为十分重要的特征:指令流的数量和数据流的数量。第7章 高级操作系统图图7-1 7-1 多处理机系统分类法多处理机系统分类法并行分布式计
2、算机MIMD多处理机(共享存储器)多计算机(私有存储器)总线交换总线交换紧耦合松耦合例:流水线超级计算机LAN工作站 超立方体第7章 高级操作系统 第一类是具有单指令流、单数据流的计算机,它被称为SISD(Single Instruction stream,Single Data stream)。所有传统的单处理机(即只有一个CPU的)计算机,从个人计算机到大型主机,都属于这一类。第二类是SIMD(Single Instruction stream,Multiple Data stream),多指令流、多数据流计算机系统有一个指令流和多个数据流。这种类型是指有一个能取一条指令的指令单元的处理机
3、阵列结构。在这个结构中,指令单元取出一条指令后,操纵许多数据单元并行地执行这条指令,而且每个数据单元都有它自己的数据。这种类型的计算机在用多组数据重复进行同样的计算时是非常有用的,例如,把有64个独立向量的所有元素累加起来。一些超级计算机就属于SIMD型。第7章 高级操作系统 第三类为MISD(Multiple Instruction stream,Single Data stream)。此类型计算机有多条指令流,一条数据流。我们已知的计算机中没有属于这一类的。最后一类是MIMD(Multiple Instruction stream,Multiple Data stream),多指令流、多数
4、据流计算机系统在本质上是一组独立的计算机,每个计算机有自己的程序计数器、程序和数据。所有的分布式系统都是MIMD型。第7章 高级操作系统 在图7-1中,我们进一步把MIMD计算机群分成两类:那些具有共享存储器的通常称为多处理机(multiprocessor)或多处理器;而不具有共享存储器的则称为多计算机(multicomputer)。它们之间的本质区别在于:在多处理机中,所有的CPU共享统一的虚拟地址空间。相反,在多计算机中,每个计算机有它自己私有的存储器。由网络连接的个人计算机的集合就是一个多计算机系统的普通实例。这两种类型又可以分别根据互连网络的体系结构进一步进行细分。在图7-1中,我们把
5、这两种分类描述为总线型(bus)和交换型(switched)。所谓总线型是指只通过单个网络、底板、总线、电缆或其它介质将所有计算机连接起来。第7章 高级操作系统 交换型系统并不像总线结构那样有一个共享的网络主干,而是在机器和机器之间有独立的线路,在实际使用中还有许多不同的连线方式。信息沿着线路传送,在每一步都需要进行明确的路由选择以将信息通过某个输出线路发送出去。另一种方法是按处理机之间的耦合度分类,在一些系统中的机器是紧耦合型(tightly coupled)的,而在另一些系统中它们是松耦合型(loosely coupled)的。在紧耦合的系统中,一台计算机向另一台计算机发送信息的时延很短,
6、数据传输速率高,也就是说它每秒钟所能够传送的比特数大。而在松耦合的系统中则正好相反,机器间信息传送延迟大,数据传输速率也低。第7章 高级操作系统 紧耦合的系统多用于并行系统(共同处理一个问题),而松耦合系统多用于分布式系统(处理一些不相关的问题)。总地说来,多处理机的耦合程度要比多计算机高,因为它们能以存储速率交换数据,但一些基于光纤的多计算机也能以存储速率交换数据。下面我们将更详细地介绍图7-1中所示的四个类别,即总线型多处理机、交换型多处理机、总线型多计算机和交换型多计算机。我们将会看到,不同类别的计算机系统对操作系统有不同的要求。第7章 高级操作系统7.1.2 7.1.2 多处理机系统的
7、结构多处理机系统的结构 1 1基于总线的多处理机系统基于总线的多处理机系统 基于总线的多处理机是由若干个CPU组成的,它们都连接到一个公共的总线上,并且共享一个存储器模块。只要有一个CPU和存储器卡插在高速底板或母板上,就可以实现一个简单的结构配置。典型的总线有32根或64根地址线,32根或64根数据线,还有约32根或更多的控制线,它们都是并行操作的。为了要读取存储器中的一个字,CPU首先将它想要读取的字的地址放到总线的地址线上,然后给控制线发送一个适当的信号来表明它想要进行读操作。存储器进行响应,把该地址的内容送到数据线上以使CPU可以对它进行读取。写操作也以相似的方式进行。由于存储器只有一
8、个,当CPU A给存储器写入一个字,一微秒后CPU B在读出该字的内容时会得到CPU A刚写入的那个值。第7章 高级操作系统 这种实现方案的问题在于,只要有仅仅45个CPU时,总线就会经常过载,性能也会急剧下降。解决的办法是在CPU和总线之间增加一个高速缓冲存储器(Cache Memory),如图7-2所示。缓冲存储器保留着最近刚存取过的字。所有的内存访问请求都要经过它。如果请求的字在缓冲存储器中,缓冲存储器就会直接响应CPU,而不产生总线请求。如果缓冲存储器足够大的话,那么成功的可能性(称为命中率)将是很高的,而且每个CPU的总线通信量也会急剧下降,系统中也就能够容纳更多的CPU。通常,缓冲
9、存储器的大小从64 KB1 MB,命中率经常可以达到90%或更高。第7章 高级操作系统图7-2 基于总线的多处理机CacheCPUCacheCPUCacheCPUMemoryBus第7章 高级操作系统 然而,缓冲存储器的引入也带来了一个严重的问题。假定有两个CPU A和B,它们把同一个字分别读入自己的缓冲存储器内。在A改写这个字后,当B再读该字时,从它的缓冲存储器中得到的是原来的旧值,而不是A刚写入的值。这时存储器就是不相关的,使得系统难以进行编程。解决这个问题的办法有多种,其中之一称作通写缓冲存储器(Write-Through Cache)。这个方法是把缓冲存储器设计成无论何时在对其写入一个
10、字时,该字就能同时写入存储器中。缓冲存储器读命中不会引起任何总线负载,但是缓冲器读失败和所有的写命中和写失败都会引起总线负载。第7章 高级操作系统 另外,所有的缓冲存储器都不断监听总线。当一个缓冲存储器发现它所存储的某个地址的字正被进行写操作时,它要么从它的存储器中去掉那个字,要么把该存储器字更改为新值。这样的缓冲存储器称为监听缓冲存储器(Snoopy Cache),因为它总是在对总线进行“监听”(窃听)。几乎所有基于总线的多处理机都使用这种或者与之十分类似的体系结构。第7章 高级操作系统 2 2交换型多处理机系统交换型多处理机系统 要建立一个拥有64个以上处理机的多处理机系统,就需要采用一种
11、不同的方法把这些CPU和存储器连接起来。一种可能方案就是把存储器分成许多存储模块,用纵横开关把它们与CPU相连,如图7-3(a)所示。在图中我们可以看出,每个CPU和每个存储器模块都有一个外部接口同这个交换开关相连。在每个交叉点上都有一个微小的能够用硬件打开或关闭的电子交叉点开关。当CPU想要访问一个特定的存储器模块时,连接它们的交叉点就暂时闭合,允许访问。如果两个CPU想要同时访问同一个存储器模块,其中的一个必须等待另外一个访问结束之后才能够进行。许多CPU能够同时访问存储器仍是纵横开关的优点。第7章 高级操作系统图7-3 交换型多处理机系统CCCCMMMMCCCCMMMM交叉点开关22开关
12、处理机(CPU)存储器(a)纵横开关(b)omega网络第7章 高级操作系统 纵横开关的不足之处在于当有n个CPU和n个存储器模块时,需要n2个纵横开关。如果n值很大的话,那么这个数字就会非常大。为了避免这种情况的发生,人们已经找出了替代的交换网络,它只需要较少的开关。图7-3(b)中的omega网络就是替代这种网络的一个实例。在这个网络中包括4个(22)纵横开关,每个纵横开关都有两个输入和两个输出,而且任何一个输入都可以与任何一个输出相连接。仔细研究图7-3就会发现,只要正确地设置开关,任何一个CPU都可以访问所有的存储器。而这些纵横开关的设定工作可以在纳秒级或更少的时间内完成。第7章 高级
13、操作系统 在通常的情况下,如果有n个CPU和n 个存储器模块,omega网络就要log2n个交换开关级,每级包括n/2个纵横开关,因此总共有(nlog2n)/2个纵横开关。虽然当n值很大时,它要比n2 好(远小于n2),但实际数量仍然相当大。另外还有一个问题就是时延。例如,当n=1024时,从CPU到存储器有10个纵横开关级,而还有另外的10个纵横开关级用于返回所请求的字。假定CPU是现代的RISC芯片,其速度是100 MIPS,也就是执行一条指令的时间是10 ns。如果一个存储器请求及返回结果必须在10 ns内通过所有的20个纵横开关级(10个用于传送出请求而另外10个用于传送返回结果),那
14、么纵横开关的交换时间必须为0.5 ns。根据前面的计算,整个多处理机系统需要5120个0.5 ns级的纵横开关,这是十分昂贵的。第7章 高级操作系统 3 3基于总线的多计算机系统基于总线的多计算机系统 相对而言,建立一个多计算机系统(即非共享存储器)更容易。每个CPU都与它自身的存储器直接相连。为了实现CPU间的通信,也需要一些互连方案,但是由于它只用于CPU和CPU之间的通信,通信量要比CPU和存储器之间的通信量低几个数量级。图7-4是一个基于总线的多计算机。虽然它的拓扑结构看起来与基于总线的多处理机很相似,但是因为其上的通信量很少,所以并不需要高速的背板总线。事实上,它可能是更低速的LAN
15、(比如10100 Mb/s)。因此,图7-4通常是一个LAN上工作站的集合,而不是插入高速总线的CPU卡的集合。第7章 高级操作系统图7-4 由多台工作站组成的局域网多计算机系统memoryCPULocalmemoryCPULocalmemoryCPU工作站工作站工作站总线型LANLocal第7章 高级操作系统 4 4交换型多计算机系统交换型多计算机系统 最后一个类别是交换型多计算机。虽然人们已经提出并建立了各种互连网络,但是它们都有一个特性,就是每个CPU都直接且排它地访问自己的私有存储器。图7-5给出了两个流行的拓扑结构:网格(grids)和超立方体(hypercube)。网格结构很容易理
16、解,它可以被设计在一块印刷电路板上,最适用于解决固有特性为两维的问题,例如图像理论或视觉(如机器人的眼睛或分析照片)。第7章 高级操作系统图7-5 交换型多计算机结构(a)网格(b)超立方体第7章 高级操作系统 超立方体是一种n维立方体。图7-5(b)中的超立方体是四维的。它可被想像成两个普通的立方体,每个立方体有8个顶点和12条边。每个顶点都代表一个CPU,每条边代表两个CPU间的连接。两个立方体中相应的顶点是相连的。对于一个n维的超立方体,每个CPU都有n个连接与其它CPU相连。因此,布线的复杂性按CPU数量的对数增加。因为只有相邻的CPU是互连的,信息在到达终点前必须进行n次跳跃。然而,
17、最长的可能路径也是以CPU数量的对数增加的,而不像网格中按CPU数量的平方根增加。有1024个CPU的超立方体在几年前就已经在商业上应用了,而具有16 384个CPU的超立方体也开始投入商业应用。第7章 高级操作系统7.1.3 7.1.3 多处理机操作系统多处理机操作系统 为了协调多个进程同时在共享存储器的紧密耦合的多CPU上运行,有效管理多个CPU和共享存储器及其它系统资源,需要配备一个多处理机操作系统。多处理机操作系统最常见的通用型例子是像UNIX分时系统一样运行的多处理机系统,只是它有多个CPU而不是一个CPU。对于一个普通用户而言,一个具有32个CPU,每个CPU运算速度为30 MIP
18、S的多处理机非常像一个速度为960 MIPS的CPU。多处理机操作系统除了具有单机操作系统的五大资源管理功能,还需要协调多个进程在多CPU上的运行,提供并行进程之间的通信。第7章 高级操作系统 1 1多处理机系统中的进程管理多处理机系统中的进程管理 在多处理机操作系统中设计了一个惟一的运行队列数据结构,该队列保存在共享存储器中,同时还保存着一个就绪进程列表。例如,在图7-6所示的系统中,有3个CPU和5个进程。5个进程都放在共享存储器中,其中的3个正在运行:进程A在CPU 1上,进程B在CPU 2上,进程C在CPU 3上。另外两个进程D和E在存储器中等待运行。第7章 高级操作系统图7-6 多处
19、理机系统的进程运行队列CacheCPU1CacheCPU2CacheCPU3队列:D,E操作系统磁盘共享内存总线进程A在运行进程B在运行进程C在运行E(就绪)D(就绪)C(运行)B(运行)A(运行)第7章 高级操作系统 现在假设进程B因等待I/O或分配给它的时间片用完而阻塞。一种方法是CPU 2必须挂起B再调度另一个进程运行;这时CPU 2通常将开始执行操作系统代码(存储于共享存储器中)。当已经保存了进程B的所有寄存器后,它将进入一个临界区,运行调度程序调度其它进程,使其投入运行。调度程序作为一个临界区域运行是必要的。这样能够防止两个CPU选择同一进程运行。通过使用管程、信号量或其它用于单处理
20、机系统的同步机制就可以获得必要的互斥。第7章 高级操作系统 一旦CPU 2获得运行队列的独占访问,它就能移去第一个条目D,退出临界区,然后开始执行D。因为每个CPU都没有私有的存储器,而且所有的程序都存储在全局共享存储器中,所以不论在哪一台CPU上执行进程都无关紧要。一般说来,如果一个运行时间较长的进程在完成之前被调度了多次,它在每个CPU上运行的时间大致相等。当进程需要在一个CPU上运行时,在CPU的选择上惟一有影响的因素就是要选择目前缓冲存储器中正保存着这个进程的数据的CPU,因为这有利于提高系统运行性能。换句话说,如果所有的CPU都是空闲的,那么优先将进程安排在它刚使用过的CPU上是较好
21、的选择。第7章 高级操作系统 2 2多处理机系统中的文件管理多处理机系统中的文件管理 多处理机系统通常包含了具有一个统一的共享块缓冲存储器。当一个进程执行系统调用时,通过在操作系统中产生一个陷阱来执行这个调用,当临界区被执行或存取共享块缓冲存储器时,用信号量、管程或其它一些等效的机制来锁住其它CPU,防止它们干扰。通过这种方法,当执行WRITE系统调用时,共享块缓冲存储器被锁定,向其中写入新的数据,然后开锁。正如在一个单处理机系统上一样,任何后来的READ调用将看到新的数据。总之,这种文件系统很难与单处理机文件系统进行区分。事实上,在一些多处理机系统中,一个CPU专用于运行操作系统,其它一些C
22、PU则运行用户程序。然而,由于运行操作系统的计算机经常是系统的瓶颈,所以这种情况并不合适。第7章 高级操作系统7.2 7.2 网络操作系统网络操作系统7.2.1 7.2.1 计算机网络的诞生和定义计算机网络的诞生和定义 计算机网络是计算机技术与通信技术相结合的产物。随着计算机的广泛应用,出现了多台计算机互联的需求。现代远程通信技术的发展为计算机网络的诞生提供了技术保障。美国国防部的高级研究计划局(ARPA)于1968年提出了一个计算机互连的计划,1969年建立了具有四个结点的以分组交换为基础的实验网络。1971年2月建成了具有15个结点、23台主机的网络,这就是著名的ARPAnet,这是世界上
23、最早出现的计算机网络之一,现代计算机网络的许多概念和方法都来源于ARPAnet。第7章 高级操作系统 从不同的角度对计算机网络有不同的理解,按照资源共享的观点,可以将计算机网络定义为:用通信设备和传输介质将地理上分散的多台独立计算机连接起来,并在网络通信协议的控制和网络操作系统的管理下实现信息传递和资源共享的系统。可以从以下几个方面理解这个定义:(1)至少两台计算机才能构成网络,而这些计算机是独立的,即它们可以作为单机正常工作;它们可以是在一间办公室内,也可能分布在地球的不同地方。第7章 高级操作系统 (2)这些计算机之间要用通信设备和传输介质连接起来,这些通信设备即互连设备,传输介质即通信线
24、路。(3)要通过相应的软件进行控制和管理。这些软件主要包括通信协议和网络操作系统。通信协议规定了通信的计算机之间应当遵守的通信格式和时序方面的规则,这是实现正确通信的基础。网络操作系统对网络中的软硬件资源进行统一管理,协调使用。(4)连网的目的是数据通信和资源共享。第7章 高级操作系统7.2.2 7.2.2 计算机网络的结构与组成计算机网络的结构与组成 1 1计算机网络的系统结构计算机网络的系统结构 现代计算机网络由通信子网(Communication Subnet)和资源子网(Resource Subnet)两级结构组成,如图7-7所示。通信控制处理机(CCP)(在ARPANET网中,CCP
25、被称为接口信息处理机IMP)用通信介质互连构成了通信子网,实现了主机Host之间的信息传输和存储转发任务。主机通过通信子网互连构成了资源子网,实现信息处理、运行用户应用程序和向网络用户提供可共享的软硬件资源。将计算机网络中的纯通信部分的子网与应用部分的主机分离开来,可以大大简化网络的设计。第7章 高级操作系统图7-7 由通信子网和资源子网构成的计算机网络CCPCCPCCPHHH资源子网通信子网CCP:通信控制处理机;H:主机;T:终端TTTTTTTTT第7章 高级操作系统 现代计算机网络中存储转发的信息基本单元是分组(Packet),它是将整个要交换的信息报文(Message)分成若干信息分组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 原理 培训 实操第
限制150内