第1章 计算机系统概述
第1章 计算机系统概述¶
通常以选择题形式考查:宏观上把握整体架构,微观上掌握关键概念与核心机制。本章是全书导引,为后续进程管理、内存管理、文件系统打基础。
b_13_3【知识树】第1章骨架¶
- 基本概念:定义、四大功能、四个特征(并发/共享/虚拟/异步)
- 发展历程:手工 → 单道批处理 → 多道批处理 → 分时 → 实时 → 网络/分布式 → 微机
- 运行环境
- 内核:支撑功能(时钟、中断、原语)+ 资源管理功能
- 双重工作模式:用户态 / 内核态,特权指令
- 中断与异常:分类、处理过程
- 系统调用:五类功能、四阶段处理过程
- 操作系统结构:分层、模块化、宏内核、微内核、外核
- 操作系统引导:传统 BIOS/MBR 模型为 BIOS → POST → MBR → PBR → 启动管理器 → 内核(现代 UEFI/GPT 路径不同)
- 虚拟机:第一类(裸金属)/ 第二类(寄居)
b_13_1;PDF 第 13 页 · b_13_21.1 操作系统的基本概念¶
操作系统的定义和四层视角?¶
操作系统是控制和管理计算机系统软/硬件资源、合理调度任务与分配资源,并为用户及其他软件提供统一接口与运行环境的最基本的系统软件。
从使用层次看,计算机系统自下而上分四层:硬件 → 操作系统 → 应用程序 → 用户。
⚠️ 这个划分侧重人机交互视角,不同于计算机组成原理中的结构分层。
b_13_6操作系统的四大功能 + 两项附加作用?¶
四大核心功能: - 处理机管理:本质是进程管理 —— 进程控制、进程同步、进程通信、死锁处理、处理机调度 - 存储器管理:内存分配与回收、地址映射、内存保护与共享、内存扩充 - 文件管理:文件存储空间管理、目录管理、文件读写、访问保护 - 设备管理:缓冲管理、设备分配、设备驱动处理、虚拟设备
两项附加:提供用户接口;通过抽象与虚拟化扩充硬件功能。
💡 教材类比:用户是雇主、计算机是机器、操作系统是工人 —— 工人协调部件 = 资源管理,接收命令 = 用户接口,让机器好用 = 扩充机器。
b_14_0三类用户接口的区别?¶
- 联机用户接口(命令行接口):面向交互式用户,键盘命令 + 命令解释程序;输入一条立即解释执行并返回控制权
- 脱机用户接口(作业控制语言):用于批处理系统,命令写在作业说明书里连同作业一起提交,无须用户实时干预
- 图形用户接口 GUI:图标菜单对话框替代文本命令,底层仍通过系统调用与内核交互
💡 记忆法:"联机是对话,脱机是交清单,GUI 是点图标"。
b_15_0;PDF 第 15 页 · b_15_1库函数是不是操作系统接口? ★1考¶
不是。 ⚠️ 库函数只是对系统调用的封装,操作系统真正提供给应用程序的接口本质上仍是系统调用。
- printf() 最终通过 write 系统调用输出
- malloc() 需要更多内存时可能调用 brk 或 mmap
- ⚠️ strlen()、sqrt() 等纯计算类库函数完全在用户空间运行,不涉及任何系统调用
程序接口 = 一组系统调用,是应用程序主动请求操作系统服务、访问受保护系统资源的合法途径;每个系统调用对应内核中一个子程序。
⚠️ 校订/边界:这里说的是“应用程序主动请求内核服务”的入口;外部中断和执行异常同样能使 CPU 受控进入内核。
★ 考过 2010
b_15_6什么是裸机和扩充机器?¶
裸机 = 未安装任何软件的计算机,仅构成计算机系统的物质基础。
操作系统通过资源管理和用户服务功能,把裸机抽象并扩展为一台功能更强、使用更便捷的逻辑机器 —— 称为扩充机器。
💡 层次关系:裸机在最内层,其外层覆盖操作系统。
b_15_9并发和并行的根本区别? ★1考¶
- 并发:两个或多个事件在同一时间间隔内发生
- 并行:两个或多个事件在同一时刻真正同时发生
⚠️ 单处理机系统中,宏观上多道程序看似同时运行,但微观上任一时刻仅有一个程序在执行 → 属于并发而非并行。
⚠️ 单机上真正的并行只存在于:CPU 与 I/O 设备之间、多个 I/O 设备之间。要实现进程级别的并行,必须有多核 CPU 或多处理机。
💡 教材生活例子:交替吃面包和写字 = 并发;左手拿面包吃、右手同时写字 = 并行。
★ 考过 2009
b_15_16互斥共享和同时访问怎么分?¶
- 互斥共享:任一时间段内仅有一个进程访问该资源;这类资源称为临界资源(打印机、磁带机等独占型物理设备,以及软件中的栈、变量、表格)
- 同时访问:允许多个进程宏观上"同时"访问,⚠️ 微观上可能分时交替访问(分时共享);典型是磁盘上的只读文件、用重入代码编写的程序
⚠️ 判据:互斥共享要求任意时刻只响应一个请求(多进程同时打印会让文档内容交错混杂);同时访问允许多个请求分时完成,只要最终效果等同于连续访问。
b_16_3;PDF 第 16 页 · b_16_4并发和共享为什么互为前提?¶
- 资源共享以并发执行为前提:若系统仅支持单道程序,就无须考虑资源共享
- 有效的资源共享是并发执行的基础:若无法协调资源访问,并发程序将因竞争冲突而无法正确运行
💡 并发与共享是操作系统两个最基本的特征。
b_16_11虚拟靠哪两类复用技术?¶
虚拟 = 把一个物理实体映射为多个逻辑上的对应物。 - 时分复用:多道程序分时共享一个处理器 → 每个用户仿佛独占一个 CPU - 空分复用:虚拟存储器把有限物理内存扩展为更大的逻辑地址空间
⚠️ 还有虚拟设备技术(SPOOLing):把独占型物理 I/O 设备(如打印机)转化为多台逻辑设备 —— 原本要互斥访问的临界资源,变成可并发使用的共享资源。
b_16_12;PDF 第 16 页 · b_16_13什么是异步性?它会带来什么问题?¶
进程以不可预知的速度断续推进,这种特性称为进程的异步性(原因是系统资源有限)。
⚠️ 风险:可能导致与时间相关的错误(如多个进程并发修改全局变量而未加同步保护)。
⚠️ 但是:只要程序正确使用操作系统提供的同步机制,执行结果的正确性与可再现性就能得到保障。
b_17_1;PDF 第 17 页 · b_17_21.2 操作系统发展历程¶
手工操作阶段的两个缺点?脱机 I/O 解决了什么?¶
手工操作两个缺点: - 用户独占全机,虽无资源竞争但系统资源利用率极低 - CPU 长时间空闲等待人工完成 I/O
脱机 I/O:引入外围机,在 CPU 不参与的情况下预先完成 I/O 准备工作(输入时把纸带内容读入磁带,输出时把磁带内容送到外设)。 - ⚠️ 名字由来:I/O 完全由外围机独立完成、脱离主机控制 → 脱机 I/O;由主机直接管理 I/O 则称联机 I/O - 优点:显著减少 CPU 空闲时间;CPU 直接从高速磁带读写,大幅提升 I/O 效率
b_19_4;PDF 第 19 页 · b_19_7单道批处理系统的三个特征? ★1考¶
- 自动性:磁带上的作业自动连续执行,无须人工干预
- 顺序性:按磁带上的顺序依次装入内存,先装入者先完成
- 单道性:⚠️ 内存中仅允许一道用户程序运行,前一道完成或异常终止后才装入下一道
⚠️ 致命局限:运行的作业发起 I/O 请求时,高速 CPU 只能空闲等待 → 引出多道程序设计技术。
★ 考过 2016
b_19_15多道程序设计的三个核心特点? ★2考¶
- 多道:内存中同时驻留多道相互独立的程序
- 宏观上并行:多道程序都处于运行过程中,但尚未全部完成
- 微观上串行:⚠️ 各程序轮流占用 CPU,交替执行
要解决的四个关键问题:处理器的分配策略;内存分配与保护;I/O 设备的分配与调度;大量程序与数据的组织存储及安全一致性。
优缺点:资源利用率高、系统吞吐量大;⚠️ 缺乏交互能力,用户无法了解运行状态或干预,响应时间较长。
⚠️ 关键机制:多道批处理依赖中断技术实现程序切换。
★ 考过 2017、2022
b_20_3分时操作系统的四个特征?¶
- 同时性(多路性):允许多个终端用户同时使用同一台计算机
- 交互性:用户可通过终端以人机对话方式直接控制程序运行
- 独立性:各用户操作相互隔离,任一用户均感觉系统为其独占
- 及时性:请求能在较短时间内获得响应
⚠️ 与多道批处理的本质区别:批处理追求高吞吐量和资源利用率、无须人工干预;分时以人机交互为核心目标。
💡 记忆法:"同交独及"。
b_20_6;PDF 第 20 页 · b_20_8硬实时和软实时怎么区分?¶
实时系统摒弃了分时的时间片轮转,改用基于任务紧迫性或截止时间的调度策略。 - 硬实时:⚠️ 必须在规定截止时间前完成,否则引发灾难性后果 —— 飞机控制系统、导弹制导系统 - 软实时:允许偶尔错过截止时间,只要不造成永久性损害 —— 飞机订票系统、银行管理系统
三个主要特点:确定性(响应时间可预测)、高可靠性、强时效性。
b_21_0;PDF 第 21 页 · b_21_1网络操作系统和分布式操作系统差在哪?¶
- 网络操作系统:只做通信、数据传输、资源共享;⚠️ 各计算机保持独立运行,用户需显式指定远程资源的位置,不提供统一的全局视图
- 分布式操作系统:节点地位对等无主从,资源透明共享,可把一个任务分解为多个子任务分布到不同节点并行执行;核心特点是分布性、并行性、透明性
⚠️ 分界线:网络 OS 要用户主动干预远程操作;分布式 OS 向用户提供单一系统映像(用起来像一台计算机)。
b_21_2微机操作系统的三类? ★1考¶
- 单用户单任务:只允许一个用户运行一个程序;代表 MS-DOS(16 位)
- 单用户多任务:一个用户同时运行多个程序,靠时间片轮转切换;代表 Windows XP 及后续、macOS、现代 Linux 桌面版;是当前主流
- 多用户多任务:多个用户同时登录各自并发执行多任务;代表 UNIX、Linux 服务器版、Windows Server
★ 考过 2018
b_21_111.3 操作系统的运行环境¶
哪些模块被放进内核?为什么?¶
放入内核的三类模块: - 与硬件紧密相关的模块(中断处理程序、设备驱动程序) - 运行频率较高的模块(时钟管理、进程调度) - 各模块共用的基础操作
它们紧靠硬件、常驻内存。两个目的:保护核心模块免受应用程序破坏;提升运行效率。
b_27_4;PDF 第 27 页 · b_27_5内核的支撑功能有哪三项? ★2考¶
- 时钟管理:功能是计时和产生定时中断;向用户提供标准系统时间,并用时钟中断实现调度 —— 分时系统的时间片轮转、实时系统的截止时间控制、批处理系统的衡量作业运行进度
- 中断机制:⚠️ 是现代操作系统运行的基础,允许 CPU 在 I/O 期间执行其他指令;内核负责保存现场 → 转移控制权 → 处理完恢复现场
- 原语:由若干指令组成、具有原子性(执行不可被中断,必须一气呵成);⚠️ 运行在内核态,执行时间短、调用频繁;常见有进程切换、进程同步、资源分配;⚠️ 常通过关闭中断实现原子性
★ 考过 2016、2018
b_27_8用户态和内核态是怎么标识和切换的? ★4考¶
硬件用一个模式位标识当前模式:⚠️ 0 表示内核态,1 表示用户态。(内核态也称管态/系统态,用户态也称目态。)
切换规则: - 系统引导时硬件从内核态开始工作,加载完操作系统后切换到用户态执行用户程序 - ⚠️ 一旦发生中断或陷阱,硬件自动从用户态切换至内核态(模式位置 0) - 操作系统一旦获得控制权就处于内核态;交还用户程序前切回用户态(模式位置 1)
★ 考过 2011、2012、2014、2021
b_28_2特权指令和非特权指令的界线? ★1考¶
- 特权指令:⚠️ 仅能在内核态执行,可访问全部地址空间(用户空间 + 系统空间);如启动外设、设置系统时钟、关闭中断、修改模式位、返回用户态
- 非特权指令:通常在用户态执行,用于一般计算和数据处理,⚠️ 内存访问被限制在用户地址空间
⚠️ 强制手段:用户程序试图执行特权指令时,硬件产生非法指令异常,操作系统捕获后终止该程序并重新调度。
★ 考过 2022
b_28_5用户态进内核态的唯一合法途径是什么? ★2考¶
⚠️ 只有中断或异常(内核中设立若干称为"门"的受控入口)。
四种常见情形: - 用户程序请求操作系统服务(系统调用) - 发生外中断(如 I/O 完成、时钟信号) - 用户程序执行中产生异常(如除零、缺页) - 用户程序试图执行特权指令,从而触发异常
⚠️ 反方向:从内核态返回用户态由内核通过特定的返回指令(如 IRET)完成,该操作在内核态执行。
★ 考过 2013、2015
b_28_10中断和异常分别来自哪里? ★2考¶
- 中断(外中断):来自 CPU 执行指令外部的事件,通常用于信息输入/输出 —— I/O 结束中断、时钟中断
- 异常(内中断):来自 CPU 执行指令内部的事件 —— 非法操作码、地址越界、运算溢出、缺页、专门的陷入指令
⚠️ 异常一旦发生就必须立即处理,不可被屏蔽。
★ 考过 2013、2015
b_28_14中断和异常各分几类? ★1考¶
外中断分两类: - 可屏蔽中断:通过 INTR 线发出,⚠️ 改变屏蔽字可实现多重中断 - 不可屏蔽中断:通过 NMI 线发出,通常是紧急的硬件故障(如电源掉电)
异常分三类: - 故障(Fault):指令执行引起 —— 非法操作码、缺页故障、除数为 0、运算溢出 - 自陷(Trap,陷入):⚠️ 事先安排的"异常"事件,用于在用户态调用内核程序 —— 条件陷阱指令、系统调用指令 - 终止(Abort):CPU 无法继续执行的硬件故障 —— 控制器出错、存储器校验错
⚠️ 归属划分:故障和自陷属于软件中断(程序性异常);终止异常和外中断属于硬件中断。
★ 考过 2016
💡 记忆法:"故障可修、自陷是约好的、终止没救"。
b_29_3;PDF 第 29 页 · b_29_4异常和中断处理完返回哪条指令? ★3考¶
⚠️ 这是最容易混的一点,不能把所有异常都说成“返回第 i 条”: - 故障(Fault):修复后通常返回第 i 条指令重新执行(例如缺页处理完后重访原内存地址) - 自陷(Trap):通常返回第 i+1 条指令(陷入指令的下一条) - 终止(Abort):属于不可恢复错误,不返回原程序 - 外中断:在第 i 条指令执行结束后响应,处理完通常返回第 i+1 条指令继续执行
触发时机也不同:异常在指令执行中引发;中断是在指令执行结束后检测到请求信号。
若处理程序判定为不可恢复的致命错误,则终止该用户程序。
★ 考过 2015、2020、2024
💡 记忆法:“故障重做,自陷下一条,终止不回;外中断接下一条。”
⚠️ 校订/边界:教材有时用“异常通常返回第 i 条”概括,严格作答时必须按 Fault / Trap / Abort 分类。
b_29_7;PDF 第 29 页 · b_29_8中断处理和子程序调用的六点区别? ★1考¶
| 对比项 | 中断处理 | 子程序调用 |
|---|---|---|
| 关系 | 与被中断程序相互独立,无固定关联 | 同一程序的主从关系 |
| 产生 | 通常是随机的 | CALL 指令显式触发,事先安排 |
| 实现 | ⚠️ 需要硬件电路支持 | 完全由软件实现 |
| 入口地址 | 中断向量表直接提供 | CALL 指令的地址码指定 |
| 保护 PC | 硬件在中断响应过程中自动保存 | CALL 指令把当前 PC 压栈 |
| 优先级裁决 | ⚠️ 需要对同时到达的多个请求裁决 | 不存在 |
★ 考过 2012
b_29_10系统调用分哪五类? ★3考¶
- 设备管理:设备的请求、释放、启动
- 文件管理:文件的读、写、创建、删除
- 进程控制:进程的创建、撤销、阻塞、唤醒
- 进程通信:进程之间的消息传递或信号传递
- 内存管理:内存的分配、回收,获取作业占用内存区的大小和起始地址
⚠️ 每个系统调用都有唯一的系统调用号;⚠️ 必须由操作系统内核程序在内核态下完成。
★ 考过 2019、2021、2024
💡 记忆法:"设备、文件、进程控制、进程通信、内存"——五个管家。
b_29_14系统调用与普通过程调用的四点不同?¶
- 运行状态不同:普通调用双方同一特权级;系统调用调用者在用户态、被调用者在内核态
- 状态转换不同:普通调用可直接跳转;系统调用必须通过陷入指令(Trap)触发,先切到内核态再分派
- 返回机制不同:系统调用执行完内核可能根据调度策略决定是否切换进程;普通调用总是直接返回原调用点
- 嵌套限制不同:系统调用受内核栈空间限制;普通调用受用户栈大小约束
b_30_2系统调用处理的四个阶段? ★4考¶
- ① 传递系统调用参数:用户程序把系统调用号及参数压入堆栈(或通过寄存器)
- ② 执行陷入指令并切换至内核态:硬件与内核协同保存现场,把 PC、PSW 及通用寄存器压入内核堆栈
- ③ 定位并执行相应服务程序:内核按系统调用号查系统调用表找到入口地址
- ④ 恢复现场并返回用户态:恢复 CPU 现场,切回用户态,从断点继续执行
💡 一句话总结运行环境:用户程序在受限的用户态,通过系统调用(主动)或异常/中断(被动)两种受控途径进入内核态。
★ 考过 2012、2017、2022、2023
b_30_41.4 操作系统结构¶
分层法的两优两缺?¶
规则:最底层(层 0)是硬件,顶层(层 N)是用户接口;⚠️ 各层仅可调用其紧邻下层的功能(单向依赖)。
优点: - 便于调试与验证:自底向上逐层开发测试,出错可定位在该层内部(下层都已验证过) - 易于扩充与维护:保持层间接口不变就能独立修改某一层
缺点: - 层次划分困难:功能边界难界定,依赖关系一旦固化就缺乏灵活性 - ⚠️ 运行效率较低:一个高层功能要穿越多个中间层,参数传递与控制转移带来额外开销
b_38_7;PDF 第 38 页 · b_38_8衡量模块独立性的两个标准?¶
- 内聚性:模块内部各部分联系的紧密程度 —— ⚠️ 内聚性越高越好
- 耦合度:模块间相互依赖和影响的程度 —— ⚠️ 耦合度越低越好
⚠️ 粒度权衡:模块过小 → 模块间交互频繁,整体复杂度上升;模块过大 → 内部结构复杂难维护。
优点:提高正确性、可理解性、可维护性;增强可适应性便于扩展;支持并行开发。 缺点:⚠️ 模块间接口很难满足实际需求;⚠️ 各模块齐头并进,无法建立在上一个已验证的正确决定之上,找不到可靠的决定顺序。
💡 记忆法:"高内聚、低耦合"。
b_39_1;PDF 第 39 页 · b_39_4宏内核为什么快?代价是什么?¶
宏内核(单内核/大内核)把主要功能模块集成在一个紧密耦合的整体中,全部运行于内核态。
快的原因:⚠️ 各模块共享地址空间,可直接调用彼此的函数 → 减少上下文切换和消息传递开销。
代价:服务日益复杂后代码规模急剧膨胀 → 维护困难、可靠性下降(典型的"软件危机")。
⚠️ 现状:主流系统(Linux、Windows、Android)用宏内核或混合内核;macOS 和 iOS 的 XNU 内核融合了 Mach 微内核与 BSD 宏内核;Fuchsia 和 HarmonyOS NEXT 采用微内核。
b_39_6;PDF 第 39 页 · b_39_7微内核里保留什么?移出去什么?¶
保留在内核(仅微内核运行在内核态): - 与硬件紧密相关的部分 - 基本的资源管理机制 - 客户与服务器间的通信支持
移到用户态服务器:文件系统、设备驱动、进程/线程服务器、虚拟存储器服务器等。
⚠️ 可靠性的关键:某一模块(如文件服务器)故障时只有该模块崩溃,可重启服务恢复;⚠️ 对比宏内核中文件系统崩溃将直接引发系统崩溃。
b_39_12"机制与策略分离"具体怎么分?¶
微内核遵循机制与策略分离:机制留在微内核(与硬件紧密相关),策略交由用户态服务器。 - 进程(线程)管理:微内核提供创建、切换、调度队列管理机制;进程分类、优先级分配策略在服务器 - 低级存储器管理:微内核只管与硬件相关的地址转换机制(页表管理、逻辑地址到物理地址映射);页面置换算法、内存分配策略在服务器 - 中断和陷入处理:微内核捕获中断/陷入并识别类型后分发给用户态服务器;⚠️ 捕获与分发机制属于微内核的核心功能
b_40_4微内核的四优一缺? ★1考¶
优点: - 扩展性和灵活性:新增或修改功能只需调整服务器,无须改动内核 - 可靠性和安全性:用户态服务故障不会导致系统崩溃,攻击面更小 - 可移植性:⚠️ 仅微内核包含硬件相关代码 - 分布式计算:消息传递通信易于扩展到网络环境
缺点:⚠️ 性能问题 —— 每次服务请求需多次穿越内核态与用户态,系统调用延迟增加。 缓解办法是混合内核(把高频服务移入内核),但这又会使微内核容量明显增大。
★ 考过 2023
b_40_8外核和传统内核的思路差别?¶
外核(exokernel):把物理资源直接暴露给用户级系统,自身仅负责资源的安全分配与隔离。 - 外核是运行于内核态的极小程序,把硬件资源(磁盘块、内存页、网络包缓冲区)划分为互不重叠的子集分配给不同用户级系统(如一个分到磁盘 0~1023 块,另一个分到 1024~2047 块) - 靠权限检查机制防止越权访问 - 在外核之上,用户空间构建库操作系统(library OS),自主实现文件系统、进程调度、虚拟内存管理
三个优点:减少抽象开销(不必强制引入虚拟内存、虚拟文件系统等映射层);提升灵活性与性能(如数据库可直接管理磁盘块);清晰分离保护与实现。
💡 一句话:外核只管"分家和守门",具体怎么用交给库操作系统。
b_40_13;PDF 第 40 页 · b_40_141.5 操作系统引导¶
操作系统引导的七个步骤? ★2考¶
以下是教材采用的传统 BIOS/MBR 引导模型: - ① CPU 激活与 BIOS 初始化:通电后 CPU 从 ROM 中读取并执行 BIOS,初始化基本硬件、建立中断向量表 - ② 硬件自检与启动设备选择:BIOS 执行通电自检 POST,然后按 CMOS 设置(主板上电池供电的配置存储器,保存启动顺序、系统时间)确定启动设备 - ③ 加载主引导记录 MBR:把启动设备的首扇区读入内存;⚠️ MBR 含两部分:引导代码 + 硬盘分区表 - ④ 定位活动分区并加载 PBR:MBR 引导代码解析分区表找到"活动"分区,把其首扇区(分区引导记录 PBR)装入内存 - ⑤ 加载启动管理器:PBR 中的代码加载活动分区内的启动管理器(Linux 的 GRUB、Windows 的 Bootmgr) - ⑥ 加载操作系统内核:把内核映象装入内存并跳转执行;⚠️ 内核完全接管后重建中断处理机制,不再依赖 BIOS - ⑦ 内核初始化与用户环境启动:内存管理建内核页表、进程调度初始化 PCB 链表/就绪队列/阻塞队列、设备驱动建设备控制块、设备分配表、I/O 缓冲区;最后启动第一个用户态进程(如 Linux 的 init)
★ 考过 2013、2021、2022
💡 记忆链:BIOS → POST → MBR → PBR → 启动管理器 → 内核 → init。 ⚠️ 校订/边界:这条链用于回答教材模型题,不应推广为所有现代计算机唯一启动方式;UEFI/GPT 的启动流程不同。
b_41_5;PDF 第 41 页 · b_41_61.6 虚拟机¶
两类虚拟机管理程序的区别? ★1考¶
- 第一类(裸金属架构):⚠️ 直接运行在物理硬件之上,是系统中唯一处于最高特权级的软件;类似一个轻量级操作系统,管理硬件并调度多个虚拟机
- 第二类(寄居架构):⚠️ 以应用程序形式运行在宿主操作系统之上,本质上是一个用户态进程,依赖宿主系统分配资源;代表是 VMware Workstation(x86 平台首个广泛使用的第二类)
⚠️ 第二类的虚拟磁盘实际上只是宿主操作系统中的一个普通文件。
★ 考过 2025
b_42_2客户操作系统执行敏感指令时会发生什么?¶
在第一类架构中,客户操作系统运行于"虚拟内核态" —— ⚠️ 它认为自己处于真实的内核态,但实际上并非如此;其用户进程运行在真实的用户态。
客户操作系统执行只允许在真实内核态执行的敏感指令时,会触发异常并陷入虚拟机管理程序: - 支持硬件虚拟化的 CPU:管理程序能判断该指令源自客户操作系统还是用户程序 —— 前者代为完成其功能,后者模拟真实硬件的异常响应行为 - 早期不支持硬件虚拟化的 CPU:所有敏感指令均被透明重定向到虚拟机管理程序,由其通过软件模拟实现
b_42_8【疑难点】第1章¶
访管指令是不是特权指令?¶
⚠️ 不是。 访管指令(Trap 指令)是一条可在用户态执行的特殊指令。
用户程序需要请求操作系统服务时主动执行它,从而引发一个自愿中断 —— 访管中断,使系统从用户态切换到内核态。系统调用正是通过访管指令实现的。
为什么需要它:I/O 操作、进程创建、内存分配等涉及特权资源,无法在用户态直接完成 —— 访管指令的核心作用是为用户提供一种受控且主动的内核态入口机制。
b_48_2定义微内核结构 OS 的四个方面?¶
- 足够小的内核:仅含最基础的核心功能(进程间通信、基本调度)
- 基于客户/服务器模式:内核作为服务器提供基础服务,应用程序作为客户端请求服务
- 机制与策略分离:⚠️ 传统 OS 把机制置于底层、策略置于高层;微内核 OS 把机制留在内核、策略移到用户态服务进程
- 采用面向对象技术:用抽象、封装、继承控制系统复杂性
💡 记忆法:"小内核、C/S、机制策略分家、面向对象"。
b_48_5【易混点】第1章成对概念对照¶
| 概念 A | 概念 B | 一句话切分 |
|---|---|---|
| 并发 | 并行 | 同一时间间隔内 vs 同一时刻真正同时 |
| 互斥共享 | 同时访问 | 任一时刻只一个(临界资源) vs 可分时交替 |
| 时分复用 | 空分复用 | 分时共享 CPU vs 虚拟存储器 |
| 联机 I/O | 脱机 I/O | 主机直接管 I/O vs 外围机代劳 |
| 单道批处理 | 多道批处理 | 内存只一道 vs 多道、宏观并行微观串行 |
| 多道批处理 | 分时系统 | 求吞吐量、无交互 vs 求交互、及时响应 |
| 硬实时 | 软实时 | 错过就是灾难 vs 偶尔错过可容忍 |
| 网络 OS | 分布式 OS | 要显式指定远程位置 vs 单一系统映像、透明 |
| 内核态 | 用户态 | 模式位 0、可执行特权指令 vs 模式位 1 |
| 中断(外中断) | 异常(内中断) | 指令外部、可屏蔽(除 NMI) vs 指令内部、不可屏蔽 |
| 故障/自陷 | 终止/外中断 | 软件中断(程序性异常) vs 硬件中断 |
| 故障 / 自陷 / 终止 | 外中断返回 | 当前条重做 / 下一条 / 不返回 vs 通常返回下一条 |
| 系统调用 | 库函数 | 真正的 OS 接口 vs 只是封装(有的根本不进内核) |
| 访管指令 | 特权指令 | 用户态可执行、主动进内核 vs 只能内核态执行 |
| 宏内核 | 微内核 | 全在内核态、快但脆 vs 只留机制、稳但慢 |
| 微内核 | 外核 | 抽象后由服务器提供 vs 不抽象,直接暴露物理资源 |
| 第一类虚拟机 | 第二类虚拟机 | 裸金属、最高特权级 vs 寄居、宿主上的用户态进程 |
【必背数字】第1章¶
| 数字 | 含义 |
|---|---|
| 四层 | 硬件 → 操作系统 → 应用程序 → 用户 |
| 四大功能 | 处理机、存储器、文件、设备管理 |
| 四个特征 | 并发、共享、虚拟、异步(并发与共享最基本) |
| 模式位 0 / 1 | 内核态 / 用户态 |
| 三类内核支撑功能 | 时钟管理、中断机制、原语 |
| 五类系统调用 | 设备、文件、进程控制、进程通信、内存管理 |
| 四阶段 | 系统调用处理:传参 → 陷入 → 查表执行 → 返回 |
| 四种进内核态情形 | 系统调用、外中断、异常、试图执行特权指令 |
| 异常三类 / 外中断两类 | 故障、自陷、终止 / 可屏蔽(INTR)、不可屏蔽(NMI) |
| i / i+1 / 不返回 | 故障重做当前条 / 自陷与外中断通常接下一条 / 终止异常不返回 |
| 层 0 / 层 N | 分层法最底层是硬件 / 顶层是用户接口 |
| 七步引导 | BIOS→POST→MBR→PBR→启动管理器→内核→init |