163.多处理机操作系统
多处理机操作系统
10.1 多处理机系统的基本概念
10.1.1 多处理机系统的引入
进入70年代后,已采用多处理机的系统结构从提高运行速度方面来增强系统性能。实际上,多处理机系统MPS就是采用并行技术,令多个单CPU同时运行,使总体的计算能力比单CPU计算机系统的强大得多。
1. CPU的时钟频率问题
在早期,人们首先是采用提高CPU时钟频率的方法提高计算速度。CPU的时钟频率已从早期的每秒钟嘀嗒数十次,发展到现在的数兆赫兹(GHz),这主要得益于芯片制造工艺水平的提高。
2. 增加系统吞吐量
随着系统中处理机数目的增加,系统的处理能力也相应增强,显然,这可使系统在单位时间内完成更多的工作,即增加系统吞吐量。当然,为了能使多个处理机协调地工作,系统也必须为此付出一定的开销。因此,利用n台处理机运行时所获得的加速比,并不能达到一台处理机时的n倍。
3. 节省投资
在达到相同处理能力的情况下,与n台独立的计算机相比,采用具有n个处理机的系统,可以更节省费用。这是因为,此时的n个处理机可以做在同一个机箱中,使用同一个电源和共享一部分资源,如外设、内存等。
4. 提高系统可靠性
在MPS中,通常都具有系统重构的功能,即当其中任何一个处理机发生故障时,系统可以进行重构,然后继续运行。亦即可以立即将故障处理机上所处理的任务迁移到其它的一个或多个处理机上继续处理,保证整个系统仍能正常运行,其影响仅仅表现为系统性能上的少许降低。例如,对于一个含有10个CPU的系统,如果其中某一个CPU出现故障,整个系统性能大约降低10%。
10.1.2 多处理机系统的类型
1.紧密耦合MPS和松弛耦合MPS
从多处理机之间耦合的紧密程度上,可把MPS分为两类:
(1) 紧密耦合(Tightly Coupled)MPS。
(2) 松散耦合(Loosely Coupled)MPS。
2. 对称多处理器系统和非对称多处理器系统
根据系统中所用处理器的相同与否,可将MPS分为如下两类:
(1) 对称多处理器系统SMPS(Symmetric Multiprocessor System)。
(2) 非对称多处理器系统ASMPS (Asymmetric Multiprocessor System)。
10.2 多处理机系统的结构
10.2.1 UMA多处理机系统的结构
所谓UMA(Uniform Memory Access),即统一内存访问(也称一致性内存访问)。在这种结构的多处理机系统中,各处理器单元(CPU)在功能和结构上都是相同的,在处理上没有主从之分(即属于SMP系统),每个处理机可以访问不同模块中的存储器单元,并且对于每个存储器单元的读写速度是相同的。
1. 基于单总线的SMP结构
如图10-1(a)所示,在这种结构的系统中,把多个处理器与一个集中的存储器相连,所有处理器都通过公用总线访问同一个系统的物理存储器,每个处理机可以访问不同存储器模块中的单元,以及与其它处理机进行通信。这就意味着该系统只需要运行操作系统的一个拷贝,因此,为单处理器系统编写的应用程序可以直接移植到这种系统中运行。
图10-1 基于总线的SMP结构
2. 使用多层总线的SMP结构
对于单总线结构中存在的总线瓶颈问题的另一个解决方法,就是使用多层总线结构。在这种结构中,系统中所有的CPU不仅共享一个高速缓存,还有一个本地私有的存储器,如图10-1(c)所示。
3. 使用单级交叉开关的系统结构
在这种结构中,利用电话交换系统中使用交叉开关(crossbar switch)的方法,如图10-2所示,将系统中所有的CPU与存储器结点,通过交叉开关阵列相互连接。每个交叉开关均为其中两个结点(CPU与存储器模块)之间提供一条专用连接通路,从而避免了在多个 CPU之间因为要访问存储器模块所形成的对链路的争夺。而且,在任意两个结点(CPU与CPU)之间也都能找到一个交叉开关,在它们之间建立专用连接通路,方便CPU之间的通信。
图10-2 使用交叉开关的UMA多处理机系统
4. 使用多级交换网络的系统结构
图10-3(a)是一个最简单的2 交叉开关,它有两个输入和两个输出。送入任一输入的信息可以交换到任一输出线上。可以将这样的多级小交换开关分级连接起来,形成多级交叉开关网络,如图10-3(b)所示,图中的1A、2A、…、1B、…、3C等都是一个交叉开关级,在相邻级别的交叉开关之间设置固定的物理连接。处理机和存储器模块分别位于网络的两侧,每台处理机通过网络访问存储器模块,而且所有处理机的访问方式都是一样的,机会均等。
图10-3 使用多级交换网络的SMP结构示意图
10.2.2 NUMA多处理机系统结构
1. NUMA结构和特点
所谓NUMA(Nonuniform-Memory- Access),即非统一内存访问(也称非一致存储访问)。在这种结构的多处理机系统中,其访问时间随存储字的位置不同而变化,系统中的公共存储期和分布在所有处理机的本地存储器共同构成了系统的全局地址空间,可被所有的处理机访问。
图10-4 NUMA结构的多处理机系统
2. CC-NUMA构造方法
目前,对于构造大型的CC-NUMA多处理机系统,最常用的方法是采用基于目录的多处理机。其基本思想是:对于系统中每一个CPU所拥有的若干高速缓存单元,都以一定数量的单元为一组,构成一个高速缓存块,为每个CPU配置一张高速缓存块目录表(下简称目录表),对每一个高速缓存块的位置和状态进行记录和维护。每个CPU的每条访问存储器单元的指令都必须首先查询这张表,从中判断该存储器单元是否在目录表中,即其内容是否已存在于某个高速缓存块中,并进行相应的操作。
图10-5 CC-NUMA构造方法
10.3 多处理机操作系统的特征与分类
10.3.1 多处理机操作系统的特征
多处理机操作系统是在单机多道程序系统的基础上发展起来的,它们之间有许多相似之处,但也存在着较大的差异。归纳起来,多处理机操作系统具有以下几方面的新特征:
1. 并行性
单机多道程序系统的主要目标是,为用户建立多个虚拟处理机以及模拟多处理机环境,使程序能并发执行,从而改善资源利用率并提高系统的吞吐量。而在多处理机系统中,由于存在着多个实处理机,已经可使多个进程并行执行,因此,多处理机操作系统的主要目标应是进一步增强程序执行的并行性程度,以获得更高的系统吞吐量及提高系统的运算速度。
2. 分布性
在单处理机系统中,所有的任务都是在同一台处理机上执行的,所有的文件和资源也都处于操作系统的统一管理之下。然而对于多处理机系统而言,无论其结构如何,在任务、资源和对它们的控制等方面,都呈现出一定的分布性。这种情况,在松散耦合系统中表现尤其明显:
(1) 任务的分布
(2) 资源的分布
(3) 控制的分布
3. 机间的通信和同步性
在多处理机系统中,不仅在同一处理机上并发执行的诸进程之间,由于资源共享和相互合作的需要,须实现同步和通信,而且在不同处理机上运行的不同进程之间,也需要进行同步和通信,除了它们之间也需要资源共享和相互合作外,这对于提高程序执行的并行性、改善系统的性能至关重要。
4. 可重构性
为提高系统的可靠性,在多处理机系统中,应使操作系统具有这样的能力:当系统中某个处理机或存储模块等资源发生故障时,系统能够自动切除故障资源,换上备份资源,并对系统进行重构,保证其能继续工作。
10.3.2 多处理机操作系统的功能
1. 进程管理
对于多处理机系统中的进程管理,主要体现在进程同步和进程通信几个方面:
1) 进程同步
2) 进程通信
3) 进程调度
2. 存储器管理
在多处理机环境下,通常每个处理机都有属于自己局部的(本地)存储器,也有可供多个处理机所共享的(系统)存储器。每个处理机在访问本地存储器模块时,与访问系统存储器或其它处理机的局部存储器模块(统称远地存储器)时相比,所花费的时间也可能是不同的。
因此,在多处理机系统中,存储器系统的结构十分复杂,致使对存储器系统的管理也变得非常复杂:除了需要具有单机多道程序系统中的地址变换机构和虚拟存储器功能外,还应增强和增加下面的功能和机制:
(1) 地址变换机构。
(2) 访问冲突仲裁机构。
(3) 数据一致性机制。
3. 文件管理
在单处理机系统中,通常只有一个文件系统,所有的文件都存放在磁盘上,采用集中统一管理方式,也称为集中式文件系统。而在多处理机系统中,则可能采用以下三种文件系统管理方式:
(1) 集中式。
(2) 分散式。
(3) 分布式。
4. 系统重构
在单处理机系统中,一旦处理机发生故障,将引发整个系统的崩溃。但在多处理机系统中,尤其是在对称多处理机系统中,由于各处理机的结构和功能相同,为了提高系统的可靠性,应使操作系统具有重构能力,即当系统中某个处理机或存储块等资源发生故障时,系统能够自动切除故障资源并换上备份资源,使之继续工作。如果没有备份资源,则重构系统使之降级运行。如果在故障的处理机上有进程亟待执行,操作系统应能安全地把它迁移到其它处理机上继续运行,对处于故障处的其它可利用资源同样也予以安全转移。
10.3.3 多处理机操作系统的类型
1. 主从式(master-slave)
在这种类型的操作系统中,有一台特定的处理机被称为主处理机(Master Processor),其它处理机则称为从处理机。操作系统始终运行在主处理机上,负责保持和记录系统中所有处理机的属性、状态等信息,而将其它从处理机视做为可调度和分配的资源,负责为它们分配任务。从处理机不具有调度功能,只能运行主处理机分配给它的任务。
主从式操作系统具有如下优缺点:
(1) 易于实现。
(2) 资源利用率低。
(3) 安全性较差。
2. 独立监督式(separate supervisor System)
独立监督式操作系统具有如下的优缺点:
(1) 自主性强。
(2) 可靠性高。
(3) 实现复杂。
(4) 存储空间开销大。
(5) 处理机负载不平衡。
3. 浮动监督式(floating supervisor Control Mode)
浮动监督式,也称为浮动管理程序控制方式,这是最复杂的,但也是最有效、最灵活的一种多处理机操作系统方式,常用于紧密耦合式的对称多处理机系统中。
浮动监督式操作系统具有如下的优缺点:
(1) 高灵活性。
(2) 高可靠性。
(3) 负责均衡。
(4) 实现复杂。
10.4 进 程 同 步
在多处理机系统中,进程间的同步显得更加重要和复杂。在紧密耦合多处理机中,多个处理机是共享存储的,因此各处理机上的诸进程之间可通过该共享存储来实现同步,进程间的同步实现相对也比较简单。但对于松散耦合的多处理机,进程之间的同步可能采取的方式较多且复杂,可分为集中式和分布式两大类同步方式。
10.4.1 集中式与分布式同步方式
1. 中心同步实体
为实现进程之间的同步,系统中必须有相应的同步实体(Synchronizing Entity),如硬件锁、信号量以及进程等。如果该同步实体满足下述两个条件,则称之为中心同步实体:
(1) 具有唯一的名字,并且为彼此必须同步的所有进程所知道。
(2) 在任何时刻,这些进程中的任何一个都可以访问该同步实体。
2. 集中式同步机构
基于中心同步实体所构成的所有同步机构被称为集中式同步机构。相应的,其它同步机构则称为非集中式同步机构。
3. 集中式与分布式同步算法
在多处理机系统中,为实现进程同步,往往还需要有相应的同步算法支持同步机构,一般分为以下两种:
(1) 集中式同步算法。
(2) 分布式同步算法。
4. 中心进程方式
该方式是在系统中设置一个中心进程(或称为协调进程),该进程保存了所有用户的存取权限、冲突图(conflict graph)等信息。
10.4.2 自旋锁(spin lock)
1. 自旋锁的引入
如前所述,在单CPU系统中,CPU在执行读—修改—写原语操作时,是具有原子性的,即在执行这些操作时不会被中断。保证原子性的基本方法是,在执行原语之前关中断,完成后再开中断。
2. 实现对总线互斥访问的方法
利用自旋锁实现对总线互斥访问的方法是:在总线上设置一个自旋锁,该锁最多只能被一个内核进程持有。
3. 自旋锁与信号量的主要差别
自旋锁与信号量的主要差别在于:自旋锁可避免调用进程阻塞。由于自旋锁使用者一般保持锁时间非常短,调用进程用“旋转”来取代进程切换。而我们知道进程切换需要花费一定开销,并且会使高速缓存失效,直接影响系统的性能,因此将自旋锁应用于对总线资源的竞争,其效率远高于信号量机制,且在多处理器环境中非常方便。
4. 自旋锁的类型
使用自旋锁的基本形式为:
spin_lock(&lock);
/*临界区代码;*/
……
spin_unlock(&lock);
10.4.3 读—拷贝—修改锁和二进制指数补偿算法
1. 读—拷贝—修改锁(RCU)的引入
不论是第二章中的读写问题,还是前面所介绍的读写自旋锁,都是允许多个进程同时读,但只要有一个写进程在写,便禁止所有读进程去读,使读者进入阻塞状态。如果写的时间非常长,将严重影响到多个读进程的工作。是否能改善这一情况呢? 即使有写进程在写,读进程仍可以去读,不会引起读进程的阻塞。回答是肯定的,其解决方法是改变写进程对文件(共享数据结构)进行修改(写)的方式。
2. RCU(Read-Copy-Update)锁
RCU锁用来解决读者—写者问题。对于被RCU保护的共享文件(数据结构),无论读者和写者,都是以读的方式对其进行访问的,对于读者而言,不需要获得任何锁就可以访问它,对于写者而言,在访问它时,先制作该文件的一个副本,只对副本上的内容进行修改,然后使用一个回调(callback)机制,即向系统中一个称为垃圾收集器的机构注册一个回调函数。最后,在适当的时机,由垃圾收集器调用写者注册的回调函数,把指向原来数据的指针重新指向新的被修改的数据,完成最后的数据释放或修改操作。
3. 写回时机
在RCU锁机构中,如何确定将修改后的内容写回的时机? 显然,最好是在所有读者都已完成自己的读任务后再将修改后的文件写回。
4. RCU锁的优点
RCU实际上是一种改进的读写自旋锁。它的主要优点表现为如下两方面:
(1) 读者不会被阻塞。
(2) 无需为共享文件(数据)设置同步机构。
10.4.4 二进制指数补偿算法和待锁CPU等待队列机构
1. 二进制指数补偿算法
多个CPU在对共享数据结构互斥访问时,如果该数据结构已被占用,就需要不断地对锁进行测试,造成总线流量的增大。
2. 待锁CPU等待队列机构
如何及时发现锁空闲,另一种同步机构——锁等待队列机构很好地解决了这一问题。这种机构的核心思想是:为每一个CPU配置一个用于测试的私有锁变量和一个记录待锁CPU的待锁清单,存放在其私有的高速缓存中。
10.4.5 定序机构
1. 时间邮戳定序机构(Timestamp Ordering Mechanism)
对时间邮戳定序机构最基本的要求是,在系统中应具有唯一的、由单一物理时钟驱动的物理时钟体系,确保各处理机时钟间的严格同步。该定序机构的基本功能是:
(1) 对所有的特殊事件,如资源请求、通信等,加印上时间邮戳;
(2) 对每一种特殊事件,只能使用唯一的时间邮戳;
(3) 根据事件上的时间邮戳,定义所有事件的全序。
2. 事件计数(Event Counts)同步机构
1) wait(E,V)
每当进程要进入临界区之前,先执行await操作,如果E ,将执行进程插入到EQ队列,并重新调度;否则进程继续执行。
2) dvance(E)
每当进程退出临界区时,应执行advance(E)操作,使E值增1。如果EQ队列不空,则进一步检查队首进程的V值;若E=V,则唤醒该进程。
10.4.6 面包房算法
该算法是最早的分布式进程同步算法,是利用事件排序的方法对要求访问临界资源的全部事件进行排序,按照FCFS 次序对事件进行处理。
10.4.7 令牌环算法
该算法属于分布式同步算法,是将所有进程组成一个逻辑环(Logical Ring),系统中设置一个象征存取权力的令牌(Token),它是一种特定格式的报文,在进程所组成的逻辑环中,不断地循环传递,获得令牌的进程,才有权力进入临界区,访问共享资源。
10.5 多处理机系统的进程调度
在多处理机系统中,进程的调度与系统结构有关。例如,在同构型系统中,由于所有的处理机都是相同的,因而可将进程分配到任一处理机上运行; 但对于非对称多处理机系统,则只能把进程分配到适合于它运行的处理机上去执行。
10.5.1 评价调度性能的若干因素
1. 任务流时间
把完成任务所需要的时间定义为任务流时间,例如,如图10-6所示,图中有三台处理机P1~P3和五个任务T1~T5,调度从时间0开始,共运行了7个时间单位,在处理机P1上运行任务T1和T2,分别需要5个和1.5个时间单位;在处理机P2上运行任务T2和T1,分别用了5个和2个时间单位;在处理机P3上运行任务T3、T4和T5,每一个都需要2个时间单位。因此,完成任务T1共需要5 个时间单位,而完成任务T2共需要5 .5 .5个时间单位。
图10-6 任务流和调度流示意图
2. 调度流时间
在多处理机系统中,任务可以被分配到多个处理机上去运行。一个调度流时间是系统中所有处理机上的任务流时间的总和。在如图10-6所示的例子中,在三台处理机上,调度流时间=T1流+T2流+T3流+T4流+T5流=7+6.5+2+2+2=
19.5(个时间单位)。
3. 平均流
平均流等于调度流时间除以任务数。平均流时间越小,表示任务占用处理机与存储器等资源的时间越短,这不仅反应了系统资源利用率高,而且还可以降低任务的机时费用。更为重要的是,还可使系统有更充裕的时间处理其它任务,有效地提高了系统的吞吐量。因此,最少平均流时间就是系统吞吐率的一个间接度量参数。
4. 处理机利用率
处理机的利用率等于该处理机上任务流之和除以最大有效时间单位。在如图10-7所示的例子中,最大有效时间单位为7.0,三台处理机P1、P2、P3的空闲时间分别为0.5、0.0和1.0,忙时间分别为6.5、7.0、6.0,它们为各处理机上的任务流之和。由此可以得到P1、P2、P3的处理机利用率分别为0.93、1.00和0.86。处理机平均利用率=(0.93+1.00+0.86)÷3
=0.93。
5. 加速比
加速比等于各处理机忙时间之和除以并行工作时间,其中,各处理机忙时间之和,相当于单机工作时间,在上例中为19.5个时间单位;并行工作时间,则相当于从第一个任务开始到最后一个任务结束所用的时间,在上例中为7个时间单位。由此得到加速比为19.5个时间单位/7个时间单位。
6. 吞吐率
吞吐率是单位时间(例如每小时)内系统完成的任务数。可以用任务流的最小完成时间来度量系统的吞吐率。吞吐率的高低与调度算法有着十分密切的关系,通常具有多项式复杂性的调度算法是一个高效的算法。而具有指数复杂性的调度算法则是一个低效算法。
10.5.2 进程分配方式
1. 对称多处理机系统中的进程分配方式
在SMP系统中,所有的处理机都是相同的,因而可把所有的处理机作为一个处理机池(Processor pool),由调度程序或基于处理器的请求,将任何一个进程分配给池中的任何一个处理机去处理。对于这种进程分配,可采用以下两种方式之一。
1) 静态分配(Static Assigenment)方式
2) 动态分配(Dynamic Assgement)方式
2. 非对称MPS中的进程分配方式
对于非对称MPS,其OS大多采用主—从(MasterSlave)式OS,即OS的核心部分驻留在一台主机上(Master),而从机(Slave)上只是用户程序,进程调度只由主机执行。每当从机空闲时,便向主机发送一索求进程的信号,然后,便等待主机为它分配进程。在主机中保持有一个就绪队列,只要就绪队列不空,主机便从其队首摘下一进程分配给请求的从机。从机接收到分配的进程后便运行该进程,该进程结束后从机又向主机发出请求。
10.5.3 进程(线程)调度方式
1. 自调度(Self-Scheduling)方式
1) 自调度机制
在多处理器系统中,自调度方式是最简单的一种调度方式。它是直接由单处理机环境下的调度方式演变而来的。在系统中设置有一个公共的进程或线程就绪队列,所有的处理器在空闲时,都可自己到该队列中取得一进程(或线程)来运行。
2) 自调度方式的优点
自调度方式的主要优点表现为:首先,系统中的公共就绪队列可按照单处理机系统中所采用的各种方式加以组织;其调度算法也可沿用单处理机系统所用的算法,亦即,很容易将单处理机环境下的调度机制移植到多处理机系统中,故它仍然是当前多处理机系统中较常用的调度方式。其次,只要系统中有任务,或者说只要公共就绪队列不空,就不会出现处理机空闲的情况,也不会发生处理机忙闲不均的现象,因而有利于提高处理机的利用率。
3) 自调度方式的缺点
自调度方式的缺点不容忽视,主要表现如下:
(1) 瓶颈问题。
(2) 低效性。
(3) 线程切换频繁。
2. 成组调度(Gang Scheduling)方式
1) 面向所有应用程序平均分配处理器时间
假定系统中有N个处理机和M个应用程序,每个应用程序中至多含有N个线程,则每个应用程序至多可有1/M的时间去占有N个处理机。例如,有4台处理器及两个应用程序,其中,应用程序A中有4个线程,应用程序B中有一个线程。这样,每个应用程序可占用4台处理机一半(1/2)的时间。
图10-7 两种分配处理机时间的方法
2) 面向所有线程平均分配处理机时间
由于应用程序A中有4个线程,应用程序B中只有1个线程,因此,应为应用程序A分配4/5的时间,只为应用程序B分配1/5的时间,如图10-7(b)所示。此时,将只有15%的处理机时间被浪费。可见,按线程平均分配处理机时间的方法更有效。
3. 专用处理机分配(Dedicated Processor Assigement)方式
1989年Tucker提出了专用处理机分配方式。该方式是指在一个应用程序的执行期间,专门为该应用程序分配一组处理机,每一个线程一个处理机。这组处理机仅供该应用程序专用,直至该应用程序完成。很明显,这会造成处理机的严重浪费。
图10-8 线程数对加速比的影响
4. 动态调度
该调度方式允许进程在执行期间动态地改变其线程的数目。这样,操作系统和应用程序能够共同地进行调度决策。操作系统负责把处理机分配给作业,而每个作业负责将分配到的处理机再分配给自己的某一部分可运行任务。
在这种方法中,操作系统的调度责任主要限于处理机的分配,并遵循以下的原则:
(1) 空闲则分配。
(2) 新作业绝对优先。
(3) 保持等待。
(4) 释放即分配。
10.5.3 死锁
1. 死锁的类型
在多处理机系统中,死锁可以分成资源死锁和通信死锁。前者是因为竞争系统中可重复使用的资源(如打印机、磁带机、存储器等)时,由于进程的推进顺序不当引起的。
2. 死锁的检测和解除
1) 集中式检测
在每台处理机上都有一张进程资源图,用于描述进程及其占有资源的状况,在负责控制的中心处理机上,配置一张整个系统的进程资源图,并设置一个检测进程,负责整个系统的死锁检测。当检测进程检测到环路时,就选择中止环路中的一个进程,以解决死锁。
2) 分布式检测
分布式检测是通过系统中竞争资源的各个进程间的相互协作,实现对死锁的检测,无需设置一个检测进程,专门用于对全局资源使用情况进行检测。
10.6 网络操作系统
计算机网络是指通过数据通信系统把地理上分散的自主计算机系统连接起来,以达到数据通信和资源共享目的的一种计算机系统。自主计算机是指具有独立处理能力的计算机。可见,计算机网络是在计算机技术和通信技术高度发展的基础上相结合的产物,是多个处理机通过通信线路互连而构成的松散耦合系统,通信系统为计算机之间的数据传送提供最重要的支持。
10.6.1 网络及网络体系结构
1. 计算机网络的组成
计算机网络从构造的物理结构而言,是通过包括星形、树形、公用总线形、环形和网状形等不同的拓扑结构,将地理上分散的计算机连接起来的网络。而从逻辑结构而言,计算机网络是由三个部分组成:
(1) 通信子网:
(2) 资源子网:
(3) 网络协议:
2. 网络协议
网络协议是一组控制数据交互过程的通信规则,规定了通信双方所交换数据(控制信息)的格式和时序。网络协议的三要素分别是:
(1) 语义
(2) 语法
(3) 时序
3. 互连网协议IP v4和IP v6
1) P v4协议
IP v4是早期在Internet上使用的网络互连协议,可利用它来实现网络互连,为此,IP v4协议应解决三个问题:
① 寻址
② 分段和重新组装
③ 源路由选择
2) P v6协议
IP v6协议继承了IP v4协议的一切优点,而针对其不足之处做了多方面的修改,使之能更好地满足当今Internet网络的需要。
4. 传输层协议 TCP和UDP
1) 传输控制协议TCP
TCP提供了面向连接的、可靠的端-端通信机制。所谓可靠,是指即使网络层(通信子网)出现了差错,TCP协议仍能正确地控制连接的建立、数据的传输和连接的释放。此外,在进行正常的数据交换时也要有流量控制,即控制发方发送数据的速度不应超过接收方接收数据的能力。
2) 用户数据报协议UDP
如果所传输的数据并不那么重要,可考虑利用UDP协议来传输数据。该协议是一种无连接的、不可靠的协议。它无需在数据传送之前先建立端-端之间的连接,也就不要拆除连接。在数据传送过程中,无需对传送的数据进行差错检测。换而言之,它是以一种比较简单的方式来传送数据,因而有效地提高了传输速率。
5. 网络体系结构
为了简化对复杂的计算机网络的研究、设计和分析工作,一般把计算机网络的功能分成若干层。层次结构就是指把一个复杂的系统设计问题分解成多个层次分明的局部问题,并规定每一层次所必须完成的功能。
图10-9 OSI七层模型
10.6.2 网络操作系统及其分类
1. 网络操作系统及其特征
网络操作系统(Network Operating System)是在计算机网络环境下,对网络资源进行管理和控制,实现数据通信及对网络资源的共享,为用户提供与网络资源之间接口的一组软件和规程的集合。网络操作系统建立在网络中计算机各自不同的单机操作系统之上,为用户提供使用网络系统资源的桥梁。
2. 网络操作系统的分类
1) 对等模式(peer-to-peer model)
在该模式的操作系统管理下,网络上的每台计算机处于平等的地位,系统中不设专用服务器,任何一台计算机和其它计算机之间没有从属关系。原则上网络中的任意两个节点之间都直接通信,系统中的每一台计算机都能访问计算机上的共享资源,每台联网计算机都分前台方式和后台方式工作,前台为本地服务,后台为其它结点的网络用户服务。
2) 工作站/服务器模式(Workstation/Server model)
该模式将网络中的节点计算机分为两类:网络服务器(Server)和网络工作站(Workstation)。服务器以集中方式管理网络中的共享资源,为工作站提供服务,服务器不再作其它用途。工作站为本地用户访问本地资源和访问网络资源服务。
3) 客户/服务器模式(Client/Server model)
在计算机网络中,从硬件角度看,客户/服务器模式是指,某项任务分配在两台或多台机器上,其中用于接受请求并提供各种资源、数据和服务的计算机称为服务器,而面向用户,提供用户接口和前端处理,并向服务器提出资源、数据和服务请求的计算机称为客户机。
4) 浏览器/服务器模式(Browser/Server model)
客户/服务器模式可分为两层C/S模式和三层C/S模式两种。传统的小型局域网采用两层客户/服务器模式,在大型网络中通常采用三层C/S模式。三层C/S模式,即将客户机连接到一台Web服务器(并配上浏览器软件,用于实现客户与Web服务器之间的交互)上,即在客户机与服务器之间再增加一台Web服务器,它相当于前面所介绍的应用服务器。
10.6.3 网络操作系统的功能
1. 数据通信
为了实现网络中计算机之间的数据通信,网络OS应具有如下基本功能:
(1) 连接的建立与拆除。
(2) 报文的分解与组装。
(3) 传输控制。
(4) 流量控制。
(5) 差错的检测与纠正。
2. 应用互操作
为了实现多个网络之间的通信和资源共享,不仅需要将它们从物理上连接在一起,而且还应使不同网络的计算机系统之间能进行通信(信息互通)和实现资源共享(信息互用)。为此,在网络OS中必须提供应用互操作功能,以实现“信息互通性”及“信息互用性”。
(1) 信息的互通性。
(2) 信息的“互用性”。
3. 网络管理
1) 网络管理的目标
(1) 增强网络的可用性,如通过预测及时地检测出网络故障,为关键设备配置冗余的设备等;
(2) 提高网络的运行质量,随时监测网络中的负荷及流量;
(3) 提高网络的资源利用率,长期监测网络,对网络资源进行合理的调整;
(4) 保障网络数据的安全性,采取多级安全保障机制;
(5) 提高网络的社会和经济效益。
2) 网络管理的功能
ISO为网络管理定义了差错、配置、性能、计费和安全五大管理功能:
(1) 配置管理
(2) 故障管理
(3) 性能管理
(4) 安全管理
(5) 计费管理
10.7 分布式文件系统
分布式文件系统是配置在分布式系统上的,因此,本节在介绍分布式文件系统这个主题前,先对所涉及的分布式系统的知识和概念做个扼要的介绍。
10.7.1 分布式系统
1. 分布式系统的特征
分布式系统(distributed system),是基于软件实现的一种多处理机系统,是多个处理机通过通信线路互连而构成的松散耦合系统,系统的处理和控制功能分布在各个处理机上。换言之,是利用软件系统方式构建在计算机网络之上的一种多处理机系统。
与前面所述的多种多处理机系统(包括多处理机和多计算机等)相比,分布式系统的不同在于:① 分布式系统中的每个节点都是一台独立的计算机,并配置有完整的外部设备;② 分布式系统中节点的耦合程度更为分散,地理分布区域更加广阔;③ 分布式系统中的每个节点可以运行不同的操作系统,每个节点拥有自己的文件系统,除了本节点的管理外,还有其它多个机构对其实施管理。
对分布式系统有很多不同的定义,比如:“一个分布式系统是一些独立的计算机集合,但是对这个系统的用户来说,系统就像一台计算机一样”,或者,“分布式系统是能为用户自动管理资源的网络操作系统,由它调用完成用户任务所需要的资源,而整个网络像一个大的计算机系统一样对用户是透明的。”等等,归纳起来,分布式系统应具有以下几个主要特征:
(1) 分布性。
(2) 透明性。
(3) 同一性。
(4) 全局性。系
2. 分布式系统的优点
分布式系统与集中式系统相比具有以下一些优点:
(1) 计算能力强。
(2) 易于实现共享。
(3) 方便通信。
(4) 可靠性高。
(5) 可扩充性好。
3. 分布式操作系统
分布式操作系统是配置在分布式系统上的公用操作系统,以全局的方式对分布式系统中的所有资源进行统一管理,可以直接对系统中地理位置分散的各种物理和逻辑资源进行动态的分配和调度,有效地协调和控制各个任务的并行执行,协调和保持系统内的各个计算机间的信息传输及协作运行,并向用户提供一个统一的、方便的、透明的使用系统的界面和标准接口。一个典型的例子是万维网(World Wide Web),在万维网中,所有的操作只通过一种界面——Web页面。
分布式操作系统除了涵盖单机操作系统的主要功能外,还应该包括:
(1) 通信管理功能。
(2) 资源管理功能。
(3) 进程管理功能。
10.7.2 分布式文件系统的实现方式和基本要求
1. DFS的实现方式
DFS有多种实现方式,一般分为以下两类:
1) 共享文件系统方式(shared file system approach)
该方式也称专用服务器方式。类似于本地文件系统使用树形目录结构,管理本地计算机存储设备上的文件方式。共享文件系统方式也采用一个逻辑树的结构,对整个系统中的文件系统进行管理。
2) 共享磁盘方式(shared disk approach)
该方式也称为无服务器方式。在这种方式中,系统中没有专门的文件服务器,而是配置了一个共享磁盘(一般为高速磁盘,如IBM SSA),并将其与主机、客户机都连接在内部的高速网络(如光通道)上,主机和客户机都将共享磁盘作为它们的存储设备,直接以盘块方式读写磁盘上的文件,实现共享。
2. 基本要求
相对于LFS,DFS除了大容量的要求外,还有很多基本要求:
(1) 透明性。
(2) 高性能和高可靠性。
(3) 容错性。
(4) 安全性。
(5) 一致性。
10.7.3 命名及共享语义
1. 命名
如前面章节所述,对于OS管理的存储资源,文件系统通过抽象,屏蔽了对物理设备的操作以及资源管理的细节,并向用户提供统一的、对象化的访问接口。
2. 共享语义
对于DFS,需要保证多个客户机并发访问时的数据一致性,因此,当多个客户共享同一个文件时,必须对客户机和服务器之间的交互协议精确处理,即精确定义读和写的语义。
3. 租赁协议
租赁协议是一个比较具有代表性的一致性访问协议。当客户机向服务器发出一个读请求时,不仅收到所请求的数据,还会收到一个租赁凭据。该凭据附带一个有效期,保证服务器在该有效期内不会对客户机收到的数据进行更新。
10.7.4 远程文件访问和缓存
1. 缓存和远程服务的比较
(1) 使用缓存时,大量的远程访问可转为对本地的缓存访问,因此而获得的服务速度与本地访问的一样快。
(2) 使用缓存时,服务器的负载和网络通信量都减少了,扩充能力加强了。而在使用远程服务方法时,每次远程访问都是跨过网络处理的,明显增加了网络通信量和服务器负载,引起性能下降。
(3) 缓存时,就网络总开销而言,与远程服务针对个别请求一系列应答的传输开销相比,缓存采用以整个文件或文件的若干个页面这样的大批数据传输方式时,开销还是要低很多。
(4) 缓存的主要缺点是一致性问题。在针对不经常写入的访问模式中,缓存方法是优越的;但在频繁写的情况下,用于解决一致性问题的机制反而导致在性能、网络通信量和服务器负载等方面的大量开销。
(5) 在用缓存作为远程访问方法的系统中,仿真集中式系统的共享语义是很困难的。使用远程服务时,服务器将所有访问串行化,因此能够实现任何集中的共享语义。
(6) 机器间的接口不同,远程服务方式仅仅是本地文件系统接口在网络上的扩展,机器间的接口就是本地客户机和文件系统之间的接口。而缓存方式中,数据是在服务器和客户机之间整体传输,机器间的接口与上级的用户接口是不同的。
2. 缓存的粒度和位置
1) 缓存的粒度
在DFS中,缓存的数据粒度(即数据单元)可以是文件的若干块,也可以是若干个文件,乃至整个文件系统。
2) 缓存的位置
在一个各自有主存和磁盘的客户-服务器系统中,有四个地方可以用来存储文件或存储部分文件:服务器磁盘、服务器主存、客户机磁盘或者客户机主存。
存储所有文件最直接的位置是在服务器磁盘上,使用磁盘缓存最明显的优点就是可靠性不会因为系统的故障而丢失。
3. 缓存的更新
对于缓存中更新的数据块,选择什么时间和方式将其写回服务器,对系统的性能和可靠性具有关键性的影响。
4. 数据一致性
对于本地缓存的数据副本与服务器中的主副本,客户机需要进行有效性检查,判断它们是否一致后才能使用。如果不一致,则表明本地缓存的数据已经过时,那么这些数据就不能为客户机提供数据访问服务,需要进行更新。
10.7.5 容错
1. 无状态服务和有状态服务
当客户机对远程文件进行访问时,有关被访问的文件、目录和客户机的信息等, 在服务器端是否需要进行跟踪、检查和保存等处理,存在着两种策略:
(1) 有状态服务(stateful file service):
(2) 无状态服务(stateless file service):
2. 容错性
有关DFS的容错性环境,定义了三种文件属性:
(1) 可恢复性
(2) 坚定性
(3) 可用性
3. 可用性与文件复制
文件复制是保证可用性的一个冗余措施。这里的文件复制不是前面章节所讲的SFT三级容错技术中的磁盘镜像(同一台机器不同介质上的文件复制),而是在DFS系统不同节点的主机磁盘上的复制。
习 题 8:
1. 为什么说依靠提高CPU时钟频率提高计算机运算速度的方法已接近了极限?
2. 试说明引入多处理机系统的原因有哪些。
3. 什么是紧密耦合MPS和松弛耦合MPS?
4. 何谓UMA多处理机结构? 它又可进一步分为哪几种结构?
5. 试说明基于单总线的SMP结构和多层总线的SMP结构。
6. 试说明使用单级交叉开关的系统结构和使用多级交换网络的系统结构。
7. 什么是NUMA多处理机系统结构? 它有何特点?
8. 为什么要为每个CPU配置高速缓冲区? CC-NUMA和NC-NUMA所代表的是什么?
9. 试说明多处理机操作系统的特征。
10. 试比较在单处理机OS和多处理机OS中的进程管理。
11. 试比较在单处理机OS和多处理机OS中的内存管理。
12. 何谓中心同步实体、集中式同步机构和非集中式同步机构?
13. 集中式同步算法具有哪些特征和缺点?
14. 一个完全分布式同步算法应具有哪些特征?
15. 如何利用自旋锁来实现对总线的互斥访问? 它与信号量的主要差别是什么?
16. 为什么要引入读—拷贝—修改锁(RCU)? 它对读者和写者分别有何影响?
17. 何谓二进制指数补偿算法? 它所存在的主要问题是什么?
18. 时间邮戳定序机构和事件计数的作用是什么?
19. 什么是任务流时间和调度流时间? 请举例说明之。
20. 试比较多处理机系统中静态分配方式和动态分配方式。
21. 何谓自调度方式? 该方式有何优缺点?
22. 何谓成组调度方式? 按进程平均分配处理器和按线程平均分配处理器时间的方法,哪个更有效?
23. 试说明采用专用处理器分配方式的理由。
24. 在动态调度方式中,调度的主要责任是什么? 在调度时应遵循哪些原则?