这样就可以用带有CW变量和合并wait语句的流程图改写原来进程的流程图。具体合并过程如下: 在原进程语句P的开始处加上以CW为条件的if语句。这样每次进程恢复执行时就可以根据CW的值以及原来wait语句的条件子句来确定要指定哪部分语句。 把原进程语句P中的所有wait语句用合并后的wait语句替换掉,合并后的wait语句放在进程语句P的最后。 在原进程P中的wait语句后插入CW的赋值语句,CW所赋的值为该wait语句的序号,赋值语句后马上跳转到合并后的wait语句处。 图6.14给出了将上例进程的wait语句合并后的情况。其中: <cond0> 代表了( CW = 0 ), <cond1> 代表了( CW = 1 ) and M'event and ( not M ) , <cond2> 代表了( CW = 2 ) and ( N'event or M'event ) and ( N or M ), 改写后的进程语句有以下两个特点:
|