第十章 多处理机操作系统
2 分钟阅读770 字13 个小节
第十章 多处理机操作系统
10.1 多处理机系统类型
| 类型 | 耦合度 | 通信延迟 | 特点 |
|---|---|---|---|
| 紧密耦合 | 共享存储器 | 10~50ns | SMP/ASMP |
| 松散耦合 | 各自OS,通过通信链路连接 | 10~50ms | 分布式 |
UMA结构(4种)
| 结构 | CPU数 | 特点 |
|---|---|---|
| 单总线 | 4~20 | 可加高速缓存 |
| 多总线 | 16~32 | 私有存储器 |
| 单级交叉开关 | 8~16 | N²交叉点 |
| 多级交换网络 | <100 | 分散流量 |
NUMA
- 多节点,3层存储:本地→群内共享→全局共享
- CC-NUMA:高速缓存+目录表保证一致性
- 主要问题:远程访问时延
10.2 多处理机OS类型
| 类型 | 特点 | 优缺点 |
|---|---|---|
| 主从式 | 一个主处理机负责管理 | 简单但资源利用率低/主机瓶颈 |
| 独立监督式 | 每个处理机有自己的OS | 自主可靠但复杂/负载不均 |
| 浮动监督式 | 管理功能可在处理机间浮动 | 最灵活/最可靠/负载均衡,实现复杂 |
10.3 多处理机调度(2025新增重点⭐)
多处理机调度策略(2025新增)⭐
| 策略 | 描述 | 优点 | 缺点 |
|---|---|---|---|
| 全局队列调度 | OS维护一个公共就绪队列 | 负载均衡最好 | 随着CPU增多,临界区锁竞争加剧 |
| 私有队列调度 | 每个CPU维护私有就绪队列 | 亲和性(Affinity) 好,Cache命中率高 | 可能导致负载不均,需迁移机制 |
调度对应关系
- 单处理机调度:解决“何时执行”
- 多处理机调度:解决“何时执行” + “在哪执行”
调度策略算法
- 负载分配(Load Sharing):通过推/拉机制在私有队列间平衡负载。
- 群组调度(Gang Scheduling):将一个进程的所有相关线程同时调度到一组CPU上并行运行。
- 目的:减少同步阻塞(避免“互相等的线程没在运行”)。
- 专用处理器分配:某个应用长期独占一组CPU(适用于科学计算)。
10.4 多处理机上的进程同步
自旋锁⭐
- 适用于多处理机的互斥机制
- 循环测试锁变量(忙等),不阻塞不切换
- vs 信号量:自旋锁避免了阻塞和进程切换开销,适用于短临界区
- 实现:总线设锁变量,循环Test-and-Set
🎯 本章真题锚点与最短模板
- 高频题号(2009-2025):近年独立命题少;与新增考纲“多处理机调度”强相关(2025起新增)
- 优质例题:对比SMP中“公共就绪队列”与“私有就绪队列”的优缺点,判断何时需要负载均衡迁移。
- 最短解题模板:
- 先判系统模型:ASMP 还是 SMP。
- 再判调度策略:亲和性优先还是吞吐优先。
- 结论用三词:可扩展性、均衡性、迁移开销。
⚡ 秒杀版口令卡(10秒回忆)
- 口令:SMP看均衡,ASMP看主控。
- 口令:自旋锁短临界区,信号量长临界区。
- 口令:亲和性提局部性,迁移有代价。