操作系统

为了合理方便地利用计算机系统而对其资源进行管理的软件。计算机系统的资源有四类:存储、处理器、外围设备和信息。一个程序只有通过操作系统获得了所需的资源后才能执行。例如,程序在执行前必须获得存储资源才能装入,其执行要靠处理器,还需要外围设备来输入和输出数据,在执行中还可能调用存于计算机系统程序库中的程序。计算机系统的资源是由操作系统来管理和调度的,所以操作系统也可看作对程序执行进行控制的软件。操作系统还向用户提供控制计算机的各种命令,用户输入的命令由操作系统去执行,所以操作系统又可以看作计算机和用户之间的软件,用户通过操作系统使用计算机。计算机配置操作系统后不仅可以提高效率而且使用更为方便。操作系统是计算机系统中不可缺少的一种软件。

50年代的计算机还没有配置操作系统。60年代初期出现的管理程序是初级阶段的操作系统。它只具有控制输入-输出设备、执行操作员命令等简单的功能。60年代中期出现的多道程序设计操作系统和分时操作系统,是操作系统发展的第二阶段。操作系统的重要性在这一阶段已充分显示出来。操作系统的功能已经比较强,规模也比较大。为了设计出效率高、正确性好的操作系统,从60年代中期起开始进行操作系统结构和理论的研究。60年代末至70年代初,操作系统发展到成熟的第三阶段。操作系统的功能已比较完善,可靠性也比较高。特别是已开始使用高级程序设计语言来编写操作系统。70年代中期以来,操作系统有了进一步的发展,出现了网络操作系统和分布式操作系统等。此外,操作系统部分固化,即部分功能由硬件直接实现。

分类

操作系统可以分为 6种类型。

(1)单用户操作系统:在这种操作系统的控制下,计算机系统串行地执行用户程序,即执行完一个用户程序后才接受另一个用户程序。一些微型计算机所配置的操作系统就属这种类型。

(2)批处理操作系统:在这种操作系统的控制下,计算机系统可以同时接受多个用户程序,一批批地处理。批处理操作系统一般都提供多道程序设计功能(见并发程序设计),允许多个用户程序同时装入内存执行。

(3)分时操作系统:或称多用户操作系统,在这种操作系统的控制下,多个用户可以通过各自的终端同时使用一台计算机。

(4)实时操作系统:为实时系统配置的操作系统。在这种操作系统的控制下,计算机系统能及时处理数据,给出响应。设计实时操作系统时,首先要考虑系统的实时性和可靠性,其次才是效率。

(5)网络操作系统:为计算机网络所配置的操作系统。网络中的各台计算机配置有各自的操作系统。网络操作系统把它们有机地联合起来。网络操作系统的主要功能,是提供各台计算机间的通信和实现网络资源的共享。

(6)分布式操作系统:为分布计算机系统所配置的操作系统。这种操作系统在资源管理、进程同步和通信等方面都同其他类型的操作系统有较大的区别。

功能

操作系统主要提供存储管理、处理器管理、设备管理、信息管理和作业管理等功能。

存储管理

分配和回收存储单元。一道程序在启动执行前必须装入存储器内。操作系统根据程序的大小分配它需要的存储单元,然后才将它装入。程序在执行中可能还要申请存储单元:程序执行完毕后,要将所占用的全部存储单元归还给系统。存储单元的分配和回收工作,都由操作系统进行。对于具有多道程序设计功能的操作系统,必须采取有效的策略,分配各用户程序所需的存储资源以提高系统效率。在采用负式存储或虚拟存储的系统中,操作系统还要配合硬件做页面调度工作,即将所需的页面调入存储器,将暂时不用的页面调出以腾出空间。页面调度工作完成的好坏,对系统效率有很大的影响。

处理器管理

对处理器的使用进行调度。在具有多道程序设计功能的操作系统中,处理器在操作系统控制下交替地为各道程序所占用。操作系统根据一定的调度算法分配处理器。常用的处理器调度(又称低级调度)算法有优先数法和时间片法等。采用优先数法时,每一道程序给定一个优先数。每次分配处理器时,优先数大者优先分配。只有在优先数较大的那些程序因为等待外围设备传输或其他原因暂时不能占用处理器运行时,优先数较小的程序才有可能占用处理器。批处理操作系统常采用这种调度算法。采用时间片法时,每道程序分得一个时间片,例如10纳秒。当一道程序连续占用处理器的时间超过一个时间片时,就强行把处理器分配给另一道程序。分时操作系统常采用这种调度算法,以保证各终端的用户有均等的占用处理器运行的机会。

设备管理

控制外围设备操作,分配和回收外围设备资源。当一道程序在执行中要使用外围设备时,它向操作系统提出使用要求。操作系统根据要求,启动外围设备并控制其操作。

从分配的角度看,外围设备有两类:共享设备和独占设备。例如,磁盘等设备可以为多个程序所共享;而行式打印机等设备一次只能分配给一道程序。对于共享设备的分配,必须有一定的策略来决定谁可占用,占用多少。对于独占设备,可以按一定的策略分配,也可以设置虚拟设备而不分配。例如,将行式打印机设置成虚拟设备后,打印输出操作就由操作系统转换成写入磁盘操作,即将要打印的信息存入盘内,到程序执行完毕或适当的时候,才由操作系统控制而从行式打印机上输出。这就是所谓的假脱机输入输出或斯普林方法。采用这种方法可以增大系统的吞吐率,提高系统的效率。

信息管理

提供存取信息的各种服务。主要是从一个指定文卷读出信息,修改指定文卷,建立和废除一个文卷等。操作系统提供文卷服务的这一部分称为文卷管理系统。用户通过文卷系统使用文卷时,毋需考虑信息存放的物理位置和信息如何存储在物理介质上,用户只需知道文卷的名字和信息的逻辑结构。此外,用户还可以规定文卷的使用权限,如规定哪些用户拥有阅读某文卷的权利,谁拥有修改的权利,谁拥有废除的权利等。因此,在文卷管理系统管理下,各种文卷不仅使用方便,而且安全可靠。

作业管理

调度和控制作业的执行。作业是用户要求计算机系统处理的任务。例如,要求计算机系统执行一个或多个程序就是一个作业。用户在输入作业前,可用系统提供的作业控制语言(JCL)编写作业说明书,然后将它输入计算机。作业说明书指明系统如何控制作业的执行。例如,作业说明书可指出,将指定的源程序用某种编译程序编译并随后执行。用户也可以从终端打入各种命令,告诉操作系统如何控制作业的执行。操作系统也把执行中的情况通过终端向用户报告。所以,操作系统是按用户给出的作业说明书或用户打入的命令来控制作业的执行。由于计算机系统常常同时接受多个作业,操作系统必须根据一定的策略来调度作业的执行。

研究课题

关于操作系统的研究,主要有以下几个方面。

(1)操作系统结构:研究构造操作系统的各种方法,如模块结构、层次结构等。

(2)同步机制:研究进程同步的各种机制,如PV操作、管程、路径表达式和事件计数等。由于分布式系统的同步机制与单机操作系统的同步机制有较大区别,在分布式系统出现后又进行了分布式同步算法的研究,提出了时间签等同步算法。

(3)通信机制:研究进程间通信的机制,如发送、接收原语,输入、输出命令和远程过程调用等。

(4)死锁的预防和检测:研究防止死锁发生或及早发现死锁的各种方法。

(5)性能测试和分析:研究测试和分析操作系统性能的各种方法。

(6)系统的安全性:研究对各种信息所采取的保护措施,使得任何用户不会有意或无意地干扰和破坏其他用户或系统的信息。

(7)系统的容错性:研究各种容错措施,使得发生故障时系统仍可继续工作。

(8)调度算法:研究分配资源的各种策略和调度算法,如处理器调度算法和作业调度算法等。

(9)功能固化:研究用固件实现操作系统的各种功能,如同步机制固化等。

(10)人-机通信:研究人-机通信方式,操作系统提供的命令等,使用户使用计算机更加方便。

参考书目
  1. S.E.Madnick, J. J. Donovan,Operating Systems,McGraw-Hill,New York,1974.

参考文章