第一章:信号量理论与进程控制的形式化建模
1.1 信号量的公理化定义
设系统中有 n 个并发进程 P={p1,p2,…,pn},信号量 S 定义为一个整型变量与等待队列 QS 的有序对:
S≜(V,QS)
其中 V∈Z(整数集),QS 为进程控制块(PCB)指针的先进先出队列。
P操作(Proberen,测试)的原子方程:
P(S):⎩⎨⎧V←V−1if V<0 thenBlock(pi,QS)ContextSwitch()
V操作(Verhogen,增加)的原子方程:
V(S):⎩⎨⎧V←V+1if V≤0 thenWakeup(pj∈QS)Enqueue(pj,ReadyQueue)
1.2 进程同步与互斥的约束方程
设临界区资源 R 被 m 个进程共享,互斥信号量 M 初始值为 1:
M.V=1
进程 pi 进入临界区的条件为:
EnterCS(pi)⟺P(M)⇒M.V≥0 (执行后)
退出临界区:
ExitCS(pi)⇒V(M)
死锁的必要条件方程:
设进程集合 P 和资源集合 R,请求边 rij,分配边 aij。死锁存在的充要条件是资源分配图 G=(P∪R,E) 中存在环路,且对于每类资