計算機作業系統和尚打水問題
計算機作業系統有一個很有趣的問題相信大家都碰到過,那就是和尚打水問題,下面由小編整理了計算機作業系統的和尚打水問題的相關知識,希望對你有幫助。
計算機作業系統的和尚打水問題描述
某寺廟,有小和尚和老和尚若干,有一個水缸,由小和尚提水入缸供老和尚飲用.水缸可以容納10桶水,水取自同一口井中,由於水井口窄,每次只能容納一個水桶取水.水桶總數為3個.每次入水、取水僅為一桶,且不可同時進行.試給出有關取水、入水的演算法描述.
計算機作業系統的和尚打水問題解決方法
Var mutex1, mutex2, empty, full, count: semaphore;
mutex1:=1; mutex2:=1;
empty:=10; full:=0; count:=3;
process 小和尚:
begin
repeat
wait***empty***;
wait***count***;
wait***mutex1***;
從井中取水;
signal***mutex1***;
wait***mutex2***;
送水入水缸;
signal***mutex2***;
signal***count***;
signal***full***;
until false;
end
process 老和尚:
begin
repeat
wait***full***;
wait***count***;
wait***mutex2***;
從缸中取水;
signal***mutex2***;
signal***empty***;
signal***count***;
until false;
end
計算機作業系統名詞解釋總結