freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

和尚挑水問題課程設計(編輯修改稿)

2025-02-14 06:09 本頁面
 

【文章內容簡介】 外一個程序,創(chuàng)建三個子進程a、b、c模擬三個小和尚,隔一段時間獲得一個水桶并從水井中取水注入水缸中。如果水缸中沒有水,老和尚就停止從水缸中取水,并等待小和尚加水;而當水缸中容量少于30桶,那么小和尚就向水缸中加水,直到水缸注滿為止。如此循環(huán)不止。實現(xiàn)功能如下:(1)創(chuàng)建進程:手動創(chuàng)建A、B、C、a、b、c六個進程,都在界面上完成;要求包括進程的名稱(不能重復)、執(zhí)行時間和申請資源的等待時間等。在同一時刻可能有多個進行在內存申請資源,即可以輸入多個進程的資源申請。(2)臨界資源的管理,包括申請以及分配等,通過信號量和信號量集實現(xiàn)。(3)生產者消費者算法,判斷是否可以進行資源的分配。任務目標通過信號量實現(xiàn)多進程之間對共享資源的互斥和同步。4整體設計系統(tǒng)2個模塊:輸入輸出,進程對資源的隨機申請及分配,通過信號量和信號量集機制及生產者消費者算法實現(xiàn)臨界資源管理,避免死鎖。輸入輸出:包括系統(tǒng)運行所需要的進程的名稱,執(zhí)行時間,申請資源的等待時間,進程對資源的需要量等信息以及系統(tǒng)所要顯示出的進程的創(chuàng)建信息,資源的分配信息,進行執(zhí)行信息,進行動態(tài)申請資源信息等。進程對資源的隨機申請及分配:根據(jù)所輸入的進程、資源、以及進程對資源的最大申請情況,隨機產生進程當前對資源的申請,輸出相應的分配信息與進程執(zhí)行信息并使用生產者消費者算法對進程的資源申請進行判斷。臨界資源的管理:創(chuàng)建相應個數(shù)的進程,完成進程的并發(fā)執(zhí)行,使用互斥信號量使各進程互斥的進入各自的臨界區(qū)對資源進行申請,進程執(zhí)行完畢后,互斥的對資源進行恢復。避免死鎖:對當前進程對資源的申請利用生產者消費者算法進行判斷,看系統(tǒng)分配后是否處于安全狀態(tài),若處于安全狀態(tài),則將資源分配給進程,并輸出分配信息,否則對不予以分配。下圖為master程序的流程圖 見圖 開始調用fork()產生子進程 pidA調用fork()產生子進程pidB調用fork()產生子進程pidCPidA==0?PidB==0?PidC==0?pidA==1?PidB==1?PidC==1? 出錯返回 結束循環(huán)調用mws()循環(huán)調用mws()NYNYYNYYNYYYN Y發(fā)出取水通知取水水缸中有沒有水?調用mws()N等待2s 圖1程序運行結果為下圖: 如上圖當水缸沒水的時候執(zhí)行acolyte程序 開始Pida==0?Pidb==0?Pidc==0?pidA==1?PidB==1?PidC==1? 出錯返回 結束循環(huán)調用FILLTHEBARREK()循環(huán)調用FILLTHEBARREK()NYYYYY調用FILLTHEBARREK()水缸水量《30桶?桶和井可同時取用?取水入缸 水滿放棄已得到的桶或井NYNYNY調用fork()創(chuàng)建三個子程序 此圖為acolyte程序的流程圖,下圖為程序執(zhí)行結果:當水缸有水時,老和尚可以喝水:實驗結果總 結經(jīng)過這次的課程設計,讓我經(jīng)歷了一次有意義的過程,讓我了解了團隊合作的重要性,起初我們只是在不停的各干各的,發(fā)現(xiàn)根本不可能完成預期的任務,后來我們坐下來討論了系統(tǒng)的功能,然后各司其職,發(fā)現(xiàn)效果真的不一樣,雖然在這一周的時間里我們做了很多,中間也遇到了一些問題,比如說臨界資源管理和算法模塊怎樣結合起來,起初是將兩個交叉起來,可是效果不是很好,最后還是決定將它們分開,慢慢地其他問題也同樣得到了解決,這就是團隊合作的力量,這個系統(tǒng)需要完善的內容還有很多,我們以后還會在一起討論完善并改進,在此過程中,我也發(fā)現(xiàn)了編程是需要絕對的耐心與細心的,不然會造成一些難以修改的錯誤,導致整個程序進展出現(xiàn)問題。這對我們真的是一次很好的鍛煉。參考文獻[1] 華清遠見嵌入式培訓中心.嵌入式Linux應用程序開發(fā).第二版.人民郵電出版社,[2] 鳥哥.Linux私房菜基礎學習篇.第三版.人民郵電出版社, 附 錄:include include include include sys/include sys/include sys/include define SLEEP_TIME 2define VAT_VOLUME 30static int count。int M_w_s(int, const char)。int main(void){ pid_t pidA,pidB,pidC。 int vat_id,vats。 vat_id = semget(ftok(., 39。v39。), 1, 0666|IPC_CREAT)。 init_sem(vat_id, VAT_VOLUME)。 //the
點擊復制文檔內容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1