【操作系统】计算机系统概述
目录
一、操作系统的基本概念
(一)操作系统的概念
(二)操作系统的功能和目标
(三)操作系统的特征
二、操作系统发展历程
(一)手工操作阶段(此阶段无操作系统)
(二)批处理阶段(操作系统开始出现)
(三)分时操作系统
(四)实时操作系统
(五)网络操作系统和分布式计算机系统
(六)个人计算机操作系统
三、操作系统的运行环境
(一)处理器运行模式
(二)中断和异常的概念
(三)系统调用
(四)操作系统运行环境的切换
四、操作系统结构
五、操作系统引导
六、虚拟机
七、总结
一、操作系统的基本概念
(一)操作系统的概念
在信息化时代,软件是计算机系统的灵魂,而作为软件核心的操作系统,已与现代计算机系统密不可分、融为一体。计算机系统自下而上可以大致分为 4 部分:硬件、操作系统、应用程序和用户(这里的划分与计算机组成原理中的分层不同)。操作系统管理各种计算机硬件,为应用程序提供基础,并且充当计算机硬件与用户之间的中介。
硬件如中央处理器、内存、输入 / 输出设备等,提供基本的计算资源。应用程序如字处理程序、电子制表软件、编译器、网络浏览器等,规定按何种方式使用这些资源来解决用户的计算问题。操作系统控制和协调各用户的应用程序对硬件的分配与使用。
在计算机系统的运行过程中,操作系统提供了正确使用这些资源的方法。
综上所述,操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。
(二)操作系统的功能和目标
为给多道程序提供良好的运行环境,操作系统应具有以下几方面的功能:处理机管理、存储器管理、设备管理和文件管理。为方便用户使用操作系统,还要向用户提供接口。同时,操作系统可用来扩充机器,以提供更方便的服务、更高的资源利用率。
下面用一个直观的例子来理解这种情况。例如,用户是雇主,操作系统是工人(用来操作机器),计算机是机器(由处理机、存储器、设备、文件几个部件构成),工人有熟练的技能,能够控制和协调各个部件的工作,这就是操作系统对资源的管理;同时,工人必须接收雇主的命令,这就是 “接口”;有了工人,机器就能发挥更大的作用,因此工人就成了 “扩充机器”。
-
操作系统作为计算机系统资源的管理者
- 处理机管理:在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因此对处理机的管理可归结为对进程的管理。并发是指在计算机内同时运行多个进程,因此进程何时创建、何时撤销、如何管理、如何避免冲突、合理共享就是进程管理最主要的任务。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。
- 存储器管理:存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。
- 文件管理:计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读 / 写管理和保护等。
- 设备管理:设备管理的主要任务是完成用户的 I/O 请求,方便用户使用各种设备,提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。
-
操作系统作为用户与计算机硬件系统之间的接口为让用户方便、快捷、可靠地操纵计算机硬件并运行自己的程序,操作系统还提供用户接口。操作系统提供的接口主要分为两类:一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;另一类是程序接口,编程人员可用来请求操作系统服务。
- 命令接口:使用命令接口进行作业控制的主要方式有两种,即联机控制方式和脱机控制方式。按作业控制方式的不同,可将命令接口分为联机命令接口和脱机命令接口。
- 联机命令接口也称交互式命令接口,适用于分时或实时系统的接口。联机命令由一组键盘操作命令组成。用户通过控制台或终端输入操作命令,向系统提出各种服务要求。用户每输入一条命令,控制权就转给操作系统的命令解释程序,然后由命令解释程序解释并执行输入的命令,进而完成指定的功能。之后,控制权转回控制台或终端,此时用户又可输入下一条命令。联机命令接口可以这样理解:“雇主” 说一句话,“工人” 做一件事,并做出反馈,这就强调了交互性。
- 脱机命令接口也称批处理命令接口,适用于批处理系统。脱机命令由一组作业控制命令组成,脱机用户不能直接干预作业的运行,而应事先用相应的作业控制命令编写一份作业操作说明书,连同作业一起提交给系统。当系统调度到该作业时,由系统中的命令解释程序逐条解释执行作业说明书上的命令,进而间接地控制作业的运行。脱机命令接口可以这样理解:“雇主” 将要 “工人” 做的事情写在清单上,“工人” 按照清单逐条完成这些事情,这就是批处理。
- 程序接口:程序接口由一组系统调用(也称广义指令)组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备、申请分配和回收内存及其他各种要求。当前最流行的是图形用户界面(GUI),即图形接口。GUI 最终是通过调用程序接口实现的,用户通过鼠标和键盘在图形界面上单击或使用快捷键,就能方便地使用操作系统。严格来说,图形接口不是操作系统的一部分,但图形接口所调用的系统调用命令是操作系统的一部分。
- 命令接口:使用命令接口进行作业控制的主要方式有两种,即联机控制方式和脱机控制方式。按作业控制方式的不同,可将命令接口分为联机命令接口和脱机命令接口。
-
操作系统实现了对计算机资源的扩充没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机在最内层,外面是操作系统。操作系统所提供的资源管理功能和方便用户的各种服务功能将裸机改造成功能更强、使用更方便的机器;因此,我们通常将覆盖了软件的机器称为扩充机器或虚拟机。
“工人” 操作机器,机器就有更大的作用,于是 “工人” 便成了 “扩充机器”。
(三)操作系统的特征
操作系统是一种系统软件,但与其他系统软件和应用软件有很大的不同,它有自己的特殊性即基本特征。操作系统的基本特征包括并发、共享、虚拟和异步。这些概念对理解和掌握操作系统的核心至关重要,将一直贯穿于各个部分中。
-
并发(Concurrence)并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,在内存中同时装有若干道程序,以便当运行某道程序时,利用其因 I/O 操作而暂停执行时的 CPU 空档时间,再调度另一道程序运行,从而实现多道程序交替运行,使 CPU 保持忙碌状态。并行性是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。在支持多道程序的单处理机环境下,一段时间内,宏观上有多道程序在同时执行,而在每个时刻,实际仅能有一道程序执行,因此微观上这些程序仍是分时交替执行的。可见,操作系统的并发性是通过分时得以实现的。而 CPU 与 I/O 设备、I/O 设备和 I/O 设备则能实现真正的并行。若要实现进程的并行,则需要有相关硬件的支持,如多流水线或多处理机环境。注意同一时间间隔(并发)和同一时刻(并行)的区别,下面以生活中的例子来理解这种区别。例如,若你在 9:00—9:10 仅吃面包,在 9:10—9:20 仅写字,在 9:20—9:30 仅吃面包,在 9:30—10:00 仅写字,则在 9:00—10:00 吃面包和写字这两个行为就是并发执行的;又如,若你在 9:00—10:00 右手写字,左手同时拿着面包吃,则这两个动作就是并行执行的。在操作系统中,引入进程的目的是使程序能并发执行。
-
共享(Sharing)资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。资源共享主要可分为互斥共享和同时访问两种方式。
- 互斥共享方式:系统中的某些资源,如打印机、磁带机,虽然可供多个进程使用,但为使得所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程访问该资源。为此,当进程 A 访问某个资源时,必须先提出请求,若此时该资源空闲,则系统便将之分配给 A 使用,此后有其他进程也要访问该资源时(只要 A 未用完)就必须等待。仅当 A 访问完并释放该资源后,才允许另一个进程对该资源进行访问。我们将这种资源共享方式称为互斥共享,而将在一段时间内只允许一个进程访问的资源称为临界资源。计算机系统中的大多数物理设备及某些软件中所用的栈、变量和表格,都属于临界资源,它们都要求被互斥地共享。
- 同时访问方式:系统中还有另一类资源,这类资源允许一段时间内由多个进程 “同时” 访问。这里所说的 “同时” 通常是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问,即 “分时共享” 的。可供多个进程 “同时” 访问的典型资源是磁盘设备,一些用重入代码编写的文件也可被 “同时” 共享,即允许若干用户同时访问该文件。注意,互斥共享要求一种资源在一段时间内(哪怕是一段很短的时间)只能满足一个请求,否则就会出现严重的问题(你能想象打印机第一行打印文档 A 的内容、第二行打印文档 B 的内容的效果吗?),而同时访问共享通常要求一个请求分几个时间片段间隔地完成,其效果与连续完成的效果相同。并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件:①资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题;②若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。
-
虚拟(Virtual)虚拟是指将一个物理上的实体变为若干逻辑上的对应物。物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的事物。用于实现虚拟的技术称为虚拟技术。操作系统的虚拟技术可归纳为:时分复用技术,如虚拟处理器;空分复用技术,如虚拟存储器。通过多道程序设计技术,让多道程序并发执行,来分时使用一个处理器。此时,虽然只有一个处理器,但它能同时为多个用户服务,使每个终端用户都感觉有一个 CPU 在专门为它服务。利用多道程序设计技术将一个物理上的 CPU 虚拟为多个逻辑上的 CPU,称为虚拟处理器。采用虚拟存储器技术将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。当然,这时用户所感觉到的内存容量是虚的。我们将用户感觉到(但实际不存在)的存储器称为虚拟存储器。还可采用虚拟设备技术将一台物理 I/O 设备虚拟为多台逻辑上的 I/O 设备,并允许每个用户占用一台逻辑上的 I/O 设备,使原来仅允许在一段时间内由一个用户访问的设备(临界资源)变为在一段时间内允许多个用户同时访问的共享设备。
-
异步(Asynchronism)多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误(就像对全局变量的访问顺序不当会导致程序出错一样)。然而,只要运行环境相同,操作系统就须保证多次运行进程后都能获得相同的结果。
二、操作系统发展历程
(一)手工操作阶段(此阶段无操作系统)
用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行、结果的输出等。随着计算机硬件的发展,人机矛盾(速度和资源利用)越来越大,必须寻求新的解决办法。手工操作阶段有两个突出的缺点:①用户独占全机,虽然不会出现因资源已被其他用户占用而等待的现象,但资源利用率低。②CPU 等待手工操作,CPU 的利用不充分。唯一的解决办法就是用高速的机器代替相对较慢的手工操作来对作业进行控制。
(二)批处理阶段(操作系统开始出现)
为了解决人机矛盾及 CPU 和 I/O 设备之间速度不匹配的矛盾,出现了批处理系统。按发展历程又分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)。
-
单道批处理系统为实现对作业的连续处理,需要先将一批作业以脱机方式输入磁带,并在系统中配上监督程序(Monitor),在其控制下,使这批作业能一个接一个地连续处理。虽然系统对作业的处理是成批进行的,但内存中始终保持一道作业。单道批处理系统的主要特征如下:
- 自动性。在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预。
- 顺序性。磁带上的各道作业顺序地进入内存,先调入内存的作业先完成。
- 单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。此时面临的问题是:每次主机内存中仅存放一道作业,每当它在运行期间(注意这里是 “运行时” 而不是 “完成后”)发出输入 / 输出请求后,高速的 CPU 便处于等待低速的 I/O 完成的状态。为了进一步提高资源的利用率和系统的吞吐量,引入了多道程序技术。
-
多道批处理系统用户所提交的作业都先存放在外存上并排成一个队列,作业调度程序按一定的算法从后备队列中选择若干作业调入内存,它们在管理程序的控制下相互穿插地运行,共享系统中的各种硬 / 软件资源。当某道程序因请求 I/O 操作而暂停运行时,CPU 便立即转去运行另一道程序,这是通过中断机制实现的。它让系统的各个组成部分都尽量的 “忙”,切换任务所花费的时间很少,因而可实现系统各部件之间的并行工作,使其在单位时间内的效率翻倍。多道程序设计的特点是多道、宏观上并行、微观上串行。
- 多道。计算机内存中同时存放多道相互独立的程序。
- 宏观上并行。同时进入系统的多道程序都处于运行过程中,但都未运行完毕。
- 微观上串行。内存中的多道程序轮流占有 CPU,交替执行。多道程序设计技术的实现需要解决下列问题:
- 如何分配处理器。
- 多道程序的内存分配问题。
- I/O 设备如何分配。
- 如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性。在批处理系统中采用多道程序设计技术就形成了多道批处理操作系统。该系统将用户提交的作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。优点:资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;系统吞吐量大,CPU 和其他资源保持 “忙碌” 状态。缺点:用户响应的时间较长;不提供人机交互能力,用户既不能了解自己的程序的运行情况,又不能控制计算机。注意:2018 年真题考查的多任务操作系统可视为具有交互性的多道批处理系统。
(三)分时操作系统
所谓分时技术,是指将处理器的运行时间分成很短的时间片,按时间片轮流将处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,将处理器让给其他作业使用,等待下一轮再继续运行。计算机速度很快,作业运行轮转得也很快,因此给每个用户的感觉就像是自己独占一台计算机。
分时操作系统是指多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。因此,实现分时系统的关键问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户。分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。多道批处理是实现作业自动控制而无须人工干预的系统,而分时系统是实现人机交互的系统,这使得分时系统具有与批处理系统不同的特征。分时系统的主要特征如下:
- 同时性。同时性也称多路性,指允许多个终端用户同时使用一台计算机。
- 交互性。用户通过终端采用人机对话的方式直接控制程序运行,与程序进行交互。
- 独立性。系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。
- 及时性。用户请求能在很短时间内获得响应。
虽然分时操作系统较好地解决了人机交互问题,但在一些应用场合,需要系统能对外部的信息在规定的时间(比时间片的时间还短)内做出处理(比如飞机订票系统或导弹制导系统),因此,实时操作系统应运而生。
(四)实时操作系统
为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。这里的时间限制可以分为两种情况:若某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统,如飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。若能够接受偶尔违反时间规定且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完接收的事件。实时操作系统的主要特点是及时性和可靠性。
(五)网络操作系统和分布式计算机系统
网络操作系统是伴随着计算机网络的发展而诞生的,它把网络中的各台计算机有机地结合起来,实现各台计算机之间的通信和数据传送等功能,实现网络中各种资源的共享。
分布式计算机系统是由多台计算机组成并满足下列条件的系统:系统中任意两台计算机通过通信方式交换信息;每台计算机都具有同等的地位,即没有主机也没有从机;每台计算机上的资源为所有用户共享;系统中的任意台计算机都可以构成一个子系统,并且还能重构;任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。用于管理分布式计算机系统的操作系统称为分布式计算机系统。该系统的主要特点是:分布性和并行性。分布式操作系统与网络操作系统的本质不同是,分布式操作系统中的若干计算机相互协同完成同一任务。
(六)个人计算机操作系统
个人计算机操作系统是目前使用最广泛的操作系统,它广泛应用于文字处理、电子表格、游戏中,常见的有 Windows、Linux 和 MacOS 等。操作系统的发展历程如图所示。

三、操作系统的运行环境
(一)处理器运行模式
在计算机系统中,通常 CPU 执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(系统外层的应用程序,简称应用程序)。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此 “管理程序”(内核程序)要执行一些特权指令,而 “被管理程序”(用户自编程序)出于安全考虑不能执行这些特权指令。
- 特权指令和非特权指令的特点
- 特权指令,是指不允许用户直接使用的指令,如 I/O 指令、关中断指令、内存清零指令,存取用于内存保护的寄存器、修改程序状态字寄存器等的指令。
- 非特权指令,是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。
在具体实现上,将 CPU 的运行模式划分为用户态(目态)和内核态(也称管态、核心态)。可以理解为 CPU 内部有一个小开关,当小开关为 0 时,CPU 处于内核态,此时 CPU 可以执行特权指令,切换到用户态的指令也是特权指令。当小开关为 1 时,CPU 处于用户态,此时 CPU 只能执行非特权指令。应用程序运行在用户态,操作系统内核程序运行在内核态。应用程序向操作系统请求服务时通过使用访管指令,访管指令是在用户态执行的,因此是非特权指令。
在软件工程思想和结构化程序设计方法影响下诞生的现代操作系统,几乎都是分层式的结构。操作系统的各项功能分别被设置在不同的层次上。一些与硬件关联较紧密的模块,如时钟管理、中断处理、设备驱动等处于最低层。其次是运行频率较高的程序,如进程管理、存储器管理和设备管理等。这两部分内容构成了操作系统的内核。这部分内容的指令运行在内核态。
内核是计算机上配置的底层软件,它管理着系统的各种资源,可视为连接应用程序和硬件的一座桥梁,大多数操作系统的内核包括 4 方面的内容。
-
时钟管理在计算机的各种部件中,时钟是关键设备。时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换。例如,在分时操作系统中采用时间片轮转调度,在实时系统中按截止时间控制运行,在批处理系统中通过时钟管理来衡量一个作业的运行程度等。因此,系统管理的方方面面无不依赖于时钟。
-
中断机制引入中断技术的初衷是提高多道程序运行时的 CPU 利用率,使 CPU 可以在 I/O 操作期间执行其他指令。后来逐步得到发展,形成了多种类型,成为操作系统各项操作的基础。例如,键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。可以说,现代操作系统是靠中断驱动的软件。
中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。
-
原语按层次结构设计的操作系统,底层必然是一些可被调用的公用小程序,它们各自完成一个规定的操作,通常将具有这些特点的程序称为原语(Atomic Operation)。它们的特点如下:
- 处于操作系统的底层,是最接近硬件的部分。
- 这些程序的运行具有原子性,其操作只能一气呵成(出于系统安全性和便于管理考虑)。
- 这些程序的运行时间都较短,而且调用频繁。定义原语的直接方法是关中断,让其所有动作不可分割地完成后再打开中断。系统中的设备驱动、CPU 切换、进程通信等功能中的部分操作都可定义为原语,使它们成为内核的组成部分。
-
系统控制的数据结构及处理系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块(PCB)、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。为了实现有效的管理,系统需要一些基本的操作,常见的操作有以下 3 种:
- 进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块等。
- 存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
- 设备管理。缓冲区管理、设备分配和回收等。
可见,内核态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。
(二)中断和异常的概念
在操作系统中引入内核态和用户态这两种工作状态后,就需要考虑这两种状态之间如何切换。操作系统内核工作在内核态,而用户程序工作在用户态。系统不允许用户程序实现内核态的功能,而它们又必须使用这些功能。因此,需要在内核态建立一些 “门”,以便实现从用户态进入内核态。在实际操作系统中,CPU 运行用户程序时唯一能进入这些 “门” 的途径就是通过中断或异常。发生中断或异常时,运行用户态的 CPU 会立即进入内核态,这是通过硬件实现的(例如,用一个特殊寄存器的一位来表示 CPU 所处的工作状态,0 表示内核态,1 表示用户态。若要进入内核态,则只需将该位置 0 即可)。中断是操作系统中非常重要的一个概念,对一个运行在计算机上的实用操作系统而言,缺少了中断机制,将是不可想象的。
从整体上看,操作系统的发展是一个不断提高资源利用率的过程,而提高资源利用率需要在程序未使用某资源时释放其占有权,这一行为通过中断实现。
1. 中断和异常的定义
- 中断(外中断):来自 CPU 执行指令外部的事件,常用于信息输入 / 输出(如设备 I/O 结束中断、时钟中断)。
- 异常(内中断):来自 CPU 执行指令内部的事件(如非法操作码、地址越界、运算溢出、虚存缺页、陷入指令等),不可屏蔽,需立即处理。
- 内、外中断分类关系:中断分为内部异常(故障、自陷、终止,其中故障和自陷属软件中断,终止属硬件中断)和外部中断(硬件)(可屏蔽中断 INTR、不可屏蔽中断 NMI)。
2. 中断和异常的分类
- 外中断:可屏蔽中断(INTR,可通过屏蔽字控制多重中断)、不可屏蔽中断(NMI,如电源掉电等紧急硬件故障)。
- 异常:故障(指令执行引发,如非法操作码、缺页、除数为 0)、自陷(事先安排的异常,用于调用内核程序,如系统调用)、终止(硬件故障导致 CPU 无法执行,如控制器出错)。
3. 中断和异常的处理过程
- 大致流程:CPU 检测到异常或中断请求→打断当前用户程序→转至中断 / 异常处理程序→处理后返回用户程序(可恢复则继续执行,不可恢复则终止程序)。
- 与子程序调用的区别:中断产生随机,子程序调用由 CALL 指令事先安排;中断处理需硬件支持,子程序调用纯软件;中断入口地址由硬件向量法生成,子程序入口由 CALL 指令地址码给出;中断需裁决多个请求,子程序调用无此操作等。
(三)系统调用
- 定义与性质:操作系统提供给应用程序的接口,是特殊公共子程序。涉及共享资源的操作(存储分配、I/O、文件管理等)需通过系统调用,以保证系统稳定安全。
- 功能分类:设备管理(设备请求、释放、启动)、文件管理(文件读、写、创建、删除)、进程控制(进程创建、撤销、阻塞、唤醒)、进程通信(消息传递、信号传递)、内存管理(内存分配、回收、查询作业内存信息)。
- 处理过程:
- 用户程序将系统调用号和参数压入堆栈→执行陷入指令→CPU 从用户态转为内核态→保护现场(程序计数器 PC、程序状态字 PSW、通用寄存器入栈);
- 查找系统调用入口表→转入相应的系统调用处理子程序;
- 处理完成后→恢复现场→返回用户程序继续执行。
- 设计目的:用户程序不直接执行对系统影响大的高危操作,通过系统调用请求操作系统代为执行,保障系统稳定性与安全性。
(四)操作系统运行环境的切换
- 用户态→内核态的触发场景:系统调用、中断、用户程序产生错误(如非法操作)、执行特权指令。
- 内核态→用户态的实现:通过中断返回指令完成。
四、操作系统结构
为降低复杂度、提升安全可靠性,操作系统有多种结构设计:
1. 分层法
- 设计逻辑:将操作系统分为若干层,底层(层 0)为硬件,顶层(层 N)为用户接口,每层仅调用紧邻低层的功能(单向依赖)。
- 优点:便于调试验证(分层调试,错误定位明确)、易扩充维护(不改动层间接口即可修改层内模块)。
- 缺点:合理定义各层较困难(依赖关系固定,灵活性不足)、效率较低(功能执行需穿越多层,增加层间通信开销)。
2. 模块化
- 设计逻辑:按功能划分具有一定独立性的模块,规定模块间接口,模块可细分子模块(模块 - 接口法)。衡量模块独立性的标准是内聚性(模块内部联系紧密程度)和耦合度(模块间依赖程度)。
- 优点:提高设计的正确性、可理解性和可维护性;增强操作系统的适应性;加速操作系统开发过程。
- 缺点:模块间接口难以满足实际需求;各模块设计并行推进,缺乏可靠的决策顺序。
3. 宏内核(单内核 / 大内核)
- 设计逻辑:系统主要功能模块作为一个紧密联系的整体运行在内核态,各模块共享信息,具备性能优势。
- 现状:主流操作系统(Windows、Linux、Android、iOS、macOS 等)基于宏内核,且多为融合微内核优点的混合内核。
4. 微内核
- 设计逻辑:仅保留内核最基本功能(与硬件紧密相关的部分、基本功能、客户 - 服务器通信)在内核态,非核心功能移至用户态的服务器进程中。
- 核心结构:微内核 + 多个用户态服务器(如进程服务器、虚拟存储器服务器等),通过消息传递机制交互。
- 优点:扩展性和灵活性强(修改服务无需改动内核)、可靠性和安全性高(单个模块崩溃不影响整个系统)、可移植性好(硬件相关代码仅在内核)、支持分布式计算(消息传递机制适配网络环境)。
- 缺点:性能开销大(内核态与用户态频繁切换导致执行开销偏高)。
- 应用场景:实时、工业、航空、军事等对可靠性要求极高的领域(如谷歌 Fuchsia、华为鸿蒙 OS 采用微内核架构)。
5. 外核
- 设计逻辑:为每个用户分配资源子集(如磁盘块区间),外核程序在内核态管理资源分配与安全检查,用户虚拟机仅能使用已申请的资源。
- 优点:减少资源 “映射层” 开销(无需维护资源重映像表)、分离多道程序与用户操作系统代码,负载较轻。
五、操作系统引导
操作系统(如 Windows、Linux)以程序形式存储在硬盘中,引导过程是计算机通过特定程序识别硬盘、分区及操作系统并启动的过程,流程如下:
- 激活 CPU:CPU 读取 ROM 中的 boot 程序,执行 BIOS(基本输入 / 输出系统)指令。
- 硬件自检(POST):BIOS 构建中断向量表,检查硬件故障(故障则蜂鸣中止,无故障则显示 CPU、内存、硬盘等信息)。
- 加载带操作系统的硬盘:BIOS 读取启动顺序,将存储设备引导扇区内容加载到内存。
- 加载主引导记录(MBR):MBR 告知 CPU 去硬盘哪个主分区寻找操作系统。
- 扫描硬盘分区表,加载活动分区:MBR 扫描分区表,识别并加载含操作系统的活动分区。
- 加载分区引导记录(PBR):PBR 寻找并激活启动管理器。
- 加载启动管理器:PBR 搜索并加载活动分区中的启动管理器。
- 加载操作系统:将操作系统初始化程序加载到内存执行。
六、虚拟机
- 定义:利用虚拟化技术将一台物理机器虚拟为多台虚拟机器,提供抽象、统一的模拟计算环境。
- 两类虚拟化方法:
- 第一类虚拟机管理程序:运行在最高特权级,裸机上直接运行,提供与裸机一致的虚拟机(可运行任意操作系统)。
- 第二类虚拟机管理程序:依赖宿主操作系统(如 Windows、Linux)分配资源,作为普通进程运行(如 VMware Workstation)。
- 虚拟化优势:Web 主机领域实现 “云主机”,一台物理服务器可运行多个虚拟机,降低用户成本,用户可在虚拟机上安装任意操作系统和软件。
- 分类别称:第一类虚拟化技术称裸金属架构,第二类称寄居架构。
七、总结
本文系统介绍了操作系统的基本概念、发展历程和运行环境。主要内容包括:
1. 操作系统定义与功能:作为计算机系统核心软件,负责资源管理、提供用户接口;
2. 发展历程:从手工操作到批处理、分时系统,再到网络/分布式系统;
3. 运行机制:详细阐述处理器双模(用户态/内核态)、中断异常处理、系统调用等核心机制;
4. 系统结构:分析分层、模块化、宏/微内核等设计方法及其优劣;
5. 引导流程:从硬件自检到加载操作系统的完整启动过程;
6. 虚拟化技术:介绍两类虚拟机管理程序及其应用场景。
全文通过技术原理与实例相结合的方式,全面解析了操作系统作为硬件与用户间桥梁的关键作用,以及现代操作系统在并发控制、资源共享、安全保障等方面的核心设计思想。
