进程管理
进程管理要解决的是“多个程序抢一台 CPU 怎么抢、抢的时候怎么不打架”这三个问题,本章就按这三条线索展开。
第一条线索是并发单元本身。进程是资源分配的基本单位,线程是调度执行的基本单位,PCB 记录着进程的全部状态信息;弄清两者的区别、多线程模型如何选择,以及进程的五种状态怎样转换,才谈得上后面的调度。
第二条线索是 CPU 怎么分。调度准则决定什么样的分配才算好,调度方式决定什么时候做决策,典型算法给出具体做法;实时调度与多处理器调度把问题推向更苛刻的场景,评价指标则让“好”变得可度量。
第三条线索是共享资源的秩序。软件方法和硬件方法是早期尝试,信号量与管程把互斥和同步规范化,经典同步问题暴露出设计上的细微差别;死锁是秩序失效的极端形态,预防、避免、检测和恢复给出四类不同的应对思路。
读完本章,你应能解释进程与线程的区别,说出常见调度算法之间的取舍,并判断一段并发代码在互斥、同步和死锁三个维度上是否成立。
