OSTEP Chapter 10 回顾
这里回顾第10章,本章介绍了多处理器调度(高级)。
书籍介绍:
学习资料:
- https://pages.cs.wisc.edu/~remzi/OSTEP/
- https://github.com/remzi-arpacidusseau/ostep-translations/tree/master/chinese
- https://github.com/joshuap233/Operating-Systems-Three-Easy-Pieces-NOTES
第10 章 多处理器调度(高级)
内容回顾
关键概念
- 缓存
- 很小但很快的存储设备,通常拥有内存中最热的数据的备份。
- 基于局部性的概念,分为时间局部性和空间局部性。
- 内存
- 很大且拥有所有的数据,但访问速度较慢。
- 对共享数据访问需要考虑同步问题
- 解决方法是使用锁
- 缓存亲和度(cache affinity)
- 由于缓存的原因,应该尽可能将相同的进程保持在同一个CPU上
- 单队列多处理器调度(Single Queue Multiprocessor Scheduling,SQMS)
- 将所有需要调度的工作放入一个单独的队列中
- 缺点
- 缺乏可扩展性
- 缓存亲和性上存在问题
- 多队列多处理器调度(Multi-Queue Multiprocessor Scheduling,MQMS)
- 包含多个调度队列,每个队列可以使用不同的调度规则,每个CPU调度直接相互独立
- 缺点
- 可能会出现负载不均,即某个CPU对应的调度队里中工作全完成后,该CPU就没有工作
- 解决方式是使用工作的跨CPU迁移(migration)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemonzzz!
评论
ValineLivere