问答题
某寺庙,有小和尚、老和尚若干,有一水缸,由小和尚提入水缸供老和尚饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次只能容一个桶取水。水桶总数为3个。每次入取缸水仅为1桶水,且不可同时进行。试给出有关从缸取水、入水的算法描述。
【正确答案】从井中取水并放入水缸是一个连续的动作可以视为一个进程,从缸中取水为另一个进程。设水井和水缸为临界资源,引入well、vat;三个水桶无论从井中取水还是放入水缸中都是一次一个,应该给它们一个信号量pail,抢不到水桶的进程只好等待。水缸满时,不可以再放水,设置empty信号量控制入水量;水缸空时,不可以取水,设置full信号量来控制。本题需要设置5个信号量来控制:
[*]
[*]
【答案解析】