版权归原作者所有,如有侵权,请联系我们

[科普中国]-并行操作系统

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

发展

并行操作系统是随着并行计算机的发展而发展的。早期的并行计算机只是简单地利用向量板或数组机来提高串行计算机的性能,此时操作系统最多只需要做一些诸如加载的简单操作,并不算是并行操作系统。最早的并行操作系统要算是美国的卡内基梅隆大学于1975年在16台PDP11/40互联而成的C.mmp上实现的Hydra系统。尽管这一系统主要是致力于机器性能的管理与保护,但是它在并行操作系统方面作了许多有益的探索,这些对于现代并行操作系统的设计仍然有相当重要的影响。并行操作系统在发展初期具有一个较明显的特征,即大量地使用专门的汇编语言来编写专用操作系统,这样做是因为,一是当时高级语言对并行的描述还不完善;二是发展较成熟的操作系统如UNIX通常存在巨额的系统开销,这与并行机的系统结构和昂贵代价不适应,因此要使并行机达到较高的性能必须采用高效的汇编语言,以针对并行计算机的自身特点和其特殊的应用领域来编写操作系统。这样形成的并行操作系统虽然远不如传统的UNIX那样功能丰富、使用方便,但是它的简洁高效又是传统的UNIX所望尘莫及的。早期并行计算机的主要开发商Cray公司的早期并行操作系统COS就是用专门的汇编语言编写成的。

但是这种使用专门的汇编语言编写成的并行操作系统具有一个很显著的缺点,即它的应用程序界面没有一个统一的标准,这样使得在操作系统上的应用程序的移植变得十分困难;随着计算机并行技术的不断提高以及半导体工业的飞速发展,并行计算机的价格比早期的并行计算机已有大幅度的下降,因此人们对于统一的并行操作系统的应用程序界面的要求已远大于由此引起的系统开销。于是,为了迎合用户的需要,占领更多的市场,计算机的制造商提供了模拟的标准界面,如UNICOS。

随着并行计算机的普及,传统的UNIX厂商(从USL到NOVELL、SCO、HP)为了自身的生存,均对传统的UNIX的结构进行修改,吸收许多的新技术、新功能,以适应并行计算机市场的需要;例如推出了支持多处理机的UNIX system V Release 4.2 for MP以及UNIXWare2.0。在1998年2月,SCO和HP还联合发布了下一代64位UNIX的开发计划,在该计划中,首次提出了操作系统的三维体系结构(3DA)构想,从而更好地有利于操作系统的并行性的开发。

进入20世纪80年代,随着计算机网络的发展,出现了分布处理的概念,即把一个任务分散到多个计算机上去运行,而这些计算机可能在物理上是分散的,相互之间采用网络互连,通过消息传递进行通信。3

特点传统的操作系统为了提高硬件资源的利用效率,采用了多任务并发执行的技术。即通过切换不同的用户程序以达到多道程序的运行目的。而并行操作系统是要提供真正的多道程序运行环境。当可运行的用户程序数目小于或者等于处理器个数,它们将真正地得到并行执行。并行操作系统除了要管理各个节点机之外,还要负责各节点与宿主机的通信以及节点机相互之间的通信和同步等功能。

早期的并行操作一般是在单机操作系统的基础上扩展通信模块、分布式文件系统或网络服务器等组成。现在已有微核心化、面向对象等全新的并行操作系统出现。4

分类一、按控制方式分类可分为以下四类:

1、主从式(Master-Slave)

主从式是并行操作系统中较为简单且较古老的一种。它比较适合于有主从关系的体系结构的并行计算机中,也可用于对称式环境。主从式操作系统的主要特点就是它将所有系统服务和中断处理安排在一个处理器(该处理器称为主处理器)上运行;其它处理器(称为从处理器)的管态进程均要送到主处理器上去处理。

2、独立式(Separate Supervisor)

独立式操作系统是指在每一个处理器上有一个操作系统内核,它是与主从式截然不同的结构,而与网络上的操作系统有类似之处。这种方式的操作系统的资源共享是一种较高级别的资源共享方式,如文件共享。

3、浮动式(Floating Supervisor)

浮动式结构的主要特征是操作系统的内核不是固定在某一个处理器上(就像主从式),而是根据需要在几台能执行内核的处理器上浮动运行。

4、多线程(Multithread)

线程是可以单独执行的实体,是一些具有必要的最小状态的轻量级进程;所谓最小状态包括进程状态和相关寄存器的内容。所谓多线程的并行操作系统其实是对内核重新进行设计或对浮动式的进一步改进,即使内核的分块足够小,足以使多个处理器可以同时在内核中运行,这时便形成了多线程内核。

二、按内核结构可分为以下几类:

1、整体内核系统

并行操作系统的内核如果是一个整体,仅通过一个简单的硬件边界与用户程序分离,而在操作系统内部各模块之间无边界保护的内核结构,我们就称之为整体内核。在整体内核的结构中,进程间的通信作为一种高级的操作系统功能是通过系统支持的共享内存或可见的基于消息的通信机制来实现的。

2、基于能力的系统

在这种系统下,每一个内核模块或硬件资源中的可访问实体均有自己的保护域,同时所有的实体均位于单一的有名空间下。

3、消息传递系统

这种操作系统内核中,各进程一直存在于自己的地址空间下,同时进程的通信是通过通信通道上的消息传递实现的。3