十一 真经之珍珑棋局问题 问题描述 在一个盒子里混装了数量相等的黑白围棋子·现在用自动分拣系统把黑子白子分开设分拣系统有二个进程P和P其中P拣白子P拣黑子规定每个进程每次拣一子当一个进程在拣时不允许另一个进程去拣当一个进程拣了一子时必须让另一个进程去拣.试写出两进程P和P能并发正确执行的程序 问题分析 大家熟悉了生产消费问题(PC)这个问题很简单题目较为新颖但是本质非常简 单即生产消费问题的简化或者说是两个进程的简单同步问题答案如下 The PV code Using Pascal 设信号量s和s分别表示可拣白子和黑子; 不失一般性若令先拣白子 var SS:semaphore; S:=l;S=; cobegin process P process P begin begin repeat repeat P(S); p(S); pick The white; pick the black; V(S); v(s); until false; until false; end end coend 返回《操作系统之PV金典》 |