35岁女程序员备考系统架构师(第三篇)
本文涵盖操作系统核心考点,包括进程管理、死锁处理、存储管理等必考知识点
前言
操作系统是架构师考试的重灾区,也是非科班程序员的噩梦。本文将操作系统的核心知识点系统梳理,配合直观的图表,帮助快速掌握考试重点。
一、操作系统概述
1.1 什么是操作系统?
操作系统是管理计算机硬件和软件资源的系统软件,是计算机系统的核心组成部分。
操作系统5大功能:
- 处理器管理(进程管理)
- 存储器管理
- 设备管理(I/O管理)
- 文件管理
- 用户接口
1.2 操作系统特性
二、进程管理
2.1 进程 vs 线程
进程: 独立的资源单位,有自己独立的内存空间,开销大
线程: 轻量级进程,共享进程的内存空间,开销小
为什么引入线程?
python
# 线程的优势
进程优势 = {
"资源管理": "进程管资源",
"调度效率": "线程管调度",
"并发性能": "提高并发执行效率",
"系统开销": "减少系统开销"
}
2.2 进程三态(必考)
三态转换关系:
记忆口诀:
运行不能直接跳到阻塞!必须经过就绪态
2.3 进程同步与互斥
PV操作(生产者消费者问题):
c
// 生产者进程
P(mutex); // 进入互斥区
P(empty); // 等待空位
生产产品;
V(full); // 增加满产品数
V(mutex); // 离开互斥区
// 消费者进程
P(mutex); // 进入互斥区
P(full); // 等待产品
消费产品;
V(empty); // 增加空位数
V(mutex); // 离开互斥区
记忆口诀:
生产者先看空位,消费者先看产品
三、死锁(核心考点)
3.1 死锁产生的四个条件(必考)
死锁四个必要条件:
记忆口诀:
互占不环(互斥、占有、不可剥夺、循环等待)
3.2 死锁处理方式
1. 死锁预防
- 破坏四个条件中的一个或多个
- 破坏"不可剥夺"条件最有效
- 破坏"循环等待"条件:资源有序分配
2. 死锁避免
- 银行家算法
- 系统处于安全状态才分配资源
- 动态检测资源分配是否安全
3. 死锁检测
- 定期检测系统是否处于死锁状态
- 资源分配图、死锁检测算法
- 发现死锁后解除
4. 死锁解除
- 强制收回资源
- 终止部分进程
- 进程回滚
四、存储管理
4.1 存储层次结构
存储层次:
plaintext
寄存器 → Cache → 主存(RAM) → 辅存(磁盘)
速度最快 速度最慢
容量最小 容量最大
成本最高 成本最低
存储层次性能对比:
4.2 虚拟内存(必考)
虚拟内存技术:
python
# 虚拟内存原理
虚拟内存系统 = {
"分页": "将程序分成固定大小的页",
"映射": "页映射到物理内存",
"置换": "未使用的页面暂存在磁盘",
"优点": [
"扩大可用内存空间",
"提高内存利用率",
"实现多道程序设计"
]
}
虚拟内存优点:
- 扩大可用内存空间
- 提高内存利用率
- 实现多道程序设计
4.3 页面置换算法
常见页面置换算法:
记忆技巧:
FIFO先到先换,LRU最近不常用的换,OPT未来最不常用的换
4.4 分页 vs 分段 vs 段页式
五、I/O管理
5.1 I/O控制方式
I/O控制方式演进:
演进趋势:
plaintext
程序控制 → 中断方式 → DMA → 通道方式 → I/O处理机
(CPU参与度递减,效率递增)
5.2 中断处理流程
中断处理过程:
plaintext
1. 中断请求
↓
2. 中断响应
↓
3. 中断处理
↓
4. 中断返回
中断处理详细步骤:
- 中断请求:外设向CPU发送中断信号
- 中断响应:CPU响应中断,保存现场
- 中断处理:执行中断服务程序
- 中断返回:恢复现场,继续执行原程序
记忆口诀:
请求→响应→处理→返回
六、文件管理
6.1 文件系统层次
文件系统层次结构:
plaintext
用户接口
↓
文件系统
↓
I/O系统
↓
设备驱动
↓
硬件
文件系统功能:
- 文件创建、删除、读写
- 目录管理
- 文件共享与保护
- 存储空间管理
6.2 文件共享与保护
文件共享方式:
- 硬链接:多个文件名指向同一个inode
- 软链接(符号链接) :类似快捷方式,指向文件路径
文件保护方法:
- 存取控制矩阵
- 存取控制表
- 权限位(rwx)
七、进程调度算法
7.1 常见调度算法
7.2 调度算法选择
批处理系统**:** FCFS、SJF
交互式系统: 优先级调度、时间片轮转
实时系统: 优先级调度、EDF(最早截止时间优先)
八、高频考点速记
8.1 进程三态转换(必考)
plaintext
就绪 → 运行 → 就绪(时间片用完)
运行 → 阻塞 → 就绪(资源就绪)
记忆要点:
- 运行不能直接到阻塞
- 阻塞不能直接到运行
- 都必须经过就绪态
8.2 死锁四条件(必考)
plaintext
互斥条件 + 请求与保持 + 不可剥夺 + 循环等待
记忆口诀:
互占不环
8.3 页面置换算法
- FIFO:先进先出
- LRU:最近最少使用
- OPT:最佳置换(理论最优)
8.4 I/O控制方式
plaintext
程序控制 → 中断方式 → DMA → 通道方式 → I/O处理机
(效率递增)
九、历年真题解析
真题1(2019年)
以下关于进程状态的描述中,正确的是( )
- A. 运行状态的进程可以直接转换到阻塞状态
- B. 阻塞状态的进程可以直接转换到运行状态
- C. 就绪状态的进程可以直接转换到阻塞状态
- D. 阻塞状态的进程可以直接转换到就绪状态
答案:D
解析:
- A错误:运行不能直接到阻塞,必须经过就绪
- B错误:阻塞不能直接到运行,必须经过就绪
- C错误:就绪不能直接到阻塞
- D正确:阻塞→就绪(资源就绪)
真题2(2020年)
死锁产生的必要条件不包括( )
- A. 互斥条件
- B. 请求与保持条件
- C. 可剥夺条件
- D. 循环等待条件
答案:C
解析:
死锁产生的四个必要条件是:互斥、请求与保持、不可剥夺、循环等待。可剥夺条件不是死锁的必要条件,反而破坏不可剥夺条件可以预防死锁。
真题3(2021年)
在页面置换算法中,( )算法可能产生Belady异常
- A. FIFO
- B. LRU
- C. OPT
- D. Clock
答案:A
解析:
FIFO算法可能产生Belady异常,即增加内存页面数反而增加缺页次数的现象。LRU、OPT、Clock算法都不会产生Belady异常。
十、备考策略
10.1 高频考点总结
plaintext
操作系统高频考点
├── 进程三态转换(就绪→运行→阻塞→就绪)
├── 死锁四条件(互占不环)
├── 页面置换算法(FIFO/LRU/OPT)
├── 虚拟内存(分页、置换)
├── I/O控制方式(程序控制→I/O处理机)
└── 进程调度算法(FCFS/SJF/优先级/时间片轮转)
10.2 记忆口诀
进程三态:
plaintext
就绪运行时间片
运行阻塞等资源
阻塞就绪资源到
死锁四条件:
plaintext
互占不环
互斥条件 + 占有等待 + 不可剥夺 + 循环等待
页面置换:
plaintext
FIFO先到先换
LRU最近不常用
OPT未来最不常用
10.3 60天冲刺计划
十一、技术要点总结
11.1 操作系统核心本质
plaintext
进程管理 = 资源调度 + 同步互斥
存储管理 = 虚拟内存 + 页面置换
I/O管理 = 设备驱动 + 中断处理
文件管理 = 目录管理 + 存取控制
11.2 关键技术对比
十二、写在最后
操作系统是架构师考试中的重难点,但对于35岁的非科班程序员来说,只要理解核心原理,掌握高频考点,完全可以应对考试。
备考核心:理解三态转换、记住死锁四条件、掌握页面置换算法
参考资料
- 《操作系统概念》
- 《现代操作系统》
- 《系统架构师考试教程》
#系统架构师 #软考 #操作系统 #进程管理 #死锁 #技术进阶