系统架构师备考第3篇:操作系统备考:从进程管理到死锁,那些年我们踩过的坑

3 阅读1分钟

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. 中断返回

中断处理详细步骤:

  1. 中断请求:外设向CPU发送中断信号
  2. 中断响应:CPU响应中断,保存现场
  3. 中断处理:执行中断服务程序
  4. 中断返回:恢复现场,继续执行原程序

记忆口诀:

请求→响应→处理→返回

六、文件管理

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岁的非科班程序员来说,只要理解核心原理,掌握高频考点,完全可以应对考试。

备考核心:理解三态转换、记住死锁四条件、掌握页面置换算法

参考资料

  • 《操作系统概念》
  • 《现代操作系统》
  • 《系统架构师考试教程》

#系统架构师 #软考 #操作系统 #进程管理 #死锁 #技术进阶