某寺廟有小和尚和老和尚若干,水缸乙隻,由小和尚提水入缸供老和尚飲用。水缸可容水10桶,水取自同一口水井中。水井徑窄,每次僅能容納乙隻水桶取水,水桶共三隻。每次放入、取出的水量僅為一桶,試用pv操作寫出小和尚打水、放入水缸、老和尚取水喝的過程。
明確行為物件:小和尚、老和尚
明確臨界區:
水井:小和尚之間互斥
水缸:小和尚、大和尚之間互斥
水桶:小和尚、大和尚之間互斥
明確訊號量:
1.n個小和尚到水井提水時互斥,用mutex1控制
2.小和尚將水放入水缸和老和尚取水互斥,用mutex2控制
3.臨界區是空閒的水桶數量,老和尚和小和尚都要用,用amount控制
4.使用full來表示水缸裡有幾桶水,用empty來表示水缸裡還能放幾桶水
semaphore mutex1=1,mutex2=1;
semaphore amount=5,empty=30,full=0;
void littlemonk i(i=1,2,3,,,n) ()
}void bigmonk i(i=1,2,3,,,n) ()
}void mian()
#include #include #include #include #include #include #define p sem_wait
#define v sem_post
#define mutex1 &mutex1
#define mutex2 &mutex2
#define amount &amount
#define empty &empty
#define full &full
#define n 10
sem_t mutex1,mutex2;
sem_t amount,empty,full;
int littlemonkcount= 0;
int bigmonkcount = 0;
int fullcount = 0;
int sum=50;
void* littlemonk(void *p)
}void* bigmonk(void *p)
}int main()
/** 建立多個小和尚程序 **/
for(j=1;j<=10;j++)
/**觀察結果後關閉程序**/
小和尚打水問題 三個和尚閱讀題答案閱讀題目
三個和尚 閱讀原文 傳說古時候,乙個活潑伶俐l ng l 的小和尚來到山上的一座廟mi o裡。開始,他勤快地挑水,不但自己夠喝,還往菩薩p s 手中的淨瓶裡灌水,淨瓶裡的柳枝活了。不久,來了乙個瘦和尚。他與小和尚為了喝水和挑水的問題發生了爭執zh 誰也不願意吃虧ku 於是,兩人商量一起抬水。後來,又...
掃樹葉的小和尚
有個小和尚,每天早上負責清掃寺廟院子裡的落葉。清晨起床掃落葉實在是一件苦差事,尤其在秋冬之際,每一次起風時,樹葉總隨風飛舞落下。每天早上都需要花費許多時間才能清掃完樹葉,這實在讓小和尚頭痛不已。他一直想要找個好辦法讓自己輕鬆些。後來有個和尚跟他說 你在明天打掃之前先用力搖樹,把落葉統統搖下來,後天就...
小和尚賣石頭的故事
一日,老和尚為了啟發他的徒弟,便給了他一塊非常美麗的石頭叫他去蔬菜市場叫賣。小和尚心裡雖然感覺很奇怪,但仍欣然接受了。臨行前,老和尚笑呵呵地對他的徒弟說 注意,你不要賣掉這塊石頭,只要在菜市場上叫賣一下,看需要多長時間才會有人前來詢問 然後你只要告訴我這塊石頭在蔬菜市場上能賣多少錢便可以了。徒弟雖然...