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

正文內(nèi)容

linux信號(hào)量機(jī)制編程設(shè)計(jì)說(shuō)明書(shū)-wenkub

2023-04-27 00:25:23 本頁(yè)面
 

【正文】 的方法,掌握信號(hào)量的使用方法。廟內(nèi)有一水缸,由小和尚提水入缸,供老和尚飲用。水缸可容納 30 桶水,每次入水、取水僅為 1 桶,不可同時(shí)進(jìn)行。本課題所設(shè)計(jì)的系統(tǒng)要求實(shí)現(xiàn)以下功能。使用 Linux 的信號(hào)量機(jī)制,編寫(xiě)解決和尚挑水問(wèn)題的代碼。最簡(jiǎn)單的信號(hào)量是一個(gè)只有0與1兩個(gè)值的變量,二值信號(hào)量。信號(hào)量函數(shù)定義如下:intsem_num,intsem_flags)。size_tnum_sem_ops)。而在某些情況下,這并不是必須的。*十分相似,因?yàn)樗贿M(jìn)程用來(lái)訪問(wèn)共享文件。調(diào)用原型:int semget(key_t key,int num_sems,int sem_flags)。sem_flags參數(shù)是一個(gè)標(biāo)記集合,與open函數(shù)的標(biāo)記十分類(lèi)似。設(shè)置IPC_CREAT標(biāo)記并且指定一個(gè)已經(jīng)存在的信號(hào)量鍵值并不是一個(gè)錯(cuò)誤。調(diào)用原型:int semop(int sem_id,struct sembuf*semops, size_tnum_sem_ops)。structsembufshort如果我們確實(shí)變我們需要一個(gè)不同的值而不是SEM_UNDO,一致性是十分重要的,否則我們就會(huì)變得十分迷惑,當(dāng)我們的進(jìn)程退出時(shí),內(nèi)核是否會(huì)嘗試清理我們的信號(hào)量。semctl函數(shù)允許信號(hào)量信息的直接控制調(diào)用原型:int semctl(int sem_id,int sem_num,int mand,...)。通常,如果這是第一個(gè)且是唯一的一個(gè)信號(hào)量,這個(gè)值為0。unionunsigned}在信號(hào)量第一次使用之前需要設(shè)置信號(hào)量。semctl函數(shù)依據(jù)mand參數(shù)會(huì)返回不同的值。水缸可容納 30 桶水,每次入水、取水僅為 1 桶,不可同時(shí)進(jìn)行。如果水缸中沒(méi)有水,老和尚就停止從水缸中取水,并等待小和尚加水;而當(dāng)水缸中容量少于30桶,那么小和尚就向水缸中加水,直到水缸注滿為止。下圖為master程序的流程圖 見(jiàn)圖 開(kāi)始調(diào)用fork()產(chǎn)生子進(jìn)程 pidA調(diào)用fork()產(chǎn)生子進(jìn)程pidB調(diào)用fork()產(chǎn)生子進(jìn)程pidCPidA==0?PidB==0?PidC==0?pidA==1?PidB==1?PidC==1? 出錯(cuò)返回 結(jié)束循環(huán)調(diào)用mws()循環(huán)調(diào)用mws()NYNYYNYYNYYYN Y發(fā)出取水通知取水水缸中有沒(méi)有水?調(diào)用mws()N等待2s 圖1程序運(yùn)行結(jié)果為下圖: 如上圖當(dāng)水缸沒(méi)水的時(shí)候執(zhí)行acolyte程序 開(kāi)始Pida==0?Pidb==0?Pidc==0?pidA==1?PidB==1?PidC==1? 出錯(cuò)返回 結(jié)束循環(huán)調(diào)用FILLTHEBARREK()循環(huán)調(diào)用FILLTHEBARREK()NYYYYY調(diào)用FILLTHEBARREK()水缸水量《30桶?桶和井可同時(shí)取用?取水入缸 水滿放棄已得到的桶或井NYNYNY調(diào)用fork()創(chuàng)建三個(gè)子程序 此圖為acolyte程序的流程圖,下圖為程序執(zhí)行結(jié)果:當(dāng)水缸有水時(shí),老和尚可以喝水:實(shí)驗(yàn)結(jié)果總 結(jié)經(jīng)過(guò)這次的課程設(shè)計(jì),讓我經(jīng)歷了一次有意義的過(guò)程,讓我了解了團(tuán)隊(duì)合作的重要性,起初我們只是在不停的各干各的,發(fā)現(xiàn)根本不可能完成預(yù)期的任務(wù),后來(lái)我們坐下來(lái)討論了系統(tǒng)的功能,然后各司其職,發(fā)現(xiàn)效果真的不一樣,雖然在這一周的時(shí)間里我們做了很多,中間也遇到了一些問(wèn)題,比如說(shuō)臨界資源管理和算法模塊怎樣結(jié)合起來(lái),起初是將兩個(gè)交叉起來(lái),可是效果不是很好,最后還是決定將它們分開(kāi),慢慢地其他問(wèn)題也同樣得到了解決,這就是團(tuán)隊(duì)合作的力量,這個(gè)系統(tǒng)需要完善的內(nèi)容還有很多,我們以后還會(huì)在一起討論完善并改進(jìn),在此過(guò)程中,我也發(fā)現(xiàn)了編程是需要絕對(duì)的耐心與細(xì)心的,不然會(huì)造成一些難以修改的錯(cuò)誤,導(dǎo)致整個(gè)程序進(jìn)展出現(xiàn)問(wèn)題。int main(void){ pid_t pidA,pidB,pidC。), 1, 0666|IPC_CREAT)。 if(pidA == 0) { while(1) { vats = M_w_s(vat_id, 39。 printf(Master A is ing to drink:)%d1\n,vats)。)。 if(pidC == 0) { while(1) {
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1