该章内容通常以选择题的形式考查,考查重点是操作系统的功能、运行环境和提供的服务。注意,在操作系统学习的过程中,最重要的是理解和学习操作系统是如何控制和协调处理机、存储器、设备和文件的,而接口和扩充机器只需了解即可。
操作系统基本概念
操作系统的概念
计算机系统自下而上可以大致分为四部分:硬件、操作系统、应用程序和用户(这里的划分与计算机组成原理的分层不同)。
操作系统概述(Operation System,OS):是指控制和管理整个计算机系统的硬件和软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。计算机操作系统是随着计算机研究和应用的发展逐步形成并发展起来的,它是计算机系统中最基本的系统软件。
操作系统的特征
基本特征:并发,共享,虚拟和异步:
并发,指两个或多个时间在同一时间间隔内发生。注意同一时间间隔(并发)和同一时刻(并行)的区别。在多道程序环境下,一段时间内,宏观上多道程序在同时执行,而在每个时刻,单处理机环境下实际仅能有一道程序执行,因此微观上这些程序仍是分时交替执行的。操作系统的并发性时通过分时得以实现的。而并行性时指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。要实现并行,需要相关硬件的支持,如多流水线或多处理机硬件环境。
共享,共享指的是资源共享,即系统中的资源可供内存中多个并发执行的进程共同使用。可分为两类。
- 互斥共享方式,一段时间内只允许一个进程访问该资源,这种资源称为临界资源或独占资源。
- 同时访问方式,系统中有一类资源,这类资源允许在一段时间内由多个进程“同时”访问。“同时”通常是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即“分时共享”的。例如磁盘设备。
并发和共享是操作系统两个最基本的特征,两者之间互为存在条件:1.资源共享是以程序的并发为条件的,若条件不允许程序并发执行,则自然不存在资源共享问题;2.若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。
虚拟,指把一个物理上的实体变为若干逻辑上的对应物。用于实现虚拟的技术,称为虚拟技术。操作系统的虚拟技术可归纳为:时分复用技术,如处理器的时分共享;空分复用技术,如虚拟存储器。
- 虚拟处理器技术,是通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器。
- 虚拟存储器技术,将一台物理存储器变为虚拟存储器,从逻辑上扩充存储器的容量。
- 虚拟设备技术,将一台物理I/O设备虚拟为多台逻辑上的I/O设备。
异步,多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。
操作系统的目标和功能
操作系统应具有以下几个方面的功能:处理机管理、存储器管理、设备管理和文件管理。为了方便用户使用操作系统,还必须向用户提供接口。
操作系统作为计算机系统资源的管理者
- 处理机管理,在多道程序环境下,处理机的分配和云行都以进程(或线程)为基本单位,因而处理机的管理可归结为对进程的管理。进程管理的主要功能包括进程控制、进程同步、进程通行、死锁处理、处理机调度等。
- 存储器管理,目的是为多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要功能包括内存分配、地址映射、内存保护与共享和内存扩充等。
- 文件管理,计算机中的信息都以文件形式存在,操作系统中负责文件管理的部分称为文件系统,主要功能包括存储空间的管理、目录管理及文件读写管理和保护等。
- 设备管理,主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓存管理,设备分配、设备处理和虚拟设备等。
操作系统作为用户与计算机硬件之间的接口
命令接口,用户利用这些操作命令来组织和控制作业的执行。使用命令接口进行作业控制的主要方式有两种,即联机控制方式和脱机控制方式,按作业控制方式的不同,课将命令接口分为联机命令接口和脱机命令接口:
- 联机命令接口,又称交互式命令接口,适用于分时和实时系统的接口。它由一组键盘操作命令组成。
- 脱机命令接口,又称批处理命令接口,适用于批处理系统,它由一组作业控制命令(或作业控制语句)组成。
程序接口,由一组系统调用命令(简称系统调用,也称广义指令)组成。用户通过在程序中使用这些系统调用命令来请求操作系统为其提供服务。最为典型的程序接口实现是图形用户界面(GUI),即图形接口。注意,严格地说,GUI图形接口不是操作系统的一部分,但图形接口所调用的系统命令是操作系统的一部分。
操作系统用作扩充机器
通常把覆盖了软件的机器称为扩充机器或虚拟机。
操作系统的发展与分类
手工操作阶段
此阶段的矛盾是人机矛盾(速度和资源利用)。
突出缺点是:
- 用户独占全机,造成的问题是资源利用率低。
- CPU等待手工操作,CPU的利用不充分。
批处理阶段(操作系统开始出现)
单道批处理系统
主要特征:
- 自动性。在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预。
- 顺序性。先进入,先处理,先出结果。
- 单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。
出现的问题:高速的CPU会等待低速的I/O完成。
多道批处理系统
多道程序设计技术允许多个内存同时进入内存并允许他们在CPU中交替地运行,这些程序共享系统中的各种软/硬件资源。
多道程序设计的特点:
- 多道。计算机内存中同时存放多道相互独立的程序。
- 宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。
- 微观上串行。内存中的多道程序轮流占有CPU,交替执行。
多道程序设计技术的实现需要解决的问题:
- 如何分配处理器
- 多道程序的内存分配问题
- I/O设备如何分配
- 如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性和一致性。
优点:
- 资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;
- 系统吞吐量大,CPU和其他资源保持“忙碌”状态;
缺点:
- 用户响应的时间较长;
- 不提供人机交互能力,用户既不不能了解自己的程序的运行状况,又不能控制计算机。
分时操作系统
分时技术,即把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。
分时操作系统是指多个用户通过通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。
分时操作系统的特征如下:
- 同时性,也称多路性,指允许多个终端用户同时使用一台计算机,即一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。
- 交互性,用户能够方便与系统进行人机对话,即用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。
- 独立性,系统中多个用户可以彼此独立地进行操作,互不干扰。
- 及时性,用户请求能够在很短时间内得到响应。
分时系统最相对于多道批处理系统最大的进步是解决了人机交互的问题。
实时操作系统
产生的目的是,能够在某个时间限制内完成某些紧急任务而不需要时间片排队。
时间限制可以分为两种情况:
- 硬实时系统:若某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,如飞控系统等。
- 软实时系统:能够接受偶尔违反时间规定且不会引起任何永久性的损害,如飞机订票系统,银行管理系统。
主要特点是:
- 及时性
- 可靠性
网络操作系统和分布式计算机系统
网络操作系统是吧计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的互相传送。网络操作系统最主要的特点是网络中各种资源的共享即各台计算机之间的通行。
分布式计算机系统满足条件:
- 系统中任意两台计算机通过通信方式交换信息;
- 系统中每台计算机有相同等的地位,即没有主从机之分;
- 每台计算机上的资源为所有用户共享;
- 系统中的任意太计算机都可以构成一个子系统,并且还能够重构;
- 任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。
其特点是:分布性和并行性;
注意,分布式操作系统和网络操作系统的本质是不同的,分布式操作系统中的若干计算机相互协同完成同一任务,而网络操作系统更强调共享资源。
个人计算机操作系统
如Windows,Linux和Mac OS等。
操作系统的运行环境
操作系统运行机制
操作系统在工作过程中,会执行两种不同性质的程序:一种是操作系统内核程序,另一种是用户自编程序(即系统外层的应用程序,或简称应用程序)。两种程序的区别在于前者是后者的管理程序,由于权限的不同,内核程序能够执行特权指令,而应用程序不能。所谓特权指令,是指计算机中不允许用户直接使用的指令,如I/O指令、置中断指令等。
为了实现上述技术,将CPU的状态分为用户态(目态)和核心态(又称管态、内核态)。核心态执行特权指令。用户自编程序运行在用户态,操作系统内核运行在核心态。
内核是计算机上配置的底层软件,是计算机功能的延伸。一般包括以下几个方面:
- 时钟管理,时钟是最关键的设备。第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间;第二是,通过时钟中断管理,可实现进程的切换。
- 中断机制,目的是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。随着发展,其成为操作系统各项操作的基础。例如,键盘或鼠标信息的输入,进程管理和调度,系统功能的调用,设备驱动等。现代操作系统是靠中断驱动的软件。
中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。 原语,定义原语的直接方法是关闭中断,让其所有动作不可分割地完成后再打开中断。特点是:
- 处于操作系统的最底层,是最接近硬件的部分。
- 这些程序的运行具有原子性,其操作只能一气呵成(主要从系统安全性和便于管理)。
- 这些程序运行的时间都较短,而且调用频繁。
系统控制的数据结构及处理,系统中用来登记状态信息的数据结构很多,如作业控制模块、进程控制模块等。为了实现有效的管理,系统需要一些基本的操作,常见的操作有以下几种:
- 进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块等。
- 存储器管理,存储器空间的分配和回收,内存信息保护程序。代码对换程序等。
- 设备管理。缓冲区管理、设备分配和回收等。
异常和中断的概念
中断和异常的设计目的是为了方便用户态和核心态这两种状态之间的切换。发生中断或异常时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的(例如,用一个特殊寄存器的一位来表示CPU的工作状态,0表示核心态,1表示用户态。通过寄存器状态切换,切换CPU的工作状态。)
中断也称为外中断,指来自CPU执行指令以外的事件的发生,如设备发出的I/O结束中断,表示设备输入/输出处理已经完成,希望处理机能够向设备发下一个输入/输出请求,同时让完成输入/输出后的程序继续运行,类似的还有时钟中断,表示一个固定的时间片已到,让处理机处理计时,启动定时运行的任务等。这一类中断通常是与当前程序运行无关的事件,即它们与当前处理机运行的程序无关。
异常也称内中断、例外或陷入(trap),指源自CPU执行指令内部的事件,如程序的非法操作码,地址越界,算术溢出,虚存系统的缺及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。
系统调用
系统调用,是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。
分类:
- 设备管理。完成设备的请求或释放,以及设备启动等功能。
- 文件管理。完成文件的读、写、创建及删除等功能
- 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信。完成进程之间的消息传递或信号传递等功能。
- 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及地址等功能。
系统调用需要使用到某些特权指令才能完成,所以系统调用由操作系统内核程序负责完成,请求操作系统提供服务,目的是保证系统的安全性和稳定性,防止用户程序随意更改和访问重要的系统资源,影响其他进程的运行。
用户态到核心态的例子:
- 用户程序要求操作系统的服务,即系统调用
- 发生一次中断
- 用户程序中产生了一个错误状态
- 用户程序中企图执行一条特权指令
- 从核心态转向用户态由一条指令实现,是特权指令,一般是中断返回指令
由用户态进入核心态需要切换的不仅是状态,所用的堆栈也可能需要由用户堆栈切换为系统堆栈,该堆栈也属于进程。
用户态到核心态的转变,需要用户执行访管指令,要注意的是访管指令在用户态执行,所以其不是特权指令。
操作系统的体系结构
大内核和微内核
计算机操作系统主要有两种体系结构:大内核和微内核,大内核出现在前,微内核出现在后,是对大内核操作系统的优化产物。
大内核系统将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。因为各管理模块之间共享信息,能有效利用相互之间的有效特性,所以具有无可比拟的性能优势。
微内核体系产生的背景是,随着体系结构和应用需求的不断发展,需要操作系统提供的服务越来越多,代码越来越多,越来越复杂,为了解决内核代码难以维护的问题,提出了微内核的体系结构。
微内核,将内核中最基本的功能(如进程管理等)保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低了内核的设计复杂性。那些移出内核的操作系统代码根据分层的原则被划分成若干服务程序,它们的执行相互独立,交互则都借助于微内核进行通行。
微内核结构体系的意义是,有效地分离了内核与服务、服务与服务,使得它们之间的接口更加清晰,维护的代价大大降低,各部分可以独立地优化和演进,从而保证操作系统的可靠性。
而其最大问题是性能问题,因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。
为了减少切换开销,有人提出将系统服务作为运行库链接到用户程序的一种解决方案,这样的体系结构称为库操作系统。