下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗?zāi)康模?) 理解死鎖產(chǎn)生的原因,掌握預(yù)防和預(yù)防死鎖的方法,以及死鎖的檢測方法。(2) 通過車輛行駛死鎖問題的設(shè)計與實現(xiàn)掌握解決死鎖的方法。實驗內(nèi)容車輛行駛死鎖問題,在Linux下用C語言完成下面模型:設(shè)有一個T型路口,其中A,B,C,D各處可容納一輛車,車型方向如圖所示。是找出死鎖并用有序分配法消除之,要求資源編號合理。ABE:左轉(zhuǎn)W:直行DCS:左轉(zhuǎn)T型路口模擬圖根據(jù)上述介紹,編寫車輛行駛死鎖問題的程序,要求如下:(1) 在Linux下用C語言編程,利用信號量操作實現(xiàn)進(jìn)程同步;(2) 假設(shè)3個方向的車輛數(shù)目相等,數(shù)只有用戶輸入,并動態(tài)顯示稱量形式的狀態(tài),每個車輛行駛所用的時間可以預(yù)先設(shè)定
2、。準(zhǔn)備知識(1) 了解進(jìn)程死鎖的原理。(2) 掌握自然有序分配法。實驗原理死鎖是指在一組進(jìn)程中的各個進(jìn)程占有不會釋放的資源,但因互相申請被其他進(jìn)程所占用不會釋放的資源而處于一種永久等待的狀態(tài)。死鎖的4個必要條件:(1) 互斥條件:資源不能被共享,只能由一個進(jìn)程使用。(2) 請求與保持條件:已經(jīng)得到資源的進(jìn)程可以再次申請新的資源。(3) 非剝奪條件:已經(jīng)分配的資源不能從相應(yīng)的進(jìn)程再次申請新的資源。(4) 循環(huán)等待條件:系統(tǒng)中若干進(jìn)程組成環(huán)路,該環(huán)路中每個進(jìn)程都在等待相鄰進(jìn)程已占用的資源。死鎖預(yù)防的基本思想是對進(jìn)程在申請有關(guān)申請資源的時候規(guī)定某種策略,如果所有進(jìn)程都遵守這一策略,則系統(tǒng)就不會進(jìn)入死
3、鎖狀態(tài)。預(yù)防死鎖的策略有兩種:資源預(yù)先分配策略,和資源有序分配策略。本實驗主要使用資源有序分配策略來預(yù)防死鎖。實驗指導(dǎo)死鎖的可能性有兩種:(1) E方向兩輛車分別位于A和B,S方向一輛車位于C,W方向一輛車位于D。(2) S方向兩輛車分別位于B和C,E方向一輛車位于A,W方向一輛車位于D。位置資源編號:f(C)=1, f(B)= 2,f(A)=3, f(D)=4.管理C,B,A,D四個位置的信號量分別為s1,s2,s3,s4,初始值均為1??刂频腜V 源于,如表所示。利用PV源于解決死鎖算法Semaphore s1=1,s2=1,s3=1,s4=1;Void S()P(s1);駛?cè)隒;P(s2
4、);駛?cè)隑;V(s1);P(s3);駛?cè)階;V(s2);駛出A;V(s3);Void E()P(s2);駛?cè)隑;P(s3);駛?cè)階;V(s2);P(s4);駛?cè)隓;V(s3);駛出D;V(s4);Void W()P(s1); /按序申請P(s4);駛?cè)隓;駛?cè)隒;V(s4);駛出C;V(s1);本實驗的程序流程圖,如圖所示。結(jié)束動態(tài)顯示車輛行駛情況創(chuàng)建三個方向上的線程提示輸入錯誤輸入是否大于Max開始實驗截圖附錄:源代碼#include<sys/types.h>#include<unistd.h>#include<stdio.h>#include<st
5、dlib.h>#include<string.h>int main()int d12;int d22;int d32;int r,j,k;char buff200;printf("Please input a string:");scanf("%s",buff);r=pipe(d1);if(r=-1)printf("chuang jian guan dao shi bai 1n");exit(1);r=pipe(d2);if(r=-1)printf("chuang jian guan dao shi bai
6、 2n");exit(1);r=pipe(d3);if(r=-1)printf("chuang jian guan dao shi bai 3n");exit(1);r=fork();if(r)close(d11);read(d10,buff,sizeof(buff);if(strlen(buff)%2=1)j=fork();if(j)close(d21);read(d20,buff,sizeof(buff);printf("P3 pipe2 odd length string: %sn",buff);close(d20);exit(0);el
7、seclose(d20);write(d21,buff,strlen(buff);printf("P2 finishes writing to pipe2.n");close(d21);exit(0);elsek=fork();if(k)close(d31);read(d30,buff,sizeof(buff);printf("P4 pipe3 even length string:%sn,buff");close(d30);exit(0);elseclose(d30);write(d31,buff,strlen(buff);printf("P2 finish
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)生產(chǎn)線用工合同范例
- 化工物料加工合同范例
- 勞務(wù)裝卸分包合同范例
- 轉(zhuǎn)讓水果基地合同范例
- 代理商授權(quán)合同范例
- 設(shè)計合同補充協(xié)議范本指南
- 個性化還款協(xié)議合同
- 年度物資供應(yīng)合同簽訂
- 核桃良種繁育技術(shù)服務(wù)合同
- 倉儲配送一體化服務(wù)合同范例
- (完整)馬克思主義政治經(jīng)濟學(xué)習(xí)題及參考答案
- 中原文化介紹
- 醫(yī)院預(yù)防保健科工作制度及職責(zé)范本
- 分離工程課件
- 中國風(fēng)古詩詞詩歌朗讀比賽大會唐詩宋詞含內(nèi)容課件兩篇
- 計算機網(wǎng)絡(luò)技術(shù)基礎(chǔ)(第6版)全套教學(xué)課件
- 湖南省岳陽市2023年八年級上學(xué)期期末質(zhì)量檢測數(shù)學(xué)試題附答案
- 有限空間作業(yè)安全管理協(xié)議
- 2023年資產(chǎn)負(fù)債表模板
- 道路綠化養(yǎng)護(hù)投標(biāo)方案(技術(shù)方案)
- 【語文】北京市芳草地小學(xué)小學(xué)三年級上冊期末試卷(含答案)
評論
0/150
提交評論