1第十章多处理机操作系统第十章多处理机操作系统10.1多处理机系统的基本概念10.2多处理机系统的结构10.3多处理机操作系统的特征与分类10.4进程同步10.5多处理机系统的进程调度10.6网络操作系统10.7分布式文件系统习题2第十章多处理机操作系统 10.1多处理机系统的基本概念10.1.1多处理机系统的引入进入70年代后,已采用多处理机的系统结构从提高运行速度方面来增强系统性能。实际上,多处理机系统MPS就是采用并行技术,令多个单CPU同时运行,使总体的计算能力比单CPU计算机系统的强大得多。3第十章多处理机操作系统1. CPU的时钟频率问题在早期,人们首先是采用提高CPU时钟频率的方法提高计算速度。CPU的时钟频率已从早期的每秒钟嘀嗒数十次,发展到现在的数兆赫兹(GHz),这主要得益于芯片制造工艺水平的提高。4第十章多处理机操作系统2.增加系统吞吐量随着系统中处理机数目的增加,系统的处理能力也相应增强,显然,这可使系统在单位时间内完成更多的工作,即增加系统吞吐量。当然,为了能使多个处理机协调地工作,系统也必须为此付出一定的开销。因此,利用n台处理机运行时所获得的加速比,并不能达到一台处理机时的n倍。5第十章多处理机操作系统3.节省投资在达到相同处理能力的情况下,与n台独立的计算机相比,采用具有n个处理机的系统,可以更节省费用。这是因为,此时的n个处理机可以做在同一个机箱中,使用同一个电源和共享一部分资源,如外设、内存等。6第十章多处理机操作系统4.提高系统可靠性在MPS中,通常都具有系统重构的功能,即当其中任何一个处理机发生故障时,系统可以进行重构,然后继续运行。亦即可以立即将故障处理机上所处理的任务迁移到其它的一个或多个处理机上继续处理,保证整个系统仍能正常运行,其影响仅仅表现为系统性能上的少许降低。例如,对于一个含有10个CPU的系统,如果其中某一个CPU出现故障,整个系统性能大约降低10%。7第十章多处理机操作系统10.1.2多处理机系统的类型1.紧密耦合MPS和松弛耦合MPS从多处理机之间耦合的紧密程度上,可把MPS分为两类:(1)紧密耦合(TightlyCoupled)MPS。(2)松散耦合(LooselyCoupled)MPS。8第十章多处理机操作系统2.对称多处理器系统和非对称多处理器系统根据系统中所用处理器的相同与否,可将MPS分为如下两类:(1)对称多处理器系统SMPS(SymmetricMultiprocessorSystem)。(2)非对称多处理器系统ASMPS(AsymmetricMultiprocessorSystem)。9第十章多处理机操作系统 10.2多处理机系统的结构10.2.1UMA多处理机系统的结构所谓UMA(UniformMemoryAccess),即统一内存访问(也称一致性内存访问)。在这种结构的多处理机系统中,各处理器单元(CPU)在功能和结构上都是相同的,在处理上没有主从之分(即属于SMP系统),每个处理机可以访问不同模块中的存储器单元,并且对于每个存储器单元的读写速度是相同的。10第十章多处理机操作系统1.基于单总线的SMP结构如图10-1(a)所示,在这种结构的系统中,把多个处理器与一个集中的存储器相连,所有处理器都通过公用总线访问同一个系统的物理存储器,每个处理机可以访问不同存储器模块中的单元,以及与其它处理机进行通信。这就意味着该系统只需要运行操作系统的一个拷贝,因此,为单处理器系统编写的应用程序可以直接移植到这种系统中运行。11第十章多处理机操作系统图10-1基于总线的SMP结构12第十章多处理机操作系统2.使用多层总线的SMP结构对于单总线结构中存在的总线瓶颈问题的另一个解决方法,就是使用多层总线结构。在这种结构中,系统中所有的CPU不仅共享一个高速缓存,还有一个本地私有的存储器,如图10-1(c)所示。13第十章多处理机操作系统3.使用单级交叉开关的系统结构在这种结构中,利用电话交换系统中使用交叉开关(crossbarswitch)的方法,如图10-2所示,将系统中所有的CPU与存储器结点,通过交叉开关阵列相互连接。每个交叉开关均为其中两个结点(CPU与存储器模块)之间提供一条专用连接通路,从而避免了在多个CPU之间因为要访问存储器模块所形成的对链路的争夺。而且,在任意两个结点(CPU与CPU)之间也都能找到一个交叉开关,在它们之间建立专用连接通路,方便CPU之间的通信。14第十章多处理机操作系统图10-2使用交叉开关的UMA多处理机系统15第十章多处理机操作系统4.使用多级交换网络的系统结构图10-3(a)是一个最简单的2 × 2交叉开关,它有两个输入和两个输出。送入任一输入的信息可以交换到任一输出线上。可以将这样的多级小交换开关分级连接起来,形成多级交叉开关网络,如图10-3(b)所示,图中的1A、2A、…、1B、…、3C等都是一个交叉开关级,在相邻级别的交叉开关之间设置固定的物理连接。处理机和存储器模块分别位于网络的两侧,每台处理机通过网络访问存储器模块,而且所有处理机的访问方式都是一样的,机会均等。16第十章多处理机操作系统图10-3使用多级交换网络的SMP结构示意图17第十章多处理机操作系统10.2.2NUMA多处理机系统结构1. NUMA结构和特点所谓NUMA(Nonuniform-Memory-Access),即非统一内存访问(也称非一致存储访问)。在这种结构的多处理机系统中,其访问时间随存储字的位置不同而变化,系统中的公共存储期和分布在所有处理机的本地存储器共同构成了系统的全局地址空间,可被所有的处理机访问。18第十章多处理机操作系统图10-4NUMA结构的多处理机系统19第十章多处理机操作系统2. CC-NUMA构造方法目前,对于构造大型的CC-NUMA多处理机系统,最常用的方法是采用基于目录的多处理机。其基本思想是:对于系统中每一个CPU所拥有的若干高速缓存单元,都以一定数量的单元为一组,构成一个高速缓存块,为每个CPU配置一张高速缓存块目录表(下简称目录表),对每一个高速缓存块的位置和状态进行记录和维护。每个CPU的每条访问存储器单元的指令都必须首先查询这张表,从中判断该存储器单元是否在目录表中,即其内容是否已存在于某个高速缓存块中,并进行相应的操作。20第十章多处理机操作系统图10-5CC-NUMA构造方法21第十章多处理机操作系统 10.3多处理机操作系统的特征与分类10.3.1多处理机操作系统的特征多处理机操作系统是在单机多道程序系统的基础上发展起来的,它们之间有许多相似之处,但也存在着较大的差异。归纳起来,多处理机操作系统具有以下几方面的新特征:22第十章多处理机操作系统1.并行性单机多道程序系统的主要目标是,为用户建立多个虚拟处理机以及模拟多处理机环境,使程序能并发执行,从而改善资源利用率并提高系统的吞吐量。而在多处理机系统中,由于存在着多个实处理机,已经可使多个进程并行执行,因此,多处理机操作系统的主要目标应是进一步增强程序执行的并行性程度,以获得更高的系统吞吐量及提高系统的运算速度。23第十章多处理机操作系统2.分布性在单处理机系统中,所有的任务都是在同一台处理机上执行的,所有的文件和资源也都处于操作系统的统一管理之下。然而对于多处理机系统而言,无论其结构如何,在任务、资源和对它们的控制等方面,都呈现出一定的分布性。这种情况,在松散耦合系统中表现尤其明显:(1)任务的分布(2)资源的分布(3)控制的分布24第十章多处理机操作系统3.机间的通信和同步性在多处理机系统中,不仅在同一处理机上并发执行的诸进程之间,由于资源共享和相互合作的需要,须实现同步和通信,而且在不同处理机上运行的不同进程之间,也需要进行同步和通信,除了它们之间也需要资源共享和相互合作外,这对于提高程序执行的并行性、改善系统的性能至关重要。25第十章多处理机操作系统4.可重构性为提高系统的可靠性,在多处理机系统中,应使操作系统具有这样的能力:当系统中某个处理机或存储模块等资源发生故障时,系统能够自动切除故障资源,换上备份资源,并对系统进行重构,保证其能继续工作。26第十章多处理机操作系统10.3.2多处理机操作系统的功能1.进程管理对于多处理机系统中的进程管理,主要体现在进程同步和进程通信几个方面:1)进程同步2)进程通信3)进程调度27第十章多处理机操作系统2.存储器管理在多处理机环境下,通常每个处理机都有属于自己局部的(本地)存储器,也有可供多个处理机所共享的(系统)存储器。每个处理机在访问本地存储器模块时,与访问系统存储器或其它处理机的局部存储器模块(统称远地存储器)时相比,所花费的时间也可能是不同的。28第十章多处理机操作系统因此,在多处理机系统中,存储器系统的结构十分复杂,致使对存储器系统的管理也变得非常复杂:除了需要具有单机多道程序系统中的地址变换机构和虚拟存储器功能外,还应增强和增加下面的功能和机制:(1)地址变换机构。(2)访问冲突仲裁机构。(3)数据一致性机制。29第十章多处理机操作系统3.文件管理在单处理机系统中,通常只有一个文件系统,所有的文件都存放在磁盘上,采用集中统一管理方式,也称为集中式文件系统。而在多处理机系统中,则可能采用以下三种文件系统管理方式:(1)集中式。(2)分散式。(3)分布式。30第十章多处理机操作系统4.系统重构在单处理机系统中,一旦处理机发生故障,将引发整个系统的崩溃。但在多处理机系统中,尤其是在对称多处理机系统中,由于各处理机的结构和功能相同,为了提高系统的可靠性,应使操作系统具有重构能力,即当系统中某个处理机或存储块等资源发生故障时,系统能够自动切除故障资源并换上备份资源,使之继续工作。如果没有备份资源,则重构系统使之降级运行。如果在故障的处理机上有进程亟待执行,操作系统应能安全地把它迁移到其它处理机上继续运行,对处于故障处的其它可利用资源同样也予以安全转移。31第十章多处理机操作系统10.3.3多处理机操作系统的类型1.主从式(master-slave)在这种类型的操作系统中,有一台特定的处理机被称为主处理机(MasterProcessor),其它处理机则称为从处理机。操作系统始终运行在主处理机上,负责保持和记录系统中所有处理机的属性、状态等信息,而将其它从处理机视做为可调度和分配的资源,负责为它们分配任务。从处理机不具有调度功能,只能运行主处理机分配给它的任务。32第十章多处理机操作系统主从式操作系统具有如下优缺点:(1)易于实现。(2)资源利用率低。(3)安全性较差。33第十章多处理机操作系统2.独立监督式(separatesupervisorSystem)独立监督式操作系统具有如下的优缺点:(1)自主性强。(2)可靠性高。(3)实现复杂。(4)存储空间开销大。(5)处理机负载不平衡。34第十章多处理机操作系统3.浮动监督式(floatingsupervisorControlMode)浮动监督式,也称为浮动管理程序控制方式,这是最复杂的,但也是最有效、最灵活的一种多处理机操作系统方式,常用于紧密耦合式的对称多处理机系统中。35第十章多处理机操作系统浮动监督式操作系统具有如下的优缺点:(1)高灵活性。(2)高可靠性。(3)负责均衡。(4)实现复杂。36第十章多处理机操作系统 10.4进程同步在多处理机系统中,进程间的同步显得更加重要和复杂。在紧密耦合多处理机中,多个处理机是共享存储的,因此各处理机上的诸进程之间可通过该共享存储来实现同步,进程间的同步实现相对也比较简单。但对于松散耦合的多处理机,进程之间的同步可能采取的方式较多且复杂,可分为集中式和分布式两大类同步方式。37第十章多处理机操作系统10.4.1集中式与分布式同步方式1.中心同步实体为实现进程之间的同步,系统中必须有相应的同步实体(SynchronizingEntity),如硬件锁、信号量以及进程等。如果该同步实体满足下述两个条件,则称之为中心同步实体:(1)具有唯一的名字,并且为彼此必须同步的所有进程所知道。(2)在任何时刻,