深入理解计算机系统——第12章:用信号量同步线程
用信号量同步线程:
同步错误:
一般而言你没有办法预测操作系统是否将你的线程选择一个正确的顺序执行。
12.5.1 进度图
(1)进度图:将n个并发线程的执行模型化为一条n维笛卡尔空间中的轨迹线。
(2)每条轴k对应着线程k的进度。
(3)每个点Ik代表着k线程已完成指令Ik这一个状态,原点处代表初始状态。
(4)进度图是指令执行模型化为从一个状态到另一个状态的转换,两条指令不能在同一时刻完成,对角线不允许的。
12.5.2 信号量
(1)一种特殊的类型变量
(2)信号量s是具有非负整数值的全局变量。
(3)只能用两种特殊的操作来处理。
P(s):
V(s):
PV操作需要注意:
PV操作函数: