【操作系统】知识梳理(十)多处理机操作系统

10.1 多处理机系统概述

1.多处理机系统的类型

1)紧密耦合MPS和松散耦合MPS
按多个处理机之间的耦合程度,可将MPS分为紧密耦合MPS和松散耦合MPS两类。
(1)紧密耦合MPS。 紧密耦合MPS通常是通过高速总线或高速交叉开关,来实现多个处理器之间的互连,系统中的所有资源和进程,都由操作系统实施统一控制和管理。 多个处理机可以共享主存储器,即每个CPU都可以访问整个主存储器,此时,访问一个存储器字约需要10ns~50ns。紧密耦合MPS也可以不共享主存储器,此时,每个CPU只能访问自己的私有存储器或存储器模块,CPU之间通过消息进行通信,消息传递大约需要10 μs~ 50 μs。
(2)松散耦合MPS。松散耦合MPS通常是通过通道或通信线路,来实现多台计算机之间的互连。每台计算机都有自己的存储器和I/0设备,并配置了OS来管理本地资源和在本地运行的进程。因此,每一台计算机都能独立地工作,必要时可通过通信线路与其他计算机交换信息,消息传递的时间一般需要10 ms~ 50 ms。
2)对称多处理机系统和非对称多处理机系统
按系统中所用的处理机的功能和结构是否相同,可将MPS分为对称多处理机系统和非对称多处理机系统两类。
(1)对称多处理机SMP系统。这种系统中,各处理机单元在功能和结构上都是相同的。当前的绝大多数MPS都属于SMP系统。
(2) 非对称多处理机ASMP系统。在这种系统中有-一个主处理机,其上配置有操作系统,而其他的处理机则为从处理机,它们执行由主处理机分配的任务。

2.多处理机系统的结构

对于共享存储器的多处理机系统,根据各处理机对存储器模块存取速度是否相同,可形成UMA(Uniform Memory Access,统一内存访问)和NUMANonuniform-Memory- Access,非统一内存访问)两种多处理机结构。
(1)UMA多处理机。在UMA结构的多处理机系统中,处理机对于每个存储器单元的读写速度是相同的。各个处理机和存储器之间可通过总线、交叉开关或者多级交换网路进行连接。
(2)NUMA多处理机。在NUMA多处理机系统中,拥有多个处理器模块(也称为节点),各节点之间通过一条公用总线或互连模块进行连接和信息交互。系统中的公共存储器、各处理机的本地存储器以及节点内的群共享存储器,共同构成了系统的全部存储空间,它们都能被所有的处理机访问,但每个处理机对本地存储器、公共存储器以及远程存储器的读写速度是不同的。

3.多处理机操作系统的类型

在多处理机系统中,目前所采用的操作系统主要有以下三种基本类型:
(1)主从式(master-slave)。 主从式系统中,有一台特定的处理机被称为主处理机,其他处理机则称为从处理机。操作系统始终只运行在主处理机上,它负责管理整个系统的资源,并负责为从处理机分配任务。从处理机不具有调度功能,只能运行主处理机分配给它的任务。
(2)独立监督式(separate supervisor system)。这种方式- -般适 用于松散耦合的多处理机系统中。在这种系统中,每个处理机都有自己的专有资源(如存储器、I/O 设备和文件系统等),并且在每个处理机上配置有操作系统,来管理自己的资源,并调度该处理机的进程集合中的进程。
(3)浮动监督式(loating supervisor control mode)。这种方式常用于紧密耦合式的对称多处理机系统中。这种系统中,在某段时间内可以指定任何一.台(或多台)处理机,作为系统的控制处理机,即所谓“主”处理机(或组),由它(或它们)运行操作系统程序,负责全面管理功能,但根据需要,“主” 处理机是可以浮动的,即从一-台处理机切换到另一台处理机。

10.2 多处理机进程同步

1.自旋锁

在多处理机操作系统中,常为互斥共享的资源设置一把自旋锁,该锁最多只能被一个内核进程持有。在进程请求相应资源时,它先请求自旋锁,如果锁未被占用,那么进程便能访问相应资源;否则,如果锁已被其他进程占用,那么请求锁的进程会一直循环测试锁的状态(即自旋),直到锁被释放为止。自旋锁适合用在互斥资源被占用时间较短的情况下,此时,阻塞并进行进程切换所花费的开销会比自旋更大,使用自旋锁的效率就会远高于需要阻塞的信号量机制。

2.二进制指数补偿算法

多个CPU在对共享数据结构互斥访问时,如果该数据结构已被占用,请求者就需要不断地对锁进行测试,因此造成总线流量的增大。减少总线数据流量的一个方法是二进制指数补偿算法,它在每-一个 CPU对锁进行再次测试的TSL指令之前插入一个延迟时间,该延迟时间是按照一个TSL指令执行周期的二进制指数方式增加的。例如第一次测试时,发现锁不空闲,便推迟第二次测试指令的执行时间,等到2'个指令执行周期后再执行,如果第二次测试仍未成功,则将第三次测试指令的执行时间推迟到22个指令执行周期后,......以此类推,直到一个设定的最大值。虽然二进制指数补偿算法能有效降低总线上的数据流量,但当锁被释放时,可能由于各CPU的测试指令的延迟时间未到,没有一个CPU会及时地对锁进行测试,即不能及时地发现锁的空闲,造成浪费。

3.待锁CPU等待队列机构

待锁CPU等待队列机构不仅能够减少总线的数据流量,还可以解决无法及时发现锁空闲的问题。当多个CPU需要互斥访问某个共享数据结构时,该机构会给未获得锁的CPU分配一个私有锁变量,并把它附在占用该共享数据结构的CPU待锁清单末尾。私有锁变量存放在相应CPU的私有高速缓存中,因此,CPU 等待私有锁进行的循环测试不占用总线。当共享数据结构的占有者CPU退出临界区时,它释放自己所占有的锁,同时释放待锁清单中的首个私有锁,从而允许首个待锁CPU及时地进入临界区。

4.面包房算法和令牌环算法

面包房算法和令牌环算法均可用来实现分布式进程对临界资源的互斥访问。面包房算法按照FCFS方式进行服务,当进程Pi请求临界资源时,它把一条带时间戳的请求信息request(Ti, i)发送给系统中的所有进程,然后等待其他进程的回答消息reply(Tj, j)。通过这些消息和其中的时间戳,系统允许首个请求临界资源的进程进入临界区。而令牌环算法则把所有的进程组成一一个逻辑环, 并在环中按固定的方向和顺序发送一个特定格式的报文(即令牌),获得令牌的进程有权进入临界区,当其退出临界区时,再将令牌继续传递下去,以便其他进程可进入临界区。

10.3 多处理机调度

1.进程分配方式

(1) SMP系统中的进程分配方式。在SMP系统中,可采用静态分配方式,为每个处理器设置一个专用就绪队列,其中的进程固定地分配到该处理器上执行;也可采用动态分配方式,在系统中设置一个公共的就绪队列,其中的进程可分配到任何一个处理器上执行。
(2) ASMP 系统中的进程分配方式。在ASMP系统中,常采用主一从式OS,只在主处理机上配置OS,由它进行进程调度。从处理机空闲时,便向主处理机发送索求进程的信号,等待主处理机为它分配进程。

2.进程(线程)调度方式

多处理机中的进程(线程)调度常采用以下几种方式:
(1)自调度。系统中有一个公共的进程或线程就绪队列,所有的处理器在空闲时,都可以自已到该队列中取得一进程(或线程)来运行。这种方式由单处理机的进程调度方式演变而来,实现简单,且不会发生处理器忙闲不均的现象。自调度的主要缺点是公共的就绪队列容易成为系统性能的瓶颈,处理机的高速缓存的使用效率较低,线程切换比较频繁。
(2) 成组调度。成组调度将一个进程中的-组线程同时分配到一组处理机上去运行。这种方式可以显著地降低调度频率,减少调度的开销;另外,由于一组相互合作的线程能同时运行,可有效减少线程的切换次数,改善系统的性能。
(3)专用处理机分配。这种方式将属于一个应用程序的一组线程, 分配到一组处理机上,在应用程序未结束之前,这些处理机专用于处理这组线程。专用处理机分配可以完全避免进程或线程的切换,从而可大大加速程序的运行。
(4)动态调度。该调度方式允许操作系统和应用程序共同进行调度决策。操作系统负责把处理机分配给作业,而每个作业负责将分配到的处理机再分配给自己的某一个线程。动态调度方式优于成组调度和专用处理机调度方式,但其开销较大。

10.4 网络操作系统

1.网络操作系统分类

按照网络操作系统的工作模式,可将网络操作系统分为:
1)基于服务器模式
最常见的基于服务器模式为客户/服务器(C/S)模式,它将网络中的各个站点分成服务器和客户机两大类。服务器是网络的控制中心,其任务是向客户提供一种或多种服务,在服务器中包含了大量的服务程序和服务支撑软件。客户则是指用户用于本地处理和访问服务器的站点,在客户中包含了本地处理软件和访问服务器上服务程序的软件接口。这种模式的客户器可直接与服务器进行交互,通常称之为两层结构的C/S模式,它常用在传统的小型局域网中。
Internet采用的是浏览器/服务器(B/S)工作模式,它增加了一个Web服务器,此时的客户机不是直接去访问Internet 中的(数据库)服务器,而是去访问Web服务器,再由Web服务器代理客户机去访问某台(些)(数据库)服务器。由于已配上浏览器软件的客户机可以浏览在Internet中几乎所有的允许访问的服务器,因此,这时便把客户机称为Web浏览器,从而形成Web浏览器、Web服务器和(数据库)服务器的三层的C/S模式。通常把这种三层结构的模式称为B/S模式。
2)对等模式
采用对等模式时,系统中不设专用服务器,网络上的每台计算机处于平等地位,每台计算机既可作为客户去访问其他站点,又可作为服务器向其他站点提供服务。此时,每台计算机都分前台和后台方式工作,前台为本地服务,后台为其他结点的网络用户服务。

2.网络操作系统的功能

网络操作系统应该具有下述几方面的功能:
(1)数据通信。这是网络最基本的功能,其主要任务是在源主机和目标主机之间,实现无差错的数据传输。具体功能包括建立和拆除通信链路、报文的分解与组装、传输控制、差错控制、流量控制和路由选择等。
(2)应用互操作功能。所谓互操作,是指不同的网络结点间不仅能够通过同一类型的传输协议(如TCP/IP)实现通信,而且还能实现信息的互用,亦即一个网络中的用户能够去访问另一个网络文件系统中的文件。
(3)网络管理功能。网络管理包括网络配置管理、故障管理、性能管理、安全管理和计费管理,其目的在于最大限度地增加网络的可用时间,提高网络设备的利用率,改善网络的服务质量,并保障网络的安全性。

 10.5 分布式文件系统

1.远程文件的访问方法

远程:文件的访问方法主要有缓存机制和远程服务机制两种方式。缓存机制将远程服务器上的文件复制到本地,以后对文件的访问便可在本地的副本中进行,更新过的副本需要写回到远程服务器中。远程服务机制则将客户机的访问请求发送给服务器,由服务器执行访问,并将结果回送给用户。前一种方式的主要问题是数据一-致性问题:而后-种方式每次远程访问都是跨越网络处理的,会明显增加网络通信量和服务器负担,引起性能下降。

2.命名

在分布式系统中,文件和目录的命名方式主要有以下三种形式:
(1) 主机名+本地名。如文件名为“/hostlocal-name-path"。 该方案,文件名中隐含了文件的位置,而且当文件需要从一个服务器移到另一个服务器时,其文件名也需随着改变,因此不符合命名的透明性。
(2)将服务器中的远程目录加载到客户机的本地目录中。该方案管理复杂度很高,结构混乱,而且安全程度也低,一旦一个服务器故障,将导致客户机上的目录集的失效。
(3) 全局统一 命名。系统采用统一 的全局命名结构,每个文件和目录使用唯一 命名。考虑到不同系统中的一些特殊文件, 使得该方案实现难度较大。

3.共享语义

在单处理器系统中,多个进程共享文件时,读和写的语义是: 一个写操作后跟一个读操作,读操作将返回刚写入的值;若两个连续的写操作后,跟一个读操作,则读操作将返回后一个写入的值。在分布式系统中,若只有一个文件服务器,且不是采用缓存机制访问文件,则所有的客户机都将看到同样的读写顺序,保证顺序一致性: 若有多个服务器,或者采用缓存机制访问文件,则需要精确定义读和写的共享语义,以保证客户机并发访问数据的一致性。客户机共享文件的语义主要有以下几种:
(1) UNIX语义,文件上的每个操作对所有进程都是瞬间可见的。
(2) 会话语义,在文件关闭之前,所有改动只对作改动的进程本身可见,对其他进程都是不可,见的。
(3)不允许更新文件,不能进行更改,只能简单地进行共享和复制。
(4)事务处理,所有改动以原子操作的方式(顺序)发生。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aaron_Liu0730

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值