这样就可以用带有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 ),
   

改写后的进程语句有以下两个特点:
  · 进程的第一个语句是一个关于CW当前值的条件语句,并且它的分支中不含wait语句,这个语句称为转移语句。
  · 进程的第二个语句,也是进程的最后一个语句,就是进程中的唯一一个wait语句。