操作系统第 2 章:进程与线程总览

这一页只负责导航,不装内容。每个节号点进去就是那一节的完整讲义。

第 2 章的主线是一条因果链:并发带来了管理难题(2.1 进程与线程)→ 谁先用 CPU(2.2 CPU 调度)→ 共享资源怎么不打架(2.3 同步与互斥)→ 打架打死了怎么办(2.4 死锁)。

章节导航

2.1 进程与线程 ✅

节页面一句话
2.1.1进程的概念和特征并发逼出了进程;PCB 是进程存在的唯一标志
2.1.2进程的组成映像看内存占用,上下文看切换代价
2.1.3进程的状态与转换划分状态的尺子只有一把:缺的是不是 CPU
2.1.4进程控制原语的本质是不可分割,用关中断实现
2.1.5进程的通信共享存储不管同步,管道自动管
2.1.6线程和多线程模型资源分配单位=进程,调度单位=线程

2.2 CPU 调度 ✅

节页面一句话
2.2.1调度的概念三层调度;低级调度是唯一必不可少的
2.2.2调度的实现三种不能调度的时机;内核临界区 ≠ 普通临界区
2.2.3调度的目标带权周转时间恒 ≥ 1,可用作自检
2.2.4进程切换调度 ≠ 切换;开销大头是 TLB 与 Cache 失效
2.2.5CPU 调度算法手算五步法;只有 FCFS/HRRN/RR 不会饥饿
2.2.6多处理机调度亲和性与负载均衡互相冲突(低频考点)

2.3 同步与互斥 ✅

节页面一句话
2.3.1同步与互斥的基本概念同步=按序,互斥=不能同时;四准则分量不同
2.3.2实现临界区互斥的基本方法四个软件算法是一条改错链,各违反一条准则
2.3.3互斥锁自旋锁 ⊂ 互斥锁;持锁期间禁止调度
2.3.4信号量value<0 时 |value| 即等待人数;不要抱着锁睡觉
2.3.5经典同步问题四个模式可迁移;读写公平靠闸门 w
2.3.6管程互斥由编译器保证;V 有记忆,signal 没有

2.4 死锁 ✅

节页面一句话
2.4.1死锁的概念四个必要条件;循环等待必要不充分
2.4.2死锁预防破坏四条之一;预防是立法,避免是现算
2.4.3死锁避免试探分配 + 找安全序列;安全 ⟹ 不死锁,反之不成立
2.4.4死锁检测和解除环是嫌疑,化简才是定罪;死锁定理属于检测

本章高频边界

按考频排的成对辨析,每条都链到详细拆解处:

边界判据在哪
并发 vs 并行时间段 vs 时刻2.1.1
就绪 vs 阻塞缺的是不是 CPU2.1.3
阻塞→运行、就绪→阻塞都不存在2.1.3
进程切换 vs 模式切换换不换进程;单向蕴含2.1.4
进程映像 vs 进程上下文内存占用 vs 切换代价2.1.2
低级 vs 高级通信能传多少数据2.1.5
共享存储 vs 管道谁负责同步2.1.5
ULT vs KLT内核知不知情2.1.6
高级 vs 低级调度跨不跨内存边界;建不建 PCB2.2.1
周转 vs 等待 vs 响应时间终点是完成 / 干等 / 首次响应2.2.3
内核临界区 vs 普通临界区前者禁止调度,后者可以2.2.2
调度 vs 切换决策 vs 执行;调度结果可能仍是原进程2.2.2
会不会饥饿只有 FCFS、HRRN、RR 不会2.2.5
多级队列 vs 多级反馈队列进程能否在队列间移动2.2.5
同步 vs 互斥必须按序 vs 不能同时2.3.1
双标志”先检查” vs “后检查”先检查会互斥失效,后检查会双方卡死2.3.2
互斥锁 vs 自旋锁等不到时让不让出 CPU2.3.3
同步 P vs 互斥 P 的顺序同步 P 必须在前,否则死锁2.3.4
signal vs VV 有记忆,signal 无记忆2.3.6
读者优先 / 公平 / 写者优先谁能插队,谁会饿死2.3.5
不可剥夺 vs 请求并保持别人抢不走 vs 自己不放手2.4.1
死锁 vs 饥饿 vs 死循环阻塞成环 / 轮不到 / 自身 bug 且在运行2.4.1
有环 vs 死锁多实例时有环未必死锁2.4.4
银行家算法 vs 图化简看 Need vs 看当前请求边;预言家 vs 验尸官2.4.3

复习顺序

  1. 2.1.1 → 2.1.2:先把”为什么需要进程”和”进程有哪些状态”接上。这两节是后面一切的地基。
  2. 2.1.3 → 2.1.4:状态是怎么被改变的(原语),以及进程在内存里长什么样。
  3. 2.1.5:通信。本章提问最多的一节,三种方式的同步归属是核心。
  4. 2.1.6:线程。记住那句”资源分配归进程、调度归线程”,ULT/KLT 的所有结论都是推论。
  5. 2.2.1 → 2.2.2:先分清三层调度,再拿到五个评价指标——没有指标就无从比较算法优劣。
  6. 2.2.3:工程实现。三种不能调度的时机几乎年年考,须逐条记住理由。
  7. 2.2.4:本章计算题主战场。先掌握手算五步法,再记各算法;流程比算法更值得先熟练。
  8. 2.3.1 → 2.3.2:先立四准则,再看四个软件算法分别违反哪一条——按准则记,不要背代码。
  9. 2.3.3 → 2.3.4:工具升级线。互斥锁只解决互斥且忙等;信号量兼顾同步、且满足让权等待。
  10. 2.3.5:管程。理解”互斥由编译器保证”这一句,其余是推论。
  11. 2.3.6:大题落点。四个问题记的是模式不是题目;读写公平要能讲出 w 为什么放在那两个位置。
  12. 2.4.1:先把四个必要条件立住,2.4 后三节全部由它派生。
  13. 2.4.2 → 2.4.3 → 2.4.4:按”事前立法 → 事中现算 → 事后收拾”这条时间线理解三种策略, 限制依次放松、资源利用率依次提高。银行家算法是唯一必须手算的。

链接

  • 📖 名词库:第 2 章名词库
  • 📜 原始提问档案:第 2 章 原始提问档案(本地资料)(82 条,按节号归位)
  • 🏗️ 重构施工文档:OS + 计组 笔记体系重构计划(本地资料)