某寺庙,有小和尚、老和尚若干。有一水缸,由小和尚用水桶从井中提水入缸,老和尚用水桶从缸里取水饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次只能容一个水桶取水。水桶总数为3个。每次入、取缸水仅为1桶,且不可以同时进行。试用P、V操作给出小和尚、老和尚动作的算法描述。
semaphore well ...
用户登录可进行刷题及查看答案
semaphore well = 1; // 互斥访问水井 semaphore vat = 1; // 互斥访问水缸 semaphore empty = 10; // 水缸剩余空间能容纳的水的水桶容量数量 semaphore full = 0; // 水缸中水的水桶容量数量 semaphore pail = 3; // 可用水桶的数量 cobegin process 老和尚i { while (TRUE) { P(full); P(pail); P(vat); 从水缸中打一桶水; V(vat); V(empty); 喝水; V(pail); } } process 小和尚i { while (TRUE) { P(empty); P(pail); P(well); 从井中打一桶水; V(well); P(vat); 将一桶水倒入水缸; V(vat); V(full); V(pail); } } coend
登录后提交答案
暂无评论,来抢沙发