2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論