車輛死鎖問題_第1頁
車輛死鎖問題_第2頁
車輛死鎖問題_第3頁
車輛死鎖問題_第4頁
車輛死鎖問題_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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)進程同步;(2) 假設(shè)3個方向的車輛數(shù)目相等,數(shù)只有用戶輸入,并動態(tài)顯示稱量形式的狀態(tài),每個車輛行駛所用的時間可以預(yù)先設(shè)定

2、。準(zhǔn)備知識(1) 了解進程死鎖的原理。(2) 掌握自然有序分配法。實驗原理死鎖是指在一組進程中的各個進程占有不會釋放的資源,但因互相申請被其他進程所占用不會釋放的資源而處于一種永久等待的狀態(tài)。死鎖的4個必要條件:(1) 互斥條件:資源不能被共享,只能由一個進程使用。(2) 請求與保持條件:已經(jīng)得到資源的進程可以再次申請新的資源。(3) 非剝奪條件:已經(jīng)分配的資源不能從相應(yīng)的進程再次申請新的資源。(4) 循環(huán)等待條件:系統(tǒng)中若干進程組成環(huán)路,該環(huán)路中每個進程都在等待相鄰進程已占用的資源。死鎖預(yù)防的基本思想是對進程在申請有關(guān)申請資源的時候規(guī)定某種策略,如果所有進程都遵守這一策略,則系統(tǒng)就不會進入死

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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論