日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【操作系统】某寺庙,住着一个老和尚和若干小和尚,有一个水缸,由小和尚提水入缸供老和尚饮用。水缸可以容纳10桶水,水取自同一口井中,由于水井口窄,每次只能容纳一个水桶取水,水桶总数为3个。每次往水缸中倒

發布時間:2023/12/20 windows 39 豆豆

題目

某寺廟,住著一個老和尚和若干小和尚,有一個水缸,由小和尚提水入缸供老和尚飲用。水缸可以容納10桶水,水取自同一口井中,由于水井口窄,每次只能容納一個水桶取水,水桶總數為3個。每次往水缸中倒水與從水缸中取水僅為一桶,且不可同時進行。試給出小和尚打水、倒水和老和尚取水的算法描述,并說明各信號量的含義并賦初值。
begin
parbegin
pold; //老和尚進程
plittle_1; plittle_2; plittle_3; … //小和尚進程
parend
end

答案

代碼

/*互斥信號量mutex1代表互斥使用水井,初值為1;互斥信號量mutex2代表互斥使用水缸,初值為1;信號量count代表桶的數目,初值為3;用empty代表可以提水入缸的捅數(可理解為水缸中有10個單元格,每個單元格可放入1桶水),初值為10(初始10個單元格都是空的,可放入10桶水);用full代表水缸中的已有水的捅數,初值為0(初始10個單元格都是沒有水的)*/Var mutex1,mutex2,count,empty,full : semaphore:=1,1,3,10,0;plittle_i: //第i個小和尚進程beginrepeatwait(empty);//水缸有否空位置(即是否滿,滿則等;不滿可入缸的捅數減1)wait(count);//有否有可用的桶(沒有等;有則使用:count減1)wait(mutex1);//水井是否正被占用;注:上述3行共有6種組合順序,試一試哪些組合可行,哪些不行從水井取水;signal(mutex1);//離開水井wait(mutex2);//水缸是否正被占用倒水入水缸;signal(mutex2);//離開水缸signal(count);//歸還水桶signal(full);//水缸中的已有水的捅數增加1桶until falseendpold; //老和尚進程beginrepeatwait(full);//水缸中是否有水可取(沒有則等;有則已有水的捅數減1)wait(count);//有否有可用的桶(沒有等;有則使用:count減1)wait(mutex2);//水缸是否正被占用;上述3行共有6種組合順序,試一試哪些組合可行,哪些不行從水缸中取水;signal(mutex2);//離開水缸signal(count);//歸還水桶signal(empty);//水缸中可入缸的捅數增加1桶until falseend

總結

以上是生活随笔為你收集整理的【操作系统】某寺庙,住着一个老和尚和若干小和尚,有一个水缸,由小和尚提水入缸供老和尚饮用。水缸可以容纳10桶水,水取自同一口井中,由于水井口窄,每次只能容纳一个水桶取水,水桶总数为3个。每次往水缸中倒的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。