1.3 操作系统的功能、服务和特性
批处理系统、分时系统和实时系统是大、中、小型计算机上操作系统所具有的三种形式。这些机器的操作系统往往兼有批处理、分时处理和实时处理三者或其中两者的功能,而形成通用操作系统。如分时和批处理相结合,将分时作业作为前台任务,将批处理作业作为后台任务,便是分时批处理系统。通用操作系统不仅能满足用户的特殊要求,而且能提高资源的利用率,因此得到广泛应用。
1.操作系统的功能
操作系统提供了程序执行的环境。从资源管理的观点来看,操作系统的功能应包括:
(1)处理机管理。在多道程序或多用户系统中,由于处理机数目远远少于运行的作业数,且一个作业可能包含多个算题任务,因此,中央处理机的管理和调度就成为关键问题。特别是在单处理机的情况下,多个程序的并行运行是宏观上的。微观上,处理机在一个时刻只能执行一个作业。因此,不同类型的操作系统将针对各种不同情况采用不同的调度策略,如先来先服务(FCFS)、优先级调度、分时轮转,来提高系统资源的利用率等。
(2)存储器管理。存储器管理是指计算机的主存管理。主存是计算机硬件中除CPU之外的又一个宝贵的资源。如何对主存资源进行统一管理,使多个用户能分享有限的主存和方便存取在主存中的程序和数据,则是存储器管理的主要任务。其次要负责对用户存入主存的程序和数据提供存储保护,保证各用户程序和数据彼此不被破坏。另外,还要解决主存扩充,以便多用户方便地共享主存。
(3)设备管理。设备管理涉及对系统中各种输入设备、输出设备等的管理和控制问题。这些设备是用户与计算机进行交互的硬件。由于这些设备种类繁多,操作特性各不相同,因此,使得对这些设备管理和控制变得十分复杂。设备管理的主要任务是负责为多用户运行提供方便的运行环境,其中包括分配设备,并按照用户要求控制实现设备的数据传输,完成实际的I/O操作。
(4)文件管理。文件管理又称为信息管理或文件系统。现代计算机系统中,将程序、数据及各种信息资源(包括操作系统及各种实用程序等)组织成文件,长期保存在计算机的磁盘或磁带上。文件管理就是对这样复杂、庞大的软件资源进行存储、检索和保护,以便用户能方便、安全地访问它们。
2.操作系统提供的服务
由操作系统的功能可总结出它提供的服务:
(1)用户接口(User Interface,UI)。操作系统是用户与计算机系统之间的接口,用户通过操作系统使用计算机系统。操作系统向用户提供了两种接口方法。一种是命令行接口;另一种是程序级接口。操作系统通过这些接口了解用户的意图,以便更好地服务于用户。
(2)执行程序。将用户程序装入内存,启动程序运行,并控制程序正常完成或错误终止。
(3)I/O操作。为请求I/O的用户执行设备的启动、驱动和中断处理等。
(4)文件系统操作。为用户提供操作文件所需的各种操作和功能。
(5)通信服务。控制进程之间(即多道程序或多用户任务执行时)的同步和通信。
(6)错误检测和处理。
此外,操作系统为了使用户很好地共享系统资源,保证系统高效运行,还提供如下服务。
(7)资源分配。为用户的程序分配计算机的各种资源,以保证程序的正常运行。
(8)记账。不断统计各个用户程序占有的系统资源情况,防止故障程序的运行,使系统有效地工作。
(9)保护。在多用户多任务系统中,控制用户程序有限制地存取系统资源,以保证资源状态的一致性。
3.操作系统的特性
由上述的操作系统功能组成可见,操作系统是一个相当复杂的系统软件。特别是多道程序的引入,为分析和理解操作系统带来了非常大的困难。为了深入研究操作系统,有必要了解一下操作系统的特性,它主要表现在以下几个方面:
(1)并发性(Concurrency)。所谓并发性是指为了增强计算机系统的处理能力而采用的一种时间上重叠操作的技术。并发是指系统中存在着若干个逻辑上相互独立的程序或程序段,它们都同时处于活动状态,并竞争系统的各种资源,如CPU、主存和硬盘等。在单处理机计算机系统中,这种并发执行是宏观上的概念。例如,系统中同时有三个程序在运行,它们可能以交叉方式在CPU上执行,也可能是一个在执行计算,一个在进行数据输入,另一个在进行计算结果的打印。为了使这些并发活动(又称为进程)能有条不紊地进行,操作系统必须有效地对其进行管理和控制。允许程序并发活动的系统称为多道程序系统(MultiProgramming)或多处理系统(MultiProcessing)。
(2)共享性(Sharing)。支持系统并发性的物质基础是资源共享。资源若不能共享,多任务并发就不能实现;同样,若没有多任务并发,也就没有资源共享。资源共享是操作系统追求的主要目标之一。为了提高计算机系统的资源利用率,更好地共享系统资源,操作系统的各部分功能设计中采用了各种各样的分配调度算法。
(3)虚拟性(Virtualization)。为了便于用户程序共享计算机系统的各种资源,操作系统把这些资源的一个物理实体变为逻辑上的多个对应物。如CPU的分时使每个用户感觉都拥有一个CPU;虚拟存储器技术使多个用户程序不必担心存储器的容量就可以很好地共享存储器运行。有关这个性能,以后随时可以理解到。
(4)异步性(Asynchronism)。由于系统资源的共享,有限的资源使并发进程之间产生相互制约关系。系统中的各个进程何时执行、何时暂停以及以怎样的速度向前推进、什么时候完成等都是不可预知的。异步性给系统带来潜在的危险,有可能导致系统产生与时间有关的错误。操作系统必须保证有效地防止这些错误的发生。
由于操作系统的并发性、资源共享性及虚拟性和异步性,使得系统变得复杂和不可确定。这些问题将在以后各章中加以研究。