408 操作系统 知识点记忆(1)计算机系统概述

前言

本文基于王道考研《操作系统考研复习指导》与汤小丹《计算机操作系统》(第4版)教材内容,结合 408 考研大纲,系统梳理计算机系统概述的核心知识记忆点和框架,既为个人复习沉淀思考,亦希望能与同行者互助共进。

本章是整门课的入口,回答“操作系统是什么、如何演进、怎样运行起来”三个根本问题,其中内核态与用户态的划分、以及系统调用机制,是理解后面所有章节的钥匙。

核心知识记忆点+理解性说明

第一章 计算机系统概述

1. 操作系统的基本概念

操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。

在计算机系统上配置OS,其主要目标是实现:方便性、有效性、可扩充性、开放性。
有效性所包含的第一层含义是提高系统资源的利用率。第二层含义是提高系统的吞吐量。
方便性和有效性是设计OS时最重要的两个目标。
所谓开放性,是指系统能够遵循国际标准,特别是遵循开放系统互连(open systeminterconnect,OSI)参考模型。

可以从人机交互、资源管理及资源抽象等不同方面来分析OS在计算机系统中所起的作用。

在这里插入图片描述

OS作为用户与计算机硬件系统之间的接口
OS作为用户与计算机硬件系统之间的接口,其含义是:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机硬件系统;或者说,用户在OS的帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序。
用户可通过3种方式来使用计算机,即通过命令方式、系统调用方式和图形/窗口方式来实现自身与OS的通信,并取得OS的服务。

OS作为计算机系统资源的管理者
处理机管理负责处理机的分配与控制;存储器管理负责内存的分配与回收;I/O设备管理负责I/O设备的分配(回收)与操纵;文件管理负责文件的存取、共享与保护等。

OS实现了对计算机资源的抽象
通常把覆盖了I/O软件的设备称为扩充机器或虚机器。I/O软件实现了对计算机硬件操作的第一个层次的抽象。
又可在第一层软件(I/O软件)之上再覆盖一层用于管理文件的软件,由它来实现对文件操作的细节,并向上层提供一组实现对文件进行存取操作的数据结构及命令。
如果在文件管理软件之上再覆盖一层面向用户的窗口软件,那么用户便可在窗口环境下方便地使用计算机,从而形成一台功能更强的虚机器。

并发、共享、虚拟、异步
在OS环境下的资源共享,或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。
系统中还有一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所说的“同时”,在单处理机环境下是宏观意义上的;而在微观上,这些进程对该资源的访问是交替进行的。典型的可供多个进程“同时”访问的资源是磁盘设备。一些用可重入代码编写的文件也可以被“同时”共享,即允许若干个用户同时访问该文件。
时分复用技术 虚拟处理机技术 虚拟设备技术 空分复用技术
虚拟的实现,如果是采用时分复用技术,即对某一物理设备进行分时使用,设N是某物理设备所对应的虚拟的逻辑设备数,则每台虚拟设备的平均速度必然等于或小于物理设备速度的 1/N1/N1/N。类似地,如果是采用空分复用技术,则此时一台虚拟设备平均占用的空间必然也等于或小于物理设备所拥有空间的 1/N1/N1/N

处理机管理功能 进程控制 进程同步 进程通信 调度(作业调度、进程调度)

设备管理功能 缓冲管理(单缓冲、双缓冲、公用缓冲池) 设备分配 设备处理
设备处理程序又称为设备驱动程序,其基本任务是实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;以及由CPU接收从设备控制器发来的中断请求,并给予迅速的响应和相应的处理。

存储器管理功能 内存分配和回收(静态分配、动态分配) 内存保护 地址映射 内存扩充(请求调入、置换功能)

文件管理功能 文件存储空间管理 目录管理 文件的读写管理和保护(文件的读/写管理、文件保护)

接口管理功能 用户接口(联机用户接口、脱机用户接口 批命令方式、图形用户接口) 程序接口

2. 操作系统的发展历程

手工操作阶段(无操作系统) 用户独占主机 资源利用率低 CPU等待手工操作

批处理阶段(操作系统开始出现) 无人机交互
单道批处理系统 自动性、顺序性、单道性
多道批处理系统 多道、宏 并 、微 串
多道程序设计技术,由此形成了多道批处理系统。在该系统中,用户所提交的作业会被先存放在外存上,并排成一个队列,称为“后备队列”。然后由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。1. 资源利用率高。2. 系统吞吐量大。3. 平均周转时间长。4. 无交互能力。

分时操作系统 时间片 多路性、同时性、交互、独立、及时

  1. 人机交互。2. 共享主机。
    分时系统是指在一台主机上连接多个配有显示器和键盘的终端所形成的系统,该系统允许多个用户同时通过自己的终端以交互方式使用计算机,并共享主机中的咨源

实时操作系统 多路性、可靠性、交互、独立、及时

  1. 工业控制系统。(2)信息查询系统。(3)多媒体系统。(4)嵌入式系统。
    硬实时操作系统 绝对保证 严格规定时间
    软实时操作系统 偶尔违反不会引起任何永久性损伤 信息查询系统和多媒体系统中的实时任务

微机操作系统
配置在微机上的OS称为微机OS,由于使用者通常为个人,因此其也被称为个人计算机单用户单任务OS 单用户多任务OS 多用户多任务OS

嵌入式操作系统 系统内核小 系统精简 实时性高 具有可配置性
为了完成某个特定功能而设计的系统,或是具有附加机制的系统,或是其他部分的计算机硬件与软件的结合体。在许多情况下,嵌入式系统都是一个大系统或产品中的一部分,如汽车中的防抱死系统。

网络操作系统 硬件独立性 接口一致性 资源透明性 系统可靠性 执行并行性

分布式系统

  1. 分布性:地理位置的分布性。功能的分布性。资源的分布性。控制的分布性。其中,资源和控制的分布性也称为自治性。(2)透明性
  2. 同一性
  3. 全局性
    分布式操作系统 透明性 内聚性 可靠性 高性能
  4. 通信管理功能。2. 资源管理功能。3. 进程管理功能。

3. 操作系统运行环境

A. CPU运行模式:内核模式与用户模式

通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序、运行频率较高的模块(如时钟管理模块、进程调度模块等)以及许多模块所公用的一些基本操作,都安排在紧靠硬件的软件层次中,并将它们常驻内存。它们通常被称为OS内核。

支撑功能 中断处理、时钟管理和原语操作(原子操作常驻内存)资源管理功能 进程管理。存储器管理。 设备管理。

当存在系统引导时,硬件会从内核态开始工作,OS接着加载,然后在用户态下执行用户程序。一旦有中断或陷阱,硬件就会从用户态切换到内核态(即将模式位置0)。因此,每当OS能够控制计算机时,它就处于内核态。在将控制权交给用户程序前,系统会切换到用户态。

  1. 特权指令,是指在内核态下运行的指令,它对内存空间的访问范围基本不受限制。它不仅能访问用户空间,还能访问系统空间,如执行启动外部设备、设置系统时钟时间、关中断、切换执行状态等操作。切换到用户态的指令也是特权指令。
  2. 非特权指令,是指在用户态下运行的指令。应用程序所使用的都是非特权指令,它只能完成一般性的操作和任务,不能对系统中的硬件和软件进行直接访问,对内存的访问范围也局限于用户空间。这样,可以防止应用程序的运行异常对系统造成破坏。

在计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(系统外层的应用程序,简称应用程序)。

特权指令,是指不允许用户直接使用的指令,如I/O指令、关中断指令、内存清零指令,存取用于内存保护的寄存器、修改程序状态字寄存器等的指令。
非特权指令,是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。

在具体实现上,将CPU的运行模式划分为用户态(目态)和内核态(也称管态、核心态)。 CPU中的PSW切换到用户态指令也是特权指令访管指令是非特权指令

内核:时钟管理+中断机制+原语+系统控制的数据结构及处理(进程/存储器/设备管理)

特权指令 内核态
直接管理系统资源的指令(设置时钟、启动/关闭硬件设备、切换进程、设置中断等)系统状态修改指令(修改中断向量表、切换CPU运行模式等)
系统控制指令(停机指令、重启指令等)
用户态
普通的数据处理指令、流程控制指令、读操作指令等

B. 中断和异常的处理

在这里插入图片描述

中断 内核夺回CPU使用权的唯一途径内部异常(中断信号来源CPU内部)故障(Fault) 软件中断 缺页自陷(Trap) 软件中断 访管指令中止(Abort) 硬件中断
外部中断(CPU外部) 硬件中断可屏蔽中断INTR
不可屏蔽中断NMI
中断向量表 存放不用中断程序的位置

注意区分中断处理和子程序调用:

  1. 中断处理程序与被中断的当前程序是相互独立的,它们之间没有确定的关系;子程序与主程序是同一程序的两部分,它们属于主从关系。
  2. 通常中断的产生都是随机的;而子程序调用是通过调用指令(CALL)引起的,是由程序设计者事先安排的。
  3. 调用子程序的过程完全属于软件处理过程;而中断处理的过程还需要有专门的硬件电路才能实现。
  4. 中断处理程序的入口地址可由硬件向量法产生向量地址,再由向量地址找到入口地址;子程序的入口地址是由CALL指令中的地址码给出的。
  5. 调用中断处理程序和子程序都需要保护程序计数器(PC)的内容,前者由中断隐指令完成,后者由 CALL 指令完成(执行CALL指令时,处理器先将当前的PC值压入栈,再将PC设置为被调用子程序的入口地址)。
  6. 响应中断时,需对同时检测到的多个中断请求进行裁决,而调用子程序时没有这种操作。
C. 系统调用

系统调用:
设备管理。完成设备的请求或释放,以及设备启动等功能。
文件管理。完成文件的读、写、创建及删除等功能。
进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
进程通信。完成进程之间的消息传递或信号传递等功能。
内存管理。完成内存的分配、回收以及获取作业占用内存区大小和起始地址等功能。

系统调用的处理过程:
第一步,用户程序首先将系统调用号和所需的参数压入堆栈;
接着,调用实际的调用指令,然后执行一个陷入指令,将CPU状态从用户态转为内核态,再后由硬件和操作系统内核程序保护被中断进程的现场,将程序计数器(PC)、程序状态字(PSW)及通用寄存器内容等压入堆栈。
第二步,分析系统调用类型,转入相应的系统调用处理子程序。在系统中配置了一张系统调用入口表,表中的每个表项都对应一个系统调用,根据系统调用号可以找到该系统调用处理子程序的入口地址。
第三步,在系统调用处理子程序执行结束后,恢复被中断的或设置新进程的CPU现场,然后返回被中断进程或新进程,继续往下执行。

系统调用与一般的调用比较

  1. 运行在不同的系统状态。一般的过程调用,其调用程序和被调用程序运行在相同的状态 – 内核态或用户态;而系统调用与一般的过程调用的最大区别就在于,系统调用的调用程序运行在用户态,而被调用程序运行在内核态。
  2. 状态的转换。由于一般的过程调用并不涉及系统状态的转换,因此可直接由调用过程转向被调用过程。但在运行系统调用时,由于调用过程和被调用过程工作处于不同的系统状态,因而不允许由调用过程直接转向被调用过程,需要通过软中断机制先由用户态转换为内核态,经内核分析后才能转向相应的系统调用处理子程序。
  3. 返回问题。在采用了抢占式(剥夺)调度方式的系统中,在被调用过程执行完成后,要对系统中所有要求运行的进程做优先级分析。当调用进程仍具有最高优先级时,才返回到调用进程继续执行;否则,将重新调度,以便让优先级最高的进程优先执行。此时,将把调用进程放入就绪队列。
  4. 嵌套调用。像一般的过程调用一样,系统调用也可以嵌套进行,即在一个被调用过程执行期间,还可以利用系统调用命令去调用另一个系统调用。当然,每个系统调用对嵌套调用的深度都有一定的限制,如最大深度为6。但一般的过程调用对嵌套调用的深度则没有限制。

一个简单的程序,用于从一个文件中读出数据,再将该数据复制到另一文件中。为此,首先须输入该程序的输入文件名和输出文件名。文件名可用多种方式指定,其中一种方式是由程序来询问用户这两个文件名。在交互式系统中,该方式要使用一系列的系统调用,先在屏幕上打印出一系列的提示信息,再从键盘终端读入定义这两个文件名的字符串。
在获得两个文件名后,程序又必须利用系统调用open去打开输入文件,并用系统调用creat去创建指定的输出文件;在执行系统调用open时,又可能发生错误。例如,程序试图去打开一个不存在的文件,或者该文件虽然存在,但并不允许被访问等。此时,程序又须利用多条系统调用去显示出错信息,继而利用一个系统调用去实现程序的异常终止。类似地,在执行系统调用creat时,同样可能出现错误。例如,系统中早已有了与输出文件同名的另一文件,这时又须利用一个系统调用来结束程序,或者利用一个系统调用来删除已存在的那个同名文件,此后再利用系统调用creat来创建输出文件。
在打开输入文件和创建输出文件都获得成功后,还须通过用于申请内存的系统调用malloc来根据文件的大小申请一个缓冲区。申请成功后,再利用系统调用read从输入文件中把数据读到缓冲区内。读完后,又用系统调用close去关闭输入文件。然后,利用系统调用write把缓冲区内的数据写到输出文件中。在读过程或写过程中,都有可能需要回送各种出错信息。例如,在写过程中,可能发现已到达文件末尾指定的字符数尚未读够,或者遇见各种与输出设备类型有关的错误(如已无磁盘空间、打印机缺纸等);在读过程中,可能发现硬件故障,如奇偶校验错误等。在将整个文件复制完后,程序又须利用系统调用close去关闭输出文件,并向控制台发出一消息,以指示复制完毕。最后,再利用系统调用exit使程序正常结束。综上所述可知,一个用户程序需要频繁地利用各种系统调用来取得OS所提供的多种服务。

系统调用类型
进程控制类系统调用 文件操控类系统调用 进程通信类系统调用 设备管理类系统调用 信息维护类系统调用

D. 程序的链接与装入
E. 程序运行时内存映像与地址空间

在单处理机系统中,OS经常会采用信息传递方式和共享存储区方式。

  1. 当采用信息传递方式时,在通信前须先打开一个连接。为此,应由源进程发出一条打开连接的系统调用,而目标进程则应利用接受连接的系统调用表示同意进行通信;然后,在源进程和目标进程之间便可开始通信。可以利用发送信息的系统调用和接收信息的系统调用来交换信息。通信结束后,还须利用关闭连接的系统调用来结束通信。
  2. 当采用共享存储区方式时,在通信前须先利用建立共享存储区的系统调用来建立一个共享存储区,再利用建立连接的系统调用将该共享存储区连接到进程自身的虚地址空间上,然后便可利用读和写共享存储区的系统调用来实现相互通信。

4. 操作系统结构

分层 系统效率较低

微内核

  1. 足够小的内核。它通常包含:1用于处理与硬件紧密相关的部分;2一些最基本的功能;3客户和服务器之间的通信。它们只是为构建通用OS提供了一个重要基础。
  2. 基于客户/服务器模式。
  3. 采用策略与机制分离原则。
  4. 采用面向对象技术。

微内核基本功能

  1. 进程(线程)管理。
    为实现进程(线程)调度功能,须在进程管理中设置一个或多个进程(线程)优先级队列,以将指定优先级进程(线程)从所在队列中取出,并将其投入执行。
    由于进程(线程)之间的通信功能是微内核OS最基本的功能,会被频繁使用,因此几乎所有的微内核OS都将进程(线程)之间的通信功能放入微内核中。此外,还将进程的切换、线程的调度以及多处理机之间的同步等功能也放入微内核中。
  2. 低级存储器管理。
    通常在微内核中,只配置最基本的低级存储器管理机制,例如,用于实现将用户空间的逻辑地址变换为内存空间的物理地址的页表机制和地址变换机制,这一部分是依赖于机器的,因此放入微内核中。
  3. 中断和陷入处理。
    大多数微内核OS都将与硬件紧密相关的一小部分放入微内核中进行处理,此时微内核的主要功能是捕获所发生的中断和陷入事件,并进行相应的前期处理,如进行中断现场保护、识别中断或陷入事件的类型等,然后将有关事件的信息转换成消息,并把它发送给相关的服务器;由服务器根据中断或陷入事件的类型,调用相应的处理程序来进行后期处理。
    拓展性、灵活性 可靠性、安全性 可移植性 分布式计算 面向对象技术
    在完成一次客户对OS提出的服务请求时,需要利用消息实现多次交互,以及进行用户/内核模式和上下文的多次切换。在微内核OS中,客户和服务器、服务器和服务器之间的通信都须通过微内核,这使得同样的服务请求至少需要进行4次上下文切换。第1次发生在客户发送请求消息给微内核,以请求取得某服务器特定的服务时;第2次发生在由微内核把客户的请求消息发往服务器时;第3次发生在服务器完成客户的请求后,把响应消息发送到微内核时;第4次发生在微内核将响应消息发送给客户时。

模块化 内聚性、耦合度

宏内核/单内核/大内核 eg:Windows,Android,IOS,macOS,Linux

外核 负责硬件资源的分配、回收、保护等

5. 操作系统引导

  1. 激活CPU。激活的CPU读取ROM中的boot程序,将指令寄存器置为BIOS(基本输入/输出系统)的第一条指令,即开始执行BIOS的指令。
  2. 硬件自检。BIOS程序在内存最开始的空间构建中断向量表,接下来的POST(通电自检)过程要用到中断功能。然后进行通电自检,检查硬件是否出现故障。如有故障,主板会发出不同含义的蜂鸣,启动中止;如无故障,屏幕会显示CPU、内存、硬盘等信息。3. 加载带有操作系统的硬盘。通电自检后,BIOS开始读取Boot Sequence(通过CMOS里保存的启动顺序,或者通过与用户交互的方式),将控制权交给启动顺序排在第一位的存储设备,然后CPU将该存储设备引导扇区的内容加载到内存中。
  3. 加载主引导记录(MBR)。硬盘以特定的标识符区分引导硬盘和非引导硬盘。若发现一个存储设备不是可引导盘,就检查下一个存储设备。如无其他启动设备,就会死机。主引导记录MBR的作用是告诉CPU去硬盘的哪个主分区去找操作系统。
  4. 扫描硬盘分区表,并加载硬盘活动分区。MBR 包含硬盘分区表,硬盘分区表以特定的标识符区分活动分区和非活动分区。主引导记录扫描硬盘分区表,进而识别含有操作系统的硬盘分区(活动分区)。找到硬盘活动分区后,开始加载硬盘活动分区,将控制权交给活动分区。
  5. 加载分区引导记录(PBR)。读取活动分区的第一个扇区,这个扇区称为分区引导记录(PBR),其作用是寻找并激活分区根目录下用于引导操作系统的程序(启动管理器)。
  6. 加载启动管理器。分区引导记录搜索活动分区中的启动管理器,加载启动管理器。
  7. 加载操作系统。将操作系统的初始化程序加载到内存中执行。

6. 虚拟机

在这里插入图片描述

第一类虚拟机管理程序 裸金属架构
每台虚拟机都与裸机相同
运行在最高特权级Ring0 可以执行最高特权指令
第二类虚拟机管理系统 寄居架构
部分运行在用户态,部分运行在内核态
GuestOs发出系统调用命令会被VMM截获并转化为VMM对HostOs的系统调用

总结(本章速记)

本章知识骨架:

    1. 操作系统的基本概念
    1. 操作系统的发展历程
    1. 操作系统运行环境
    • A. CPU运行模式:内核模式与用户模式
    • B. 中断和异常的处理
    • C. 系统调用
    • D. 程序的链接与装入
    • E. 程序运行时内存映像与地址空间
    1. 操作系统结构
    1. 操作系统引导
    1. 虚拟机

关键速记清单:

  • 方便性和有效性是设计OS时最重要的两个目标。
  • OS作为用户与计算机硬件系统之间的接口
  • OS作为计算机系统资源的管理者
  • OS实现了对计算机资源的抽象
  • 并发、共享、虚拟、异步
  • 时分复用技术 虚拟处理机技术 虚拟设备技术 空分复用技术
  • 批处理阶段(操作系统开始出现) 无人机交互
  • 单道批处理系统 自动性、顺序性、单道性
  • 多道批处理系统 多道、宏 并 、微 串
  • 分时操作系统 时间片 多路性、同时性、交互、独立、及时
  • 1 人机交互。2 共享主机。
  • 实时操作系统 多路性、可靠性、交互、独立、及时
  • 硬实时操作系统 绝对保证 严格规定时间
  • 微机操作系统
  • 嵌入式操作系统 系统内核小 系统精简 实时性高 具有可配置性
  • 分布式系统
  • 分布式操作系统 透明性 内聚性 可靠性 高性能
  • 1通信管理功能。2资源管理功能。3进程管理功能。
  • 特权指令 内核态
  • 系统控制指令(停机指令、重启指令等)
  • 普通的数据处理指令、流程控制指令、读操作指令等
  • 外部中断(CPU外部) 硬件中断可屏蔽中断INTR
  • 不可屏蔽中断NMI
  • 中断向量表 存放不用中断程序的位置
  • 注意区分中断处理和子程序调用:
  • 系统调用:
  • 设备管理。完成设备的请求或释放,以及设备启动等功能。
  • 文件管理。完成文件的读、写、创建及删除等功能。
  • 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
  • 进程通信。完成进程之间的消息传递或信号传递等功能。
  • 系统调用的处理过程:
  • 第一步,用户程序首先将系统调用号和所需的参数压入堆栈;
  • 系统调用与一般的调用比较
  • 系统调用类型
  • 在单处理机系统中,OS经常会采用信息传递方式和共享存储区方式。
  • 分层 系统效率较低
  • 基于客户/服务器模式。
  • 采用策略与机制分离原则。
  • 采用面向对象技术。
  • 微内核基本功能
  • 进程(线程)管理。
  • 低级存储器管理。
  • 中断和陷入处理。
  • 拓展性、灵活性 可靠性、安全性 可移植性 分布式计算 面向对象技术
  • 模块化 内聚性、耦合度
  • 外核 负责硬件资源的分配、回收、保护等
  • 8 加载操作系统。将操作系统的初始化程序加载到内存中执行。
  • 第一类虚拟机管理程序 裸金属架构
  • 每台虚拟机都与裸机相同
  • 运行在最高特权级Ring0 可以执行最高特权指令
  • 第二类虚拟机管理系统 寄居架构
  • 部分运行在用户态,部分运行在内核态

结语

操作系统的一切设计,都始于“抽象”二字:把裸机的 CPU 抽象成进程,把内存抽象成地址空间,把磁盘抽象成文件。而支撑这套抽象的地基,正是本章讲的运行环境——CPU 在内核态与用户态之间切换,中断与异常驱动着系统从被动等待走向主动响应,系统调用则是用户程序穿越特权边界的唯一合法通道。请记住这条铁律:特权指令只能在内核态执行,用户态程序只能通过“陷入”进入内核。它是操作系统安全与稳定的第一道防线。理解了引导过程与虚拟机,你也就理解了这套抽象机器是如何被“点亮”,又是如何被再次虚拟化的。

参考资料

  1. 王道考研《操作系统考研复习指导》
  2. 汤小丹.计算机操作系统(第4版).西安:西安电子科技大学出版社
  3. Abraham Silberschatz.操作系统概念(Operating System Concepts).北京:机械工业出版社
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐