文 | YoungChen
封面图片 | Tandem
什么是 OSTEP
OSTEP 全称叫《Operating System:Three Easy Pieces》,从 virtualization, concurrency, 和 persistence 三个角度谈论操作系统的设计和实现,是威斯康辛的研究生教材,即使本科不修 CS 的人也可以阅读,写得非常通俗易懂,是值得推荐的操作系统入门读物,难度较 CSAPP 低一点,可以先读这本再去看 CSAPP。书籍的章节 PDF 是开源的,地址在:
http://pages.cs.wisc.edu/~remzi/OSTEP/
接下来可能会更新一段时间这本书的读书笔记,感兴趣的可以看看,不感兴趣的推荐直接去看书。
写在前面
进程(process)是一个运行的程序(running program),你的电脑上可能一次性跑着很多个进程,有音乐播放器、网页浏览器、IDEA 等等,单核 CPU 理论上一个时间点只能运行一个程序,计算机通过虚拟化 CPU 的技术让成千上万个进程好像同时在运行。
完成这件壮举需要底层机制的支持,例如上下文切换(context switch),它让操作系统可以暂停某个正在运行的程序,将 CPU 让出来给另一个程序运行,这种功能有个正式名称叫时间分片,现代操作系统几乎都具备。但有底层机制还不够,还需要顶层操作系统具备一定的“智慧”,例如先调度哪个进程,这由操作系统的调度策略决定。
本文主要