操作系统实用教程(Linux版)
上QQ阅读APP看书,第一时间看更新

1.2 操作系统的功能

操作系统是最基本的系统软件,它主要负责管理和控制计算机系统中的硬件、软件资源,合理地组织计算机工作流程,并为用户提供一个良好的工作环境和友好的接口。计算机系统的硬件资源主要包括处理器(CPU)、存储器(Memory)、外存储器(External Memory)、输入/输出(Input/Output)设备等;软件资源一般是以文件形式存储在外部存储器中。为使系统中的程序与设备能够有条不紊地工作,并提供给用户一个良好界面,要求操作系统应具备以下5方面的功能:处理器管理、存储管理、设备管理、文件管理和作业管理。下面来详细介绍各个功能。

1.2.1 处理器管理

处理器(CPU)是整个计算机系统硬件资源的核心,其性能和使用情况对整个计算机系统的性能有着至关重要的影响。处理器的速度一般比其他硬件设备的工作速度要快得多,其他设备的正常运行往往也离不开处理器。因此,有效利用和管理处理器,充分利用处理器资源是操作系统最重要的管理任务。

在计算机系统中,经常出现多个用户同时竞争处理器的情况,那么对于唯一的一个CPU要满足所有用户的请求,如何进行处理器分配,分配多长时间给一个用户,下一次把CPU使用权分配给哪一个用户等很多的问题。因此,为了能够清晰地描述出多个程序的同时运行问题,操作系统中引入了进程的概念。

在多道程序的环境中,处理器分配的主要对象是进程。进程是指程序在并发环境下的一次运行过程。操作系统通过进程调度选择一个合适的进程分配处理器,因此,处理器管理实际上就是进程管理。操作系统有关进程方面的管理很多,主要包括进程控制、进程同步与互斥、进程调度、进程通信及死机检测与处理等。

1.进程控制

当要运行用户程序时,应为之创建一个或多个进程,分配除处理器之外的必要资源并放入进程就绪队列中。当进程运行完成时,立即撤销该进程,以便操作系统回收其所占有的资源。进程控制的基本功能就是创建和撤销进程以及控制进程的状态转换。

2.进程同步

进程同步是指两个或两个以上进程要协作完成一个任务时直接发生相互作用的关系。在多道环境下,这种进程间在执行次序上的协调是必不可少的,因为它们之间需要互相配合与协调,即进程之间在时序上要有一定的关系。

3.进程互斥

进程互斥是主要源于资源共享,是进程之间的间接制约关系,指在两个或两个以上的进程竞争某些资源(临界资源)情况下,进程互斥地使用这类资源。在多道系统中,进程互斥就是为保证每次只有一个进程使用临界资源。

4.进程通信

相互合作的进程运行时,它们之间往往要交换一定的信息,这种进程间进行的信息交换称为进程通信。

5.进程调度

进程调度是指按一定算法从进程就绪队列中选出某个进程,把处理器分配给它,使其投入运行。当一个正在执行的进程已经完成,或者因为某种原因导致该事件无法继续执行下去时,系统应进行进程调度,重新分配处理器。现代操作系统大多是线程级操作系统,进程调度的对象是线程。

1.2.2 存储管理

存储器(是指计算机内存)是计算机的记忆部件,是计算机系统中重要的资源。存储器是程序运行的舞台,一个程序要在处理器上运行,其代码和数据就要全部或部分地进驻于内存。除操作系统要占相当大的内存空间外,在多道程序系统中,并发运行的程序都要占有自己的内存空间。因此,内存资源非常紧张。

操作系统的存储管理功能其实就是管理有限的内存空间,保证内存的利用率。在现代计算机系统中,并发运行的进程越来越多,并且单个进程也越来越大。尽管内存在不断地扩大,但还是不能满足系统中快速增长的并发进程对内存的需求。为了解决这个问题,让更多的进程在系统中并发运行,满足用户需求,操作系统采用了虚拟存储管理技术,为进程提供大于实际物理内存的存储空间,利用地址交换技术,响应并行进程的需求。

归根结底,存储管理的主要工作就是分配内存、保护内存以及内存扩充。存储管理的功能包括以下几方面。

1)分配内存。多道程序并发执行的首要条件是要求不同的程序有自己的内存空间,而存储管理就需要完成合理分配内存的任务,以避免系统及用户程序的存储区之间产生冲突。

2)回收内存。程序运行结束后,必须释放其占用的存储空间,以便再分配,从而提高内存的利用率,这些是由存储管理程序来完成的。

3)保护内存。整个内存空间一般划分为两部分:系统区和用户区。系统区是操作系统本身的程序和数据驻留区;用户区是用户的程序和数据驻留区。为保证进程都能在各自的内存空间运行而互不干扰,要求进程在执行时,时刻检查对内存的访问是否合法。必须防止因某进程的错误而扰乱了其他进程的运行(即每个进程只能在自己的存储区域内活动),尤其应防止用户进程非法访问操作系统的内存区。

4)地址映射。为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,这一过程称为地址映射。操作系统必须提供地址映射机构,把进程地址空间中的逻辑地址转换为内存空间对应的物理地址,这样可使用户不必过问物理存储空间的分配细节,简化用户编程工作。

5)扩充存储。由于内存资源有限,而要满足用户对内存容量的需求,满足大型程序或多进程并发执行的需要,必须扩充内存容量。由于硬件发展的限制不可能仅从硬件上进行扩充,所以操作系统利用软件技术来解决该问题。通过采用虚拟存储技术获得内存扩充的效果,使系统的逻辑内存远远大于物理内存,以满足用户对大内存的需求。

1.2.3 设备管理

计算机系统的外部设备品种繁多,用法各异,控制与管理起来非常烦琐。常见的外部设备有终端、屏幕、打印机、绘图仪、扫描仪、硬盘、软盘、光盘、串/并行口和通信口等。相对处理器来说,这些外部设备的运转速度比较慢。处理器与外部设备间的速度问题,长期以来一直是操作系统要解决的主要问题。

由于系统要支持众多的各种设备,而且各类设备的控制和信息传输操作差别极大,因此,设备管理的代码在操作系统核心中占有相当大的部分。而它的主要任务就是充分利用各种设备资源,包括缓冲管理、设备独立性、虚拟设备、设备分配、设备驱动、设备的控制和信息传输技术等。

1.缓冲管理

当处理器和外部设备进行交换信息时,通常是利用缓冲区来缓解处理器和外部设备间速度不匹配的矛盾,实现处理器与设备、设备与设备间操作的并行程序,提高处理器和外部设备的利用率。

2.设备分配

用户程序在其运行期间随时会需要使用外部设备,当向操作系统提出设备申请时,系统根据用户程序所请求的设备类型,按某一个分配算法对设备进行分配,建立从外设到内存之间传输信息的通路;当进程的输入/输出完成后,应及时回收设备,以便重新分配给其他进程使用;将未获得所需设备的进程放进相应设备的等待队列中。

3.设备驱动

设备驱动的任务是将逻辑设备名转换成设备的物理地址,启动指定的I/O设备,完成用户指定的I/O操作,对设备发来的中断请求做出及时响应,根据中断类型进行相应的处理。

4.虚拟设备

把一次仅允许一个进程访问的设备称为独占设备。独占设备使得系统效率降低,并可能产生死锁。系统通过虚拟技术将一台独占设备改造成能被多个进程共享的设备(虚拟设备),使每个用户都感觉自己在独占该设备,从而提高设备的利用率。

5.设备独立性

即设备的无关性。由于外部设备的种类繁多,数量也不同,设备管理对各种设备操作提供了统一的操作接口,用户在编制程序时,应避免直接使用实际的设备名而使用逻辑设备名,这样可以方便用户编程,有利于解决外部设备的故障和增加设备分配的灵活性。

1.2.4 文件管理

文件是各种程序和数据的集合,也是用户存放在计算机中最重要资源,称为计算机系统中的软件资源。文件管理的功能有文件存储空间的分配和回收、目录管理、文件的存取控制、文件的安全与维护、文件逻辑地址与物理地址的映射及文件系统的安装、卸载和检查等,具体如下。

(1)文件的组织

系统按照文件的组织方式,可以有效地分配和回收文件的存储空间,在存取文件时能够确切地掌握文件所在的存取位置。

(2)文件的保护

在计算机外部存储器上存放着很多的用户文件和操作系统,为了保证这些文件的安全和保密,避免非法用户访问,操作系统对文件采取了严格的保护措施,以免文件被破坏。

(3)文件的共享

为了保证软件资源的利用率,系统在实现文件保护的同时也允许多个用户同时访问某些文件,实现资源的共享。

(4)文件操作接口统一

为了便于用户对文件操作,用户不需要掌握操作文件的详细信息便可对文件进行访问,操作系统提供了统一的接口,便利用户通过文件名即可访问文件。

1.2.5 作业管理

作业是指用户要求计算机系统处理的一个问题。任何一个作业都要经过若干个加工步骤才能得到结果,把作业的每一个加工步骤称为一个“作业步”。作业管理包括作业的输入和输出,作业的调度与控制(根据用户的需要控制作业运行的步骤)。作业管理是用户提交的诸多作业进行管理,包括作业的组织、控制、和调度等,尽可能高效地利用整个系统的资源。

(1)作业控制

用户可以根据某种形式向操作系统发出各种命令,以便对自己的作业加工与管理,一般包括批处理方式和交互方式。

(2)作业调度

当有多个作业等待处理时,系统可以根据本身的能力和当前正在运行作业的情况,按照一定的算法,从后备作业队列中选出一批作业,为它们分配所需的计算机资源,调入内存以等待处理器处理。

(3)作业控制与管理

当有多个用户作业提出请求时,作业管理需要按照用户的要求和作业的性质调度其中某些作业进入计算机系统内运行。