为什么需要这一套机制?
在完整笔记中阅读本节概念 定义要点 易考点 临界资源 一次只允许一个进程使用的资源(打印机、共享变量、缓冲区) 局部变量不是临界资源(2016 年 30 题) 临界区 访问临界资源的那段代码(不是资源本身) 进入区/临界区/退出区/剩余区四段结构 互斥四原则 空闲让进、忙则等待、有限等待、让权等待 “让权等待”是判别忙等方案的关键词(2016 年 27、2018 年 32、2020 年 32 题) 信号量 S 一个整数值 + 一个阻塞队列,只能经 P/V …
在完整笔记中阅读本节软件算法的演进(每一步都在修补上一步违反的原则)
在完整笔记中阅读本节方案 能否互斥 让权等待 优点 缺点 适用 软件算法(Peterson 等) 能 否(忙等) 纯软件、无硬件要求 复杂、忙等、仅限两进程为主 教学/理解演进 关中断 能 否 实现最简单 特权操作、单处理机、屏蔽时钟 OS 内核短临界区 TSL / Swap 能 否(自旋) 简单、多处理机可用 忙等、可能饥饿 自旋锁、短临界区 记录型信号量 能 能 通用、可计数、可同步 P/V 分散易错、用错顺序会死锁 各类同步互斥问题 管程 能 能 编…
在完整笔记中阅读本节形态一:PV 设计大题(78 分,几乎每年一道)
在完整笔记中阅读本节向前依赖:OS-1 进程/线程(并发主体、阻塞/就绪状态转换是信号量让权等待的基础);OS-0 中断(关中断方案、P/V 原子性依赖内核态);OS-2 调度(阻塞唤醒要进就绪队列)。 向后引出: P/V 顺序错误或互相持有等待 → 死锁(OS-4:哲学家问题的防死锁方案直接对应破坏死锁必要条件); 信号量等待外设、缓冲区 → I/O 缓冲管理(OS-8); 页表、文件系统等内核数据结构同样要互斥访问 → 内核同步(理解级); 跨学科:T…
在完整笔记中阅读本节为什么并发执行会出错?(指令交错 + 共享资源 → 竞争条件) 什么是临界资源和临界区?共享变量和局部变量哪个要保护? 实现互斥要满足哪四条原则?“让权等待”卡掉了哪些方案? 最早的纯软件方案怎么演进的?单标志 → 双标志 → Peterson 各自修好了什么、还留了什么病? 软件方案为什么都忙等?硬件怎么帮忙?(TSL/Swap 原子指令) TSL 既然原子,为什么还不满足四原则?(自旋 = 忙等) 信号量怎么做到让权等待?(记录型:…
在完整笔记中阅读本节