我们为某临界区设置一把锁W,当W=1时表示关锁,W=0时表示锁已打开。试写出开锁原语和关锁原语,并利用它们去实现互斥。
【正确答案】
开锁原语: unlock(W): W=0; 关锁原语: lock(w); if(W==1) do no_op; W=1; (2)利用开关锁原语实现互斥: var W:semaphore:=0; begin parbegin process: begin repeat lock(W); critical section unlock(W); remainder section until false; end paxend
【答案解析】
提交答案
关闭