版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 操作系統(tǒng)課程設(shè)計(jì)</b></p><p> 學(xué)號(hào): </p><p> 姓名: </p><p> 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 課程: 操作系統(tǒng)
2、 </p><p> 指導(dǎo)教師: </p><p> 時(shí)間: 2015/3/9 </p><p> 成績: </p><p><b> 目錄</b></p><p>
3、;<b> 目錄1</b></p><p> 1.設(shè)計(jì)題目與要求2</p><p><b> 1.1設(shè)計(jì)目的2</b></p><p><b> 1.2設(shè)計(jì)要求2</b></p><p> 2. 總體設(shè)計(jì)思想2</p><p> 2
4、.1總體設(shè)計(jì)思想2</p><p><b> 3. 功能設(shè)計(jì)3</b></p><p> 3.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)3</p><p><b> 3.2程序清單3</b></p><p><b> 3.3運(yùn)行結(jié)果4</b></p><p>
5、 4. 設(shè)計(jì)心得5</p><p> 5. 參考資料6</p><p><b> 附錄7</b></p><p><b> 程序源代碼:7</b></p><p><b> 一.設(shè)計(jì)題目與要求</b></p><p><b>
6、; 1.設(shè)計(jì)目的</b></p><p> 了解信號(hào)量機(jī)制,了解并掌握進(jìn)程同步和互斥機(jī)制,熟悉信號(hào)量的操作函數(shù),利用信號(hào)量實(shí)現(xiàn)對(duì)資源共享的控制。</p><p> 通過實(shí)現(xiàn)吃水果問題的同步,深入了解和掌握進(jìn)程同步的原理。</p><p><b> 設(shè)計(jì)要求</b></p><p> 編程模擬實(shí)現(xiàn)這一
7、問題的程序控制,分析處理過程。</p><p><b> 吃水果問題的描述:</b></p><p> 桌子上有一只盤子,最多可容納兩個(gè)水果,每次只能放入或者取出一個(gè)水果。爸爸專門向盤中放蘋果(apple),媽媽專門向盤子中放橘子(orange),兩個(gè)兒子專門等待吃盤子中的橘子,兩個(gè)女兒專門等吃盤子中的蘋果。</p><p><b&g
8、t; 二.總體設(shè)計(jì)思想</b></p><p> 1.總體設(shè)計(jì)思想流程</p><p> 這是進(jìn)程同步與互斥問題的模擬,可以把向盤子放或取水果的每一個(gè)過程可以轉(zhuǎn)為一個(gè)進(jìn)程的操作,這些進(jìn)程是互斥的,同時(shí)也存在一定的同步關(guān)系。通過編程實(shí)踐時(shí),實(shí)際是隨機(jī)的調(diào)用一個(gè)進(jìn)程的操作,而這些進(jìn)程的操作相當(dāng)于程序中的函數(shù)調(diào)用。而計(jì)算機(jī)在執(zhí)行時(shí)每一個(gè)時(shí)刻只能執(zhí)行一個(gè)操作,這就是互斥的表現(xiàn)。同
9、步的模擬可以類似于函數(shù)調(diào)用時(shí)的前提關(guān)系即先決條件。這樣進(jìn)程同步模擬就完全可以通過函數(shù)的調(diào)用來實(shí)現(xiàn)。</p><p> 具體的每一個(gè)操作的對(duì)應(yīng)的函數(shù)的關(guān)系:</p><p> 爸爸向盤子中放一個(gè)蘋果:Father()媽媽向盤子中放一個(gè)橘子:Mother()</p><p> 兒子1從盤子取一個(gè)橘子:Son1()兒子2從盤子取一個(gè)橘子:Son2()</p&g
10、t;<p> 女兒1從盤子取一個(gè)橘子:Daugther1()女兒2從盤子取一個(gè)橘子:Daugther2()</p><p><b> 三.功能設(shè)計(jì)</b></p><p><b> 1. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p> (1)用一個(gè)整型變量Plate_Size表示盤子里的水果數(shù)量,初始值為0,
11、當(dāng)放水果時(shí)Plate_Size加1,取水果時(shí)Plate_Size減1。變量Plate_Size的最大值為2,當(dāng)為2時(shí)表示盤子已經(jīng)滿,此時(shí)若進(jìn)行放水果操作,放水果將處于等待狀態(tài);為0時(shí)表示盤子為空,此時(shí)若進(jìn)行取水果操作,取水果操作將處于等待狀態(tài),Plate_Size是爸爸和媽媽進(jìn)行放水果的私有信號(hào)量。</p><p> (2)整型變量orange和apple分別表示盤子中的橘子和蘋果數(shù)目,初始都為0,其中oran
12、ge是兒子的私有變量,apple是女兒的私有變量,盤子中的總水果數(shù)是 Plate_Size=apple+orange。</p><p> (3)用6個(gè)bool型的變量 Father_lag,Mother_lag,Son1_lag,Son2_lag,Daughter1_lag,Daughter2_lag表示六個(gè)進(jìn)程是否處于等待狀態(tài)。處于等待時(shí),變量值為true。</p><p> (4)
13、兩個(gè)放水果進(jìn)程同時(shí)處于等待狀態(tài)時(shí),若有取水果的操作將自動(dòng)執(zhí)行等待的放水果進(jìn)程,執(zhí)行按等待的先后順序自動(dòng)調(diào)用;兩個(gè)取蘋果或橘子進(jìn)程同時(shí)候處于等待狀態(tài),若有放蘋果或橘子的操作將自動(dòng)執(zhí)行等待的取進(jìn)程,進(jìn)行按等待的先后順序自動(dòng)調(diào)用。</p><p> (5)用一個(gè)隨機(jī)的函數(shù)產(chǎn)生0—5的6個(gè)整數(shù),分別對(duì)應(yīng)六個(gè)進(jìn)程的調(diào)用。</p><p><b> 2.程序清單</b><
14、;/p><p><b> ?。?)主函數(shù)</b></p><p> 用一個(gè)隨機(jī)的函數(shù)產(chǎn)生0—5的6個(gè)整數(shù),即 i=rand()%6,分別對(duì)應(yīng)六個(gè)進(jìn)程的調(diào)用,調(diào)用的次數(shù)可以通過修改K值來實(shí)現(xiàn),for(k=0;k<10;k++),本程序共產(chǎn)生了10次隨機(jī)的調(diào)用進(jìn)程。</p><p><b> (2)6個(gè)進(jìn)程函數(shù)</b>&
15、lt;/p><p> 爸爸向盤子中放一個(gè)蘋果操作:Father()</p><p> 媽媽向盤子中放一個(gè)橘子操作:Mother()</p><p> 兒子1從盤子取一個(gè)橘子操作:Son1()</p><p> 兒子2從盤子取一個(gè)橘子操作:Son2()</p><p> 女兒1從盤子取一個(gè)橘子操作:Daugther
16、1()</p><p> 女兒2從盤子取一個(gè)橘子操作:Daugther2()</p><p> (3)Print函數(shù)</p><p> 用于輸出盤子中蘋果和橘子的個(gè)數(shù),水果總個(gè)數(shù)及哪些進(jìn)程處于等待狀態(tài)。</p><p> ?。?)P、V原語的描述</p><p> Semaphore Plate_Siz<
17、;/p><p> Semaphore appl</p><p> Semaphore orange</p><p><b> Father()</b></p><p><b> {</b></p><p> While(ture)</p><p&
18、gt;<b> {</b></p><p> P(Plate_Siz)</p><p><b> P(mutex)</b></p><p> 父親向盤子中放進(jìn)一個(gè)蘋果</p><p><b> V(apple)</b></p><p><
19、b> V(mutex)</b></p><p><b> }</b></p><p><b> }</b></p><p><b> Mother()</b></p><p><b> {</b></p><
20、p> While(ture)</p><p><b> {</b></p><p> P(Plate_Siz)</p><p><b> P(mutex)</b></p><p> 母親向盤子中放進(jìn)一個(gè)桔子</p><p><b> V(orang
21、e)</b></p><p><b> V(mutex)</b></p><p><b> }</b></p><p><b> }</b></p><p><b> Son(i)</b></p><p><
22、;b> {</b></p><p> While(ture)</p><p><b> {</b></p><p> P(Plate_Siz)</p><p><b> P(mutex)</b></p><p><b> P(apple
23、)</b></p><p> 兒子從盤子中走一個(gè)桔子</p><p><b> V(orange)</b></p><p><b> V(mutex)</b></p><p><b> }</b></p><p><b>
24、 }</b></p><p> Daugther (i)</p><p><b> {</b></p><p> While(ture)</p><p><b> {</b></p><p> P(Plate_Siz)</p><p&
25、gt;<b> P(mutex)</b></p><p> 女兒從盤子中走一個(gè)蘋果</p><p><b> V(apple)</b></p><p><b> V(mutex)</b></p><p><b> }</b></p>
26、<p><b> }</b></p><p><b> 3. 運(yùn)行結(jié)果</b></p><p><b> 四.設(shè)計(jì)心得</b></p><p> 完成本次課題首先在分析問題并把問題轉(zhuǎn)化為編程問題,對(duì)進(jìn)程同步理解的比較透徹;其次我用了個(gè)隨機(jī)函數(shù)來調(diào)用相應(yīng)的進(jìn)程函數(shù),這對(duì)進(jìn)程間的同步和
27、等待狀態(tài)有很好的說明和十分的全面;再次我們?cè)O(shè)了六個(gè)bool型的變量來表示各進(jìn)程時(shí)候處于等待狀態(tài),還設(shè)置了相應(yīng)的整型變量來解決等待進(jìn)程在適當(dāng)?shù)臈l件下自動(dòng)調(diào)用的先后問題。</p><p> 不足之處,由于各進(jìn)程調(diào)用是隨機(jī)的,在某個(gè)處于等待狀態(tài)時(shí),可以還能被調(diào)用,事實(shí)上這不是很合理。因?yàn)樘幱诘却隣顟B(tài)的進(jìn)程就不可能在被分配調(diào)用。再有就是程序有些代碼部分有重的,可以把這些重復(fù)執(zhí)行的代碼寫成函數(shù),需要用時(shí)直接調(diào)用代碼函數(shù)。
28、</p><p> 這次自己的收獲還是不小,首先使我們提高了分析問題,并根據(jù)需求轉(zhuǎn)化成相應(yīng)的程序結(jié)構(gòu)的能力;其次也豐富了自己編寫程序,調(diào)試程序的經(jīng)驗(yàn),這使得我編程時(shí)可能出現(xiàn)的錯(cuò)誤的認(rèn)識(shí),并如何去避免產(chǎn)生了新的認(rèn)識(shí)。</p><p> 加深我了進(jìn)程的理解,同時(shí)也提高了自己的編程的能力。編程是個(gè)長久的過程,平時(shí)要多去動(dòng)手實(shí)踐,去提高自己分析問題、發(fā)現(xiàn)問題、解決問題的能力。</p>
29、;<p><b> 五. 參考資料</b></p><p> [1]宗大華,宗濤,陳吉人著 操作系統(tǒng) 北京:人民郵電出版社,2009</p><p> [2]李愛華,程磊著 面相對(duì)象程序設(shè)計(jì)(C++語言) 北京: 清華大學(xué)出版社,2010</p><p> [3]宋曉宇 , windows操作系統(tǒng)核心編程實(shí)驗(yàn)教程
30、中國鐵道出版社</p><p> [4]張麗芬 劉利雄 王金玉編著 操作系統(tǒng)實(shí)驗(yàn)教程 清華大學(xué)出版社</p><p><b> 附錄:</b></p><p><b> 程序源代碼:</b></p><p> #include<time.h> //用到了time函數(shù)
31、,所以要有這個(gè)頭文件</p><p> #include<stdlib.h> //用到了srand函數(shù),所以要有這個(gè)頭文件</p><p> #include<iostream.h> </p><p> int Plate_Size=0; //表示盤子中當(dāng)前有幾個(gè)水果</p><p> int ora
32、nge=0,apple=0; //表示盤子中orange和apple的個(gè)數(shù)</p><p> bool Father_lag,Mother_lag,Son1_lag,Son2_lag,Daughter1_lag,Daughter2_lag; //六個(gè)進(jìn)程處于等待時(shí),變量值為true</p><p> void main() //main()函數(shù),實(shí)現(xiàn)其他功能函數(shù)的調(diào)用&l
33、t;/p><p> { void Print(); //函數(shù)聲明</p><p> void Father();</p><p> void Mother();</p><p> void Son1();</p><p> void Son2();</p><p> void Dau
34、ghter1();</p><p> void Daughter2();</p><p><b> int k;</b></p><p> srand((unsigned)time(NULL));//srand()函數(shù)產(chǎn)生一個(gè)以當(dāng)前時(shí)間開始的隨機(jī)種子 </p><p> for(k=0;k<10;k++)&
35、lt;/p><p> { cout<<"第"<<k+1<<"次操作:"<<endl; //printf("第%d次操作:\n",k+1);</p><p> int i=rand()%6; //隨進(jìn)生成6以內(nèi)的整數(shù),即0-5的6個(gè)整數(shù)</p><p&g
36、t; Plate_Size=apple+orange;</p><p> int MonFa_c,Daughter_b,Son_a; //for語句的局部變量,控制進(jìn)程等待的優(yōu)先次序,MonFa_c=2,Mather()執(zhí)行,MonFa_c=1,F(xiàn)ather()執(zhí)行</p><p> switch(i) //0為Father()調(diào)用,1為Mother()調(diào)用,2、3為Son1
37、()、Son2()調(diào),4、5為Daughteri()調(diào)用</p><p> { case 0:</p><p> cout<<"Father調(diào)用."<<endl;</p><p> if(Plate_Size==2)</p><p><b> {</b></
38、p><p> Father_lag=true; //Father()等待</p><p><b> Print();</b></p><p> if(Mother_lag==false)</p><p> MonFa_c=1; </p><p><b> }</b>
39、;</p><p><b> else</b></p><p><b> {</b></p><p><b> Father();</b></p><p> if((Daughter1_lag==true)&&(Daughter2_lag==true))
40、</p><p><b> {</b></p><p> if(Daughter_b==1)</p><p><b> {</b></p><p> Daughter1_lag=false;//Daughter1等待取消</p><p> Daughter1();
41、 //處于等待的Daughter1自動(dòng)調(diào)用</p><p> Daughter_b=2; //優(yōu)先級(jí)讓給Daughter2</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p>
42、<p> Daughter2_lag=false;//Daughter2等待取消</p><p> Daughter2(); //處于等待的Daughter2()自動(dòng)調(diào)用</p><p> Daughter_b=1; //優(yōu)先級(jí)讓給Daughter1</p><p><b> }</b></p><p
43、><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(Daughter1_lag==true)</p><p><b> {</b></p><
44、p> Daughter1_lag=false;//Daughter1等待取消</p><p> Daughter1(); //處于等待的Daughter1()自動(dòng)調(diào)用</p><p> Daughter_b=0; //沒有等待的Dauther進(jìn)程</p><p><b> }</b></p><p>
45、else if(Daughter2_lag==true)</p><p><b> {</b></p><p> Daughter2_lag=false;//Daughter2等待取消</p><p> Daughter2(); //處于等待的Daughter2()自動(dòng)調(diào)用</p><p> Daughter_
46、b=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> break;</b></p><p><b> case 1:
47、</b></p><p> cout<<"Mother調(diào)用."<<endl;</p><p> if(Plate_Size==2)</p><p><b> {</b></p><p> Mother_lag=true; //Mother()等待</p
48、><p><b> Print();</b></p><p> if(Father_lag==false)</p><p> MonFa_c=2; </p><p><b> }</b></p><p><b> else</b></p&g
49、t;<p><b> {</b></p><p><b> Mother();</b></p><p> if((Son1_lag==true)&&(Son2_lag==true)) //Son1和Son2都等待</p><p><b> {</b></p
50、><p> if(Son_a==1) //Son1執(zhí)行</p><p><b> {</b></p><p> Son1_lag=false;//Son1等待取消</p><p> Son1(); //處于等待的Son1()自動(dòng)調(diào)用</p><p> Son_a=2; //優(yōu)先級(jí)讓給S
51、on2</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> Son2_lag=false;//Son2等待取消</p><p> Son2();
52、 //處于等待的Son2()自動(dòng)調(diào)用</p><p> Son_a=1; //優(yōu)先級(jí)讓給Son1</p><p><b> }</b></p><p><b> }</b></p><p><b> else </b></p><p><b
53、> {</b></p><p> if(Son1_lag==true)</p><p><b> {</b></p><p> Son1_lag=false; //Son1等待取消</p><p> Son1(); //處于等待的Son1()自動(dòng)調(diào)用</p><p
54、><b> Son_a=0;</b></p><p><b> }</b></p><p> else if(Son2_lag==true)</p><p><b> {</b></p><p> Son2_lag=false; //Son2等待取消</p
55、><p> Son2(); //處于等待的Son2()自動(dòng)調(diào)用</p><p><b> Son_a=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }<
56、;/b></p><p><b> break;</b></p><p><b> case 2: </b></p><p> cout<<"Son1調(diào)用."<<endl;</p><p> if(orange==0)</p>
57、<p><b> {</b></p><p> Son1_lag=true; //Son1處于等待</p><p><b> Print();</b></p><p> if(Son2_lag==false)</p><p> Son_a=1; //用于判斷Son
58、1和Son2等待的先后性</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> Son1();</b></p><p> if((
59、Father_lag==true)&&(Mother_lag==true))</p><p><b> {</b></p><p> if(MonFa_c==1) //Father和Mother同時(shí)處于等待,但Father先等待,因此先調(diào)用</p><p><b> {</b></p>
60、;<p> Father_lag=false;</p><p><b> Father();</b></p><p> MonFa_c=2;</p><p><b> }</b></p><p> else //Father和Mother同時(shí)處于等待,但Mother先等待,因
61、此先調(diào)用</p><p><b> {</b></p><p> Mother_lag=false;</p><p><b> Mother();</b></p><p> MonFa_c=1;</p><p><b> }</b></p
62、><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(Father_lag==true) //只有Father處于等待,調(diào)用</p><p><b>
63、{</b></p><p> Father_lag=false;</p><p><b> Father();</b></p><p> MonFa_c=0;</p><p><b> }</b></p><p> else if(Mother_lag=
64、=true)//只有Mother處于等待,調(diào)用</p><p><b> {</b></p><p> Mother_lag=false;</p><p><b> Mother();</b></p><p> MonFa_c=0;</p><p><b>
65、 }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> break;</b></p><p><b> case 3:</b></p><p> c
66、out<<"Son2調(diào)用."<<endl;</p><p> if(orange==0)</p><p><b> {</b></p><p> Son2_lag=true; //Son2處于等待</p><p><b> Print();</b>
67、;</p><p> if(Son1_lag==false)</p><p><b> Son_a=2;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</
68、b></p><p><b> Son2();</b></p><p> if((Father_lag==true)&&(Mother_lag==true))</p><p><b> {</b></p><p> if(MonFa_c==1)//Father和Moth
69、er同時(shí)處于等待,但Father先等待,因此先調(diào)用</p><p><b> {</b></p><p> Father_lag=false;</p><p><b> Father();</b></p><p> MonFa_c=2;</p><p><b&g
70、t; }</b></p><p> else //Father和Mother同時(shí)處于等待,但Mother先等待,因此先調(diào)用</p><p><b> {</b></p><p> Mother_lag=false;</p><p><b> Mother();</b>&l
71、t;/p><p> MonFa_c=1;</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>&l
72、t;p> if(Father_lag==true) //只有Father處于等待,調(diào)用Father</p><p><b> {</b></p><p> Father_lag=false;</p><p><b> Father();</b></p><p> MonFa_c=
73、0;</p><p><b> }</b></p><p> else if(Mother_lag==true) //只有Mother處于等待,調(diào)用Mother</p><p><b> {</b></p><p> Mother_lag=false;</p><p&g
74、t;<b> Mother();</b></p><p> MonFa_c=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b
75、> break;</b></p><p><b> case 4:</b></p><p> cout<<"Daughter1調(diào)用."<<endl;</p><p> if(apple==0)</p><p><b> {</b>
76、;</p><p> Daughter1_lag=true; //Daughter1等待</p><p><b> Print();</b></p><p> if(Daughter2_lag==false)</p><p> Daughter_b=1;</p><p><b>
77、; }</b></p><p><b> else</b></p><p><b> {</b></p><p> Daughter1(); </p><p> if((Father_lag==true)&&(Mother_lag==true))</p&g
78、t;<p><b> {</b></p><p> if(MonFa_c==1) //Father和Mother同時(shí)處于等待,但Father先等待,因此先調(diào)用</p><p> { </p><p> Father_lag=false;</p><p><b>
79、 Father();</b></p><p> MonFa_c=2;</p><p><b> }</b></p><p> else //Father和Mother同時(shí)處于等待,但Mother先等待,因此先調(diào)用</p><p><b> {</b></p>&
80、lt;p> Mother_lag=false;</p><p><b> Mother();</b></p><p> MonFa_c=1;</p><p><b> }</b></p><p><b> }</b></p><p>&l
81、t;b> else</b></p><p><b> {</b></p><p> if(Father_lag==true) //只有Father處于等待,調(diào)用</p><p><b> {</b></p><p> Father_lag=false;</p>
82、;<p><b> Father();</b></p><p> MonFa_c=0;</p><p><b> }</b></p><p> else if(Mother_lag==true) //只有Mother處于等待,調(diào)用</p><p><b> {&l
83、t;/b></p><p> Mother_lag=false;</p><p><b> Mother();</b></p><p> MonFa_c=0;</p><p><b> }</b></p><p><b> }</b>&l
84、t;/p><p><b> }</b></p><p><b> break;</b></p><p><b> case 5:</b></p><p> cout<<"Daughter2調(diào)用."<<endl;</p>
85、;<p> if(apple==0)</p><p><b> {</b></p><p> Daughter2_lag=true;//Daughter2等待</p><p> Print();</p><p> if(Daughter1_lag==false)</p>
86、<p> Daughter_b=2;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> Daughter2();</p><p> if((Fa
87、ther_lag==true)&&(Mother_lag==true))</p><p><b> {</b></p><p> if(MonFa_c==1) //Father和Mother同時(shí)處于等待,但Father先等待,因此先調(diào)用</p><p><b> {</b></p>&
88、lt;p> Father_lag=false;</p><p><b> Father();</b></p><p> MonFa_c=2;</p><p><b> }</b></p><p> else //Father和Mother同時(shí)處于等待,但Mother先等待,因此先
89、調(diào)用</p><p><b> { </b></p><p> Mother_lag=false;</p><p><b> Mother();</b></p><p> MonFa_c=1;</p><p><b> }</b></p
90、><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> if(Father_lag==true) //只有Father處于等待,調(diào)用</p><p><b>
91、 { </b></p><p> Father_lag=false;</p><p><b> Father();</b></p><p> MonFa_c=0;</p><p><b> }</b></p><p> else if(Mother_l
92、ag==true) //只有Mother處于等待,調(diào)用</p><p><b> { </b></p><p> Mother_lag=false;</p><p><b> Mother();</b></p><p> MonFa_c=0;</p><p>
93、<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> break;</b></p><p> } //switch語句結(jié)束</p><p> }
94、 //for語句結(jié)束</p><p> } //main函數(shù)結(jié)束</p><p> void Print() //Print函數(shù)(打印盤子剩余水果及各進(jìn)程等待狀態(tài))</p><p><b> {</b></p><p> cout<<"現(xiàn)在盤子里有"<<appl
95、e<<"個(gè)蘋果,"<<orange<<"個(gè)橘子,"<<"共有"<<apple+orange<<"個(gè)水果."<<endl;</p><p> if(Father_lag==true)</p><p> cout<<
96、"Father進(jìn)程處于等待狀態(tài),";</p><p> if(Mother_lag==true)</p><p> cout<<"Mother進(jìn)程處于等待狀態(tài),";</p><p> if(Son1_lag==true)</p><p> cout<<"Son1
97、進(jìn)程處于等待狀態(tài),";</p><p> if(Son2_lag==true) </p><p> cout<<"Son2進(jìn)程處于等待狀態(tài), ";</p><p> if(Daughter1_lag==true)</p><p> cout<<"Daughter1進(jìn)程處于
98、等待狀態(tài),";</p><p> if(Daughter2_lag==true)</p><p> cout<<"Daughter2進(jìn)程處于等待狀態(tài),";</p><p> if(((Father_lag==false)&&(Mother_lag==false)&&(Son1_lag==
99、false)&&(Son2_lag==false)&&(Daughter1_lag==false)&&(Daughter2_lag==false))!=true)</p><p> cout<<endl;</p><p><b> }</b></p><p> void Fath
100、er() //Father進(jìn)程</p><p> {apple++;</p><p><b> Print();</b></p><p><b> }</b></p><p> void Mother() //Mother進(jìn)程</p><p><b>
101、 {</b></p><p><b> orange++;</b></p><p><b> Print();</b></p><p><b> }</b></p><p> void Son1() //Son1進(jìn)程</p><p&g
102、t; {orange--;</p><p><b> Print();</b></p><p><b> }</b></p><p> void Son2() //Son2進(jìn)程</p><p> {orange--;</p><p><b> Pr
103、int();</b></p><p><b> }</b></p><p> void Daughter1() //Daughter1進(jìn)程</p><p> {apple--;</p><p><b> Print();</b></p><p><
104、;b> }</b></p><p> void Daughter2() //Daughter2進(jìn)程</p><p><b> {</b></p><p><b> apple--;</b></p><p><b> Print();</b><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計(jì)--蘋果問題
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告—多進(jìn)程同步橘子蘋果問題
- 操作系統(tǒng)課程設(shè)計(jì)——操作系統(tǒng)課程設(shè)計(jì)模擬操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 《操作系統(tǒng)》課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告-讀者寫著問題
- 操作系統(tǒng)課程設(shè)計(jì)-- 操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告2014217151
- 《操作系統(tǒng)原理》課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告2
- 操作系統(tǒng)程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告-操作系統(tǒng)模擬實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論