目录

  1. 操作系统概述
  2. 进程管理
  3. 存储管理
  4. 文件管理
  5. I/O 设备管理
  6. 操作系统内核架构
  7. 高频易混考点对比速记

一、操作系统概述

1. 操作系统四大核心特征

(1)并发(最核心特征)

同一时间段多个程序交替推进;宏观同时运行,微观分时占用 CPU。

并发:单核 CPU,时间段内交替执行

并行:多核 CPU,同一时刻多个程序同时运行

区分口诀:并发分时段,并行同一刻

(2)共享

并发进程共用软硬件资源,衍生概念临界资源

临界资源:同一时间仅允许 1 个进程访问(打印机、共享变量、摄像头),访问临界资源必须互斥。

(3)虚拟

对物理资源做逻辑抽象、资源扩容,屏蔽硬件限制。

典型案例:虚拟内存、虚拟 CPU、虚拟机。

(4)异步

进程以独立、不可预知的速度推进;异步会导致执行顺序混乱,需要同步 / 互斥机制约束次序。

四者逻辑关系

并发是基础前提 → 产生资源共享;并发必然引发异步问题,依靠同步互斥解决。

2. 操作系统发展阶段(选择高频考点)

手工操作阶段:无操作系统,人机串行,效率极低

批处理阶段

单道批处理:内存仅存放一道程序,CPU 大量空闲

多道批处理:操作系统正式诞生;支持并发,无交互能力

分时操作系统:时间片轮转调度,多用户联机使用,人机交互强(Windows、Linux)

实时操作系统:优先保障及时性、高可靠性;应用于导弹、自动驾驶、工业嵌入式

衍生系统:网络操作系统、分布式操作系统、个人桌面操作系统

二、进程管理(大题核心模块)

1. 进程五大状态(必考)

PCB(进程控制块):进程唯一标识,存储进程全部管理信息。

状态

核心特点

状态转换规则

创建态

OS 分配资源、初始化 PCB

新建进程请求触发

就绪态

具备运行条件,仅缺少 CPU

调度分配 CPU→运行;时间片耗尽 / 被抢占→退回就绪

运行态

当前正在 CPU 执行指令

时间片到 / 等待 IO 事件→阻塞;进程执行完毕→终止

阻塞态(等待态)

等待 IO、信号等外部事件,有 CPU 也无法运行

等待事件完成→转为就绪

终止态

进程结束,OS 回收资源、销毁 PCB

调用 exit 退出、程序异常终止

易错区分

阻塞态不能直接进入运行态,必须先转入就绪队列;

就绪:缺 CPU;阻塞:缺外部事件。

2. 进程同步与互斥

(1)两类制约关系

互斥(间接制约)

多个进程争抢临界资源,同一时刻仅一个进程访问。

示例:多个进程共用一台打印机。

同步(直接制约)

进程存在固定先后执行顺序,存在数据依赖。

示例:管道通信,必须先写入数据,后读取数据。

产生根源:进程异步推进,执行顺序不可控。

(2)临界区访问四大原则(必背)

空闲让进:无进程占用临界资源,请求进程直接进入

忙则等待:已有进程占用,其余进程阻塞等待

有限等待:进程不会无限阻塞,避免饥饿问题

让权等待:无法进入临界区时主动释放 CPU,禁止忙等

3. 信号量与 P/V 操作(计算题核心)

基础定义

信号量 S:整型变量,代表系统剩余可用资源数量

S > 0:剩余可用资源总数

S = 0:资源全部占用,无等待进程

S < 0:数值绝对值 = 当前阻塞等待该资源的进程数量

P、V 操作均为原语,执行过程不可中断。

P (S)(wait,申请资源):S = S - 1

资源充足直接进入临界区;资源不足,进程阻塞进入等待队列。

V (S)(signal,释放资源):S = S + 1

释放资源,若队列存在等待进程,自动唤醒队首进程。

三大使用场景

实现互斥:信号量初值设为 1(二元互斥信号量)

实现同步:控制进程固定先后执行顺序

描述多进程前驱执行关系

4. 死锁

(1)死锁 4 个必要条件(必须同时满足才会产生死锁)

记忆口诀:互斥、不剥夺、请求保持、循环等待

互斥条件:临界资源同一时间仅能被一个进程占用

不剥夺条件:资源仅能由进程主动释放,系统无法强行抢占

请求并保持条件:进程已持有部分资源,申请新资源阻塞时,不释放已有资源

循环等待条件:存在进程 - 资源环形等待链,每个进程持有的资源被下一个进程申请

(2)三大死锁处理策略

死锁预防

思路:主动破坏 4 个必要条件中任意一条,从根源杜绝死锁。

破坏互斥:将临界资源改造为可共享(多数硬件无法实现)

破坏不剥夺:申请资源失败时主动释放全部资源,或系统强制抢占

破坏请求保持:进程一次性申请全部所需资源,要么全分配,要么全不分配

破坏循环等待:统一所有资源申请顺序,强制进程按固定顺序申请

优点:绝对无死锁;缺点:资源利用率低,执行效率差

死锁避免

思路:不破坏必要条件,动态判断资源分配,拒绝进入不安全状态。

经典算法:银行家算法

安全状态:存在完整执行序列,所有进程均可顺利完成;不安全状态存在死锁风险。

优点:资源利用率高于预防;缺点:需要提前预知进程最大资源需求,实现复杂

死锁检测与解除

思路:允许死锁发生,系统定时检测,发现死锁后处理。

检测方式:构建进程资源图,查找环路。

解除手段:①撤销部分死锁进程;②抢占资源分配给其他进程;③进程回滚

优点:资源利用率最高,真实操作系统主流方案;缺点:死锁发生后存在任务丢失、系统开销

三、存储管理

1. 分段存储管理(非连续分配)

逻辑地址格式

段号 S | 段内地址 W

段由程序员划分:代码段、数据段、堆栈段,各段长度不相等。

段表作用

存储内容:段号、段长、段基址(段起始物理地址)

地址变换流程:

拆分逻辑地址,分离段号 S、段内位移 W

使用段号查询段表

越界判断:S≥段表长度 或 W≥当前段长 → 越界中断

物理地址 = 段基址 + 段内地址 W

分段优缺点

优点:便于程序模块化、支持段共享、段保护,符合程序员思维

缺点:动态分配产生大量外部碎片,内存利用率低

  1. 分页 VS 分段 核心对比

对比项

分页存储

分段存储

划分主体

操作系统自动划分

用户 / 程序员划分

长度

页面大小固定

各段长度不相等

地址结构

页号 + 页内地址

段号 + 段内地址

碎片类型

仅存在内部碎片

仅存在外部碎片

设计目的

提升内存利用率

满足模块化、共享需求

3. 段页式存储管理(结合分页 + 分段优势)

逻辑地址三层结构

段号 S | 段内页号 P | 页内地址 W

两级查表流程

段表:根据段号找到本段页表起始地址

页表:根据段内页号找到物理块号

物理地址 = 物理块号拼接页内地址

优点:支持分段共享,碎片极少;缺点:单次内存访问需要三次访存,系统开销大

4. 请求分页・四大页面置换算法(计算题高频)

基础概念:内存物理块有限,访问页面不在内存触发缺页中断;内存已满时需要淘汰页面。

OPT 最佳置换算法

淘汰未来最长时间不访问的页面;缺页率最低,理论最优;无法实现,仅作参考标准。

FIFO 先进先出置换算法

淘汰最早装入内存的页面;独有 Belady 异常(内存块增多,缺页次数反而上升)。

LRU 最近最久未使用算法(考试最高频)

淘汰当前时间点之前,最久没有访问的页面;性能接近 OPT,商用系统广泛使用。

CLOCK 时钟置换算法(近似 LRU)

页面附加访问位,环形链表循环扫描;访问位 0 直接淘汰,访问位 1 则清零继续查找;硬件开销小,工程常用。

页面置换通用做题步骤

遍历页面访问序列

页面已在内存:不缺页;LRU 需更新访问时序

页面不在内存(缺页)

内存存在空闲块:直接装入页面

内存已满:按算法规则淘汰一页,装入新页面

统计缺页次数,计算缺页率 = 缺页次数 ÷ 总访问次数

存储碎片速记

连续分配(单一 / 固定 / 动态分区)→ 外部碎片

分页存储 → 内部碎片

分段存储 → 外部碎片

段页式:几乎无碎片

四、文件管理

1. 基础概念

文件:一组有意义信息的集合

文件属性:文件名、大小、存储位置、权限、创建时间等

文件逻辑结构(用户视角)

流式文件(无结构):文本文件

记录式文件(有结构):数据库文件

文件物理结构(磁盘存储视角)

连续分配:磁盘块连续存放;随机访问快,易产生外部碎片

链接分配:离散存储,块内存储下一块指针;无碎片,仅适合顺序访问

索引分配:独立索引块存储数据块地址;支持随机访问,占用额外索引空间(最常考)

2. 文件目录 & FCB

FCB(文件控制块):存储单个文件全部管理信息,FCB 存在则文件存在。

文件目录:大量 FCB 集合,核心目标:实现按名存取。

一级目录:系统一张目录表,文件不能重名,查找速度慢

二级目录:主目录 + 用户目录,不同用户文件可同名

多级树形目录(Windows/Linux 通用)

绝对路径:从根目录出发完整路径,全局唯一

相对路径:从当前工作目录出发访问文件

3. 磁盘空闲空间 4 种管理方式

空闲区表:记录连续空闲磁盘区域;适配连续分配,碎片多时表格庞大

位示图法:二进制位图,1 代表占用、0 代表空闲;占用空间固定,计算题高频

空闲块链:空闲块通过指针串联;分配需遍历链表,效率偏低

成组链接法(UNIX 专用):空闲块分组管理,每组首块记录下一组信息;兼顾空间与效率

五、I/O 设备管理

1. I/O 设备分类

按使用特性:人机交互设备、存储设备、网络通信设备

按传输速率:低速、中速、高速设备

按信息交换单位:块设备、字符设备

2.四大 I/O 控制方式(CPU 干预逐步减少)

控制方式

核心特点

传输单位

优缺点

程序直接控制(轮询)

CPU 持续轮询设备状态,全程占用 CPU

逻辑简单;CPU 利用率极低

中断驱动方式

I/O 发起后 CPU 并行运算,传输完成发中断通知

释放部分 CPU;单次仅传 1 字,中断频繁

DMA 直接存储器访问

CPU 仅初始化,整块数据由 DMA 搬运,结束才中断

大幅减少 CPU 干预;单次仅处理连续块

通道控制方式

独立硬件执行通道程序,自主完成批量 I/O

一组块

CPU 干预最少;硬件成本高,多用于大型机

六、操作系统内核架构

1. 单体内核

核心逻辑:文件系统、驱动、图形模块全部运行在内核态、同一地址空间。

代表系统:Linux

优点:无频繁进程切换,通信开销小,运行效率高

缺点:内核庞大难裁剪;单一模块崩溃会导致整机宕机,安全性差

2. 微内核

核心逻辑:内核仅保留基础调度功能;驱动、文件系统、图形服务全部运行在用户态进程。

代表系统:Minix、QNX

优点:内核精简易移植;服务相互隔离,单个服务故障不宕机;适配分布式系统

缺点:用户态 / 内核态频繁切换,进程通信开销大,整体效率低于单体内核

七、全书高频坑点速记

并发≠并行;并发单核,并行多核

就绪缺 CPU,阻塞缺事件,阻塞不能直接到运行态

P 操作 S 减 1,V 操作 S 加 1;P 可能阻塞,V 可能唤醒

死锁 4 条件必须同时成立,破坏任意一条即可避免死锁

FIFO 独有 Belady 异常;OPT 无法实现;LRU 计算题最多

分页:内部碎片;分段:外部碎片

页面置换仅属于请求分页,基础分页无置换操作

文件逻辑结构 = 用户视角;物理结构 = 磁盘存储视角

DMA 传输单位是块,中断 / 轮询传输单位是字

Logo

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

更多推荐