预计阅读本页时间:-
1.7.2 层次式系统
把图1-24中的系统进一步通用化,就变成一个层次式结构的操作系统,它的上层软件都是在下一层软件的基础之上构建的。E.W.Dijkstra和他的学生在荷兰的Eindhoven技术学院所开发的THE系统(1968),是按此模型构造的第一个操作系统。THE系统是为荷兰的一种计算机,Electrologica X8,配备的一个简单的批处理系统,其内存只有32K个字,每字27位(二进制位在那时是很昂贵的)。
该系统共分为六层,如图1-25所示。处理器分配在第0层中进行,当中断发生或定时器到期时,由该层进行进程切换。在第0层之上,系统由一些连续的进程所组成,编写这些进程时不用再考虑在单处理器上多进程运行的细节。也就是说,在第0层中提供了基本的CPU多道程序功能。

内存管理在第1层中进行,它分配进程的主存空间,当内存用完时则在一个512K字的磁鼓上保留进程的一部分(页面)。在第1层上,进程不用考虑它是在磁鼓上还是在内存中运行。第1层软件保证一旦需要访问某一页面时,该页面必定已在内存中。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
第2层处理进程与操作员控制台(即用户)之间的通信。在这层的上部,可以认为每个进程都有自己的操作员控制台。第3层管理I/O设备和相关的信息流缓冲区。在第3层上,每个进程都与有良好特性的抽象I/O设备打交道,而不必考虑外部设备的物理细节。第4层是用户程序层。用户程序不用考虑进程、内存、控制台或I/O设备管理等细节。系统操作员进程位于第5层中。
在MULTICS系统中采用了更进一步的通用层次化概念。MULTICS由许多的同心环构造而成,而不是采用层次化构造,内层环比外层环有更高的级别(它们实际上是一样的)。当外环的过程欲调用内环的过程时,它必须执行一条等价于系统调用的TRAP指令。在执行该TRAP指令前,要进行严格的参数合法性检查。在MULTICS中,尽管整个操作系统是各个用户进程的地址空间的一部分,但是硬件仍能对单个过程(实际是内存中的一个段)的读、写和执行进行保护。
实际上,THE分层方案只是为设计提供了一些方便,因为该系统的各个部分最终仍然被链接成了完整的单个目标程序。而在MULTICS里,环形机制在运行中是实际存在的,而且是由硬件实现的。环形机制的一个优点是很容易扩展,可用以构造用户子系统。例如,在一个MULTICS系统中,教授可以写一个程序检查学生们编写的程序并给他们打分,在第n个环中运行教授的程序,而在第n+1个环中运行学生的程序,这样学生们就无法篡改教授所给出的成绩。