第 1 章 名词库
这一页是复习主入口。 目标是把第 1 章的名词收全,并把每个词的边界和适用范围钉死。
每条最多四行:是(定义)/不是(划掉最常见的误解)/易混(成对的对手)/范围(该结论在什么条件下才成立)。
建设进度:✅ 1.1 ✅ 1.2 ✅ 1.3 ✅ 1.4 ✅ 1.5 ✅ 1.6 (第 1 章完整)
1.1.1 操作系统的概念
操作系统
- 是:控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源分配,并为用户和其他软件提供方便接口与环境的程序集合。
- 不是:不是一个程序——它是一批被事件触发的例程,不存在”操作系统进程”从头跑到尾。
- 易混:定义三段对应三个身份——资源管理者 / 接口 / 程序集合。
系统软件 vs 操作系统
- 是:系统软件是大类,包括操作系统、编译程序、汇编程序、数据库管理系统等;操作系统是其中最基本的一个。
- 不是:编译程序、数据库管理系统不是操作系统的一部分。
- 易混:判据——这个软件运行时需不需要另一个软件为它管理资源。操作系统不依赖任何其他软件。
裸机 / 扩充机器
- 是:不装任何软件的计算机称为裸机;覆盖了软件、功能得到扩充的机器称为扩充机器(虚拟机器)。
- 范围:“扩充”指操作系统提供的功能不是硬件本来就有的——“读文件”这个能力是文件系统造出来的,硬件只会”读第 N 块”。
1.1.2 操作系统的功能和目标
四项功能
- 是:处理机管理(第 2 章)、存储器管理(第 3 章)、文件管理(第 4 章)、设备管理(第 5 章)。
- 易混:管理目标是安全 + 高效,两者常互相冲突。
- 范围:这四项就是整门课的目录,后面四章是”资源管理者”在四类资源上的四次落实。
联机命令接口 / 脱机命令接口
- 是:联机(交互式)——用户说一句、系统做一句,可随时干预;脱机(批处理)——用户说一堆、系统做一堆,提交后不能干预。
- 易混:判据是提交后还能不能干预,不是”有没有终端”或”快不快”。
- 范围:“脱机”的意思是脱离了人机交互,它是批处理阶段的产物。
程序接口 / 系统调用 / 广义指令
- 是:由一组系统调用组成,供程序在代码中调用;系统调用又称广义指令。
- 不是:系统调用不属于命令接口——命令接口给人用,程序接口给程序用。
- 范围:用户程序请求操作系统服务的唯一途径是系统调用。
图形用户界面(GUI)
- 是:用户通过窗口、菜单、图标操作计算机的接口。
- 不是:不是第四种独立的实现机制——它最终通过调用程序接口(系统调用)实现。
1.1.3 操作系统的特征
并发 vs 并行
- 是:并发是两个或多个事件在同一时间间隔内发生;并行是在同一时刻发生。
- 不是:单核 CPU 能并发,不能并行。
- 易混:并行必然并发,反之不然。
- 范围:操作系统的并发性靠多道程序设计技术实现。
共享(互斥共享 / 同时访问)
- 是:互斥共享指一段时间内只允许一个进程访问(该资源称临界资源);同时访问指宏观上多个进程同时访问,微观上可能交替。
- 不是:互斥共享不是”只允许一个进程访问”——“一段时间内”这个限定不能抽掉,否则就变成独占分配了。
- 范围:能否同时访问取决于资源可否寻址——磁盘可以,打印机不行。
虚拟(时分复用 / 空分复用)
- 是:把一个物理实体变为若干逻辑上的对应物。时分复用切时间 → 虚拟处理器;空分复用切空间 → 虚拟存储器。
- 易混:记法——处理器是”用时才占”的资源故按时间切;存储器是”一直占着”的资源故按空间切。
异步
- 是:多道程序环境下,进程走走停停、以不可预知的速度向前推进。
- 范围:“不可预知”是核心——它导致程序的执行结果不能依赖于执行速度,这正是必须引入同步机制的根本原因。
四个特征的依赖关系
- 是:并发与共享是两个最基本的特征,互为存在条件;虚拟与异步建立在它们之上。
- 范围:两个方向都要能说出理由——失去并发,共享无意义(资源本就全归唯一的程序);失去共享,并发无法进行(资源不能共用就只能串行)。
1.2 操作系统发展历程
演进链
- 是:手工操作(人机速度矛盾)→ 单道批处理(CPU 等 I/O 时空闲)→ 多道批处理(无人机交互)→ 分时(不能优先处理紧急任务)→ 实时。
- 范围:每一代都是为治上一代的毛病而生,按这条链读不需要背。
单道批处理系统
- 是:引入脱机输入/输出技术与监督程序;三个特征——自动性、顺序性、单道性。
- 易混:“脱机”指输入输出不由主机直接完成,这是 SPOOLing 的思想来源。
多道批处理系统 / 多道程序设计
- 是:内存中同时存放多道程序,一道等 I/O 就跑另一道。特点是多道、宏观上并行、微观上串行。
- 范围:多道批处理系统的出现标志着操作系统正式诞生——因为并发从此出现,“管理”的需求才真正产生。
分时操作系统
- 是:把 CPU 时间切成时间片轮流分配给各联机作业。四个特征——同时性(多路性)、独立性、及时性、交互性。
- 不是:它不能优先处理紧急任务——所有作业被同等对待。
实时操作系统
- 是:能在规定时间内完成对外部事件的处理。两个主要特征——及时性、可靠性。分硬实时(必须在绝对严格的时间内完成)与软实时(可接受偶尔违反)。
- 不是:实时未必比分时”快”。
- 易混:↔ 分时系统的”及时”。判据:分时的及时是”响应时间短”(软性、平均);实时的及时是”不超过截止时间”(硬性、每次)。
- 范围:实时的核心是”可预测”,不是”快”。
网络操作系统 / 分布式计算机系统
- 是:网络操作系统的特点是资源共享与通信;分布式系统的特点是分布性与并行性。
- 易混:判据——任务能不能被拆开并行执行。记法:网络是”你的资源借我用”,分布式是”这活儿咱们一起干”。
1.3.1 处理器运行模式
用户态 / 内核态
- 是:用户态(目态)权限低,只能执行非特权指令;内核态(核心态、管态)权限高,可执行全部指令。当前状态由 PSW 中的一个二进制位标志。
- 不是:不是操作系统在内存里维护的一个布尔变量——若是,用户程序改一下就能提权。
- 范围:保护闭环——想改模式位需处于内核态(改 PSW 本身是特权指令),想进内核态只能走受控入口。
特权指令
- 是:只允许在内核态执行的指令:关中断、置时钟、清内存、修改存储器管理寄存器、送程序状态字到 PSW、I/O 指令。
- 不是:特权指令错不是操作系统逐条扫描发现的——是 CPU 执行到该指令时检查 PSW 模式位、拒绝执行并触发异常。
- 易混:检查是执行时由硬件做的,不是事先由软件做的。
三种受控入口
- 是:系统调用(用户程序主动请求)、中断(外部事件)、异常(当前指令出问题)。
- 范围:入口地址由操作系统启动时写入中断向量表,CPU 只承认这张表里的入口,用户程序无法伪造跳进内核。
模式切换 vs 进程切换
- 是:模式切换只说明 CPU 在用户态与内核态之间转换。
- 范围:所有进程切换都要经过内核态,但进入内核态不一定切换进程。
getpid()发生两次模式切换、零次进程切换。
调度的时机
- 是:调度发生在内核态,常见时机是中断处理结束时、系统调用返回用户态前、进程阻塞或被唤醒后。
- 不是:不是”返回用户态后才开始调度”——一旦回到用户态,控制权已不在内核手里。
内核的四部分
- 是:时钟管理(进程切换的基础)、中断机制、原语、系统控制的数据结构及处理。
- 易混:原语的四个特点——处于最底层、运行具有原子性、运行时间较短、调用频繁。
1.3.2 中断和异常
外中断(中断)
- 是:来自 CPU 执行指令以外的事件,与当前指令无关,如时钟中断、I/O 完成中断。分可屏蔽与不可屏蔽。
- 范围:中断是操作系统夺回控制权的唯一手段——时钟中断是抢占式调度成立的前提。
内中断(异常、例外、陷入)
- 是:来自 CPU 执行指令内部的事件,与当前指令直接相关。分陷入 / 故障 / 终止。
- 不是:异常不能被屏蔽——它由当前指令造成,不处理就无法继续。
- 易混:判据是”与当前指令有没有关系”,不是严重程度。同一程序同样输入,异常每次都在相同位置发生;外中断则不然。
陷入 / 故障 / 终止
- 是:陷入由陷入指令有意引发(系统调用);故障由可修复的错误引起(缺页);终止由致命错误引起(除零、非法指令)。
- 范围:返回位置各不相同——陷入返回下一条指令;故障返回引起故障的那条指令(重新执行);终止不返回。 “故障要重新执行原指令”正是缺页处理后重新执行原指令的来源。
中断隐指令
- 是:CPU 响应中断时自动执行的一串硬件动作——关中断、保存断点、引出中断服务程序。
- 不是:不是一条真正的指令,指令系统里找不到它,程序员写不出它。
- 范围:中断处理九步中前三步由硬件(中断隐指令)完成,后六步由软件完成;“把数据从控制器读进内存”必须由软件完成。
中断处理中的开关中断
- 是:第 ⑤ 步开中断是为了允许更高优先级的中断嵌套;第 ⑦ 步关中断是因为恢复现场不能被打断。
1.3.3 系统调用
系统调用
- 是:操作系统提供给应用程序的接口,是用户程序请求操作系统服务的唯一途径。五类:设备管理、文件管理、进程控制、进程通信、内存管理。
- 范围:凡是与资源有关、会直接影响其他进程的操作,都必须由内核完成——理由是共享。
陷入指令(访管指令、trap 指令)
- 是:执行它会立即引发一个内中断,CPU 进入内核态。
- 不是:它不是特权指令——否则用户程序连它都执行不了,就永远进不了内核。
- 易混:它是唯一一个只能在用户态执行、不可在内核态执行的指令。
- 范围:陷入指令本身在用户态执行,但对它的处理在内核态进行;它属于内中断中的”陷入”类,返回到下一条指令。
库函数 vs 系统调用
- 是:库函数是用户态的函数;系统调用是内核提供的服务。部分库函数封装了系统调用(
fopen/fread),部分是纯用户态计算(strlen、sqrt)。 - 范围:
fread读一个字节不一定触发一次系统调用——C 标准库自带缓冲。
系统调用 vs 普通函数调用
- 是:普通函数调用在同一模式内完成,只是压栈跳转;系统调用要执行陷入指令、切换模式、由内核代为执行。
- 范围:系统调用一定发生模式切换,不一定发生进程切换。
1.4 操作系统结构
分层法
- 是:内核分若干层,每层只能调用紧邻的低一层。
- 范围:优点是便于调试和验证(验证第 n 层时可认为第 n−1 层已正确);缺点是效率低、层的边界难以合理定义。
模块化
- 是:主模块 + 可加载内核模块,模块间通过接口协作。
- 易混:与分层法的优缺点恰好互补——分层法用”限制”换可验证性,模块化用”自由”换灵活性。
- 范围:优点是逻辑清晰、支持动态加载;缺点是相互依赖,难以调试和验证。
宏内核(大内核)
- 是:主要功能模块都作为紧密整体运行在内核态,功能之间是普通函数调用。
- 不是:宏内核不等于没有模块——它完全可以模块化实现,只是模块都在内核态。
- 范围:优点性能高;缺点内核庞大、可靠性差。
微内核
- 是:只保留最基本功能在内核——低级进程/线程管理、低级存储管理、中断和陷入处理、进程间通信;其余作为用户态服务进程。
- 不是:微内核不是没有内核;进程间通信搬不出去,它是其余服务协作的手段。
- 易混:↔ 宏内核。判据是服务运行在哪个模式,不是代码是否分模块。
- 范围:性能差的原因是”模式切换 + 进程切换 + 消息传递”取代了函数调用,不是因为内核小。
外核
- 是:内核只负责分配硬件资源并保证安全,不做抽象——直接给用户程序分配”未经抽象的”硬件资源。
- 范围:优点是灵活、减少映射层因而提升效率;缺点是降低系统一致性、使系统更复杂。
1.5 操作系统引导
引导过程
- 是:激活 CPU(读 ROM → BIOS)→ 硬件自检 → 选定启动设备 → 加载 MBR → 扫描分区表找活动分区 → 加载 PBR → 加载启动管理器 → 加载操作系统。
- 范围:引导结束的标志是创建第一个用户态进程;引导过程中无法使用任何操作系统服务,只能按扇区号读盘。
BIOS
- 是:固化在 ROM 中的固件,负责硬件自检并把控制权交给引导程序。
- 不是:BIOS 不是操作系统——它不管理进程、不管理内存、不提供系统调用。
MBR vs PBR
- 是:MBR(主引导记录)在磁盘第 0 号扇区,整盘唯一,含引导程序与分区表;PBR(分区引导记录,即引导块)在每个分区的第一个扇区,负责装载本分区的操作系统。
- 易混:层级是 BIOS → MBR → 活动分区 → PBR → 启动管理器 → 内核。
- 范围:PBR 与具体文件系统配套,因此产生于逻辑格式化。
自举程序为何分两段
- 是:ROM 中只放很小的自举装入程序,完整的自举程序放在磁盘的启动块上。
- 范围:理由是 ROM 不可改写——若整个放进去,引导逻辑一变就得换芯片。
1.6 虚拟机
虚拟机 / VMM
- 是:用虚拟化技术把一台物理机虚拟为多台虚拟机,每台可独立运行一个操作系统;实现它的软件称为虚拟机管理程序(VMM / Hypervisor)。
- 范围:核心难点是特权指令——客户操作系统自认为在内核态会去执行特权指令,VMM 必须截获并用软件模拟。
第一类 VMM / 第二类 VMM
- 是:第一类直接运行在硬件上;第二类运行在宿主操作系统之上。
- 易混:所有差异都由这一条推出——控制权(直接 / 通过宿主)、资源(可独占 / 须共享)、性能(高 / 低)、数量(多 / 少)、可迁移性(低 / 高)、运行模式(最高特权级 / 部分用户态部分内核态)。
- 范围:最易错的是可迁移性——第一类低、第二类高,与性能恰好相反。
系统虚拟机 / 进程虚拟机
- 是:系统虚拟机虚拟出完整硬件环境,可运行完整客户操作系统(VMware、KVM);进程虚拟机只为单个程序提供运行环境(JVM)。
- 易混:判据是上面能不能跑一个完整的操作系统。
虚拟化 vs 仿真
- 是:虚拟化下绝大多数指令由物理 CPU 直接执行,只截获少数特权指令;仿真则逐条翻译不同体系结构的指令。
- 范围:虚拟化不能跨体系结构,开销小;仿真能跨体系结构,开销大。判据是指令是”直接执行”还是”被翻译”。
高频”范围限定”清单
下表集中列出最容易被抽掉限定条件的结论。看到题干把限定词去掉,就是陷阱。
| 结论 | 成立的范围 |
|---|---|
| 系统软件就是操作系统 | 不成立——系统软件是大类,操作系统是最基本的一个 |
| 操作系统是一个程序 | 不成立——是程序集合,不存在”操作系统进程” |
| 系统调用属于命令接口 | 不成立——属于程序接口 |
| GUI 是独立的第四种机制 | 不成立——最终通过调用程序接口实现 |
| 联机/脱机的判据 | 提交后还能不能干预 |
| 并发 = 并行 | 不成立——同一时间间隔 vs 同一时刻;单核能并发不能并行 |
| 互斥共享 | 限定是”一段时间内”,抽掉就变成独占分配 |
| 时分/空分复用 | 时分 → 虚拟处理器;空分 → 虚拟存储器 |
| 并发与共享的关系 | 互为存在条件,两个方向都要能论证 |
| 操作系统诞生于哪一阶段 | 多道批处理系统(并发从此出现) |
| 实时系统比分时系统快 | 不成立——实时的核心是可预测,不是快 |
| 分时的”及时” | 响应时间短(软性);实时的及时是不超截止时间(硬性) |
| 用户态/内核态是软件变量 | 不成立——在 PSW 中,改它本身是特权指令 |
| 特权指令错怎么发现 | CPU 执行时硬件检查,不是软件事先扫描 |
| 进入内核态就切换进程 | 不成立——进程切换必经内核态,反之不然 |
| 调度在返回用户态之后 | 不成立——在返回用户态之前检查调度 |
| 异常可以被屏蔽 | 不成立——异常不能屏蔽;可屏蔽中断可以 |
| 内中断/外中断的判据 | 与当前指令有没有关系,不是严重程度 |
| 缺页处理完执行下一条 | 不成立——缺页是故障,重新执行原指令 |
| 中断隐指令是一条指令 | 不成立——是 CPU 的一串硬件动作 |
| 陷入指令是特权指令 | 不成立——它必须是非特权指令,且只能在用户态执行 |
| 库函数就是系统调用 | 不成立——部分库函数封装系统调用,部分是纯用户态计算 |
| 系统调用会切换进程 | 一定切模式,不一定切进程 |
| 微内核没有内核 | 不成立;宏内核也可以是模块化的 |
| 微内核性能差的原因 | 模式切换 + 进程切换 + 消息传递取代了函数调用 |
| BIOS 是操作系统 | 不成立——是固件 |
| 第一类 VMM 可迁移性高 | 不成立——第一类低、第二类高 |
| 虚拟化就是仿真 | 不成立——直接执行 vs 逐条翻译 |
链接
- 🏠 返回总览:操作系统第 1 章:计算机系统概述总览
- 📖 第 2 章名词库:第 2 章名词库