操作系統(tǒng)課程設(shè)計報告--蘋果問題_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  操作系統(tǒng)課程設(shè)計</b></p><p>  學號: </p><p>  姓名: </p><p>  專業(yè): 計算機科學與技術(shù) </p><p>  課程: 操作系統(tǒng)

2、 </p><p>  指導教師: </p><p>  時間: 2015/3/9 </p><p>  成績: </p><p><b>  目錄</b></p><p>

3、;<b>  目錄1</b></p><p>  1.設(shè)計題目與要求2</p><p><b>  1.1設(shè)計目的2</b></p><p><b>  1.2設(shè)計要求2</b></p><p>  2. 總體設(shè)計思想2</p><p>  2

4、.1總體設(shè)計思想2</p><p><b>  3. 功能設(shè)計3</b></p><p>  3.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計3</p><p><b>  3.2程序清單3</b></p><p><b>  3.3運行結(jié)果4</b></p><p> 

5、 4. 設(shè)計心得5</p><p>  5. 參考資料6</p><p><b>  附錄7</b></p><p><b>  程序源代碼:7</b></p><p><b>  一.設(shè)計題目與要求</b></p><p><b>

6、;  1.設(shè)計目的</b></p><p>  了解信號量機制,了解并掌握進程同步和互斥機制,熟悉信號量的操作函數(shù),利用信號量實現(xiàn)對資源共享的控制。</p><p>  通過實現(xiàn)吃水果問題的同步,深入了解和掌握進程同步的原理。</p><p><b>  設(shè)計要求</b></p><p>  編程模擬實現(xiàn)這一

7、問題的程序控制,分析處理過程。</p><p><b>  吃水果問題的描述:</b></p><p>  桌子上有一只盤子,最多可容納兩個水果,每次只能放入或者取出一個水果。爸爸專門向盤中放蘋果(apple),媽媽專門向盤子中放橘子(orange),兩個兒子專門等待吃盤子中的橘子,兩個女兒專門等吃盤子中的蘋果。</p><p><b&g

8、t;  二.總體設(shè)計思想</b></p><p>  1.總體設(shè)計思想流程</p><p>  這是進程同步與互斥問題的模擬,可以把向盤子放或取水果的每一個過程可以轉(zhuǎn)為一個進程的操作,這些進程是互斥的,同時也存在一定的同步關(guān)系。通過編程實踐時,實際是隨機的調(diào)用一個進程的操作,而這些進程的操作相當于程序中的函數(shù)調(diào)用。而計算機在執(zhí)行時每一個時刻只能執(zhí)行一個操作,這就是互斥的表現(xiàn)。同

9、步的模擬可以類似于函數(shù)調(diào)用時的前提關(guān)系即先決條件。這樣進程同步模擬就完全可以通過函數(shù)的調(diào)用來實現(xiàn)。</p><p>  具體的每一個操作的對應(yīng)的函數(shù)的關(guān)系:</p><p>  爸爸向盤子中放一個蘋果:Father()媽媽向盤子中放一個橘子:Mother()</p><p>  兒子1從盤子取一個橘子:Son1()兒子2從盤子取一個橘子:Son2()</p&g

10、t;<p>  女兒1從盤子取一個橘子:Daugther1()女兒2從盤子取一個橘子:Daugther2()</p><p><b>  三.功能設(shè)計</b></p><p><b>  1. 數(shù)據(jù)結(jié)構(gòu)設(shè)計</b></p><p>  (1)用一個整型變量Plate_Size表示盤子里的水果數(shù)量,初始值為0,

11、當放水果時Plate_Size加1,取水果時Plate_Size減1。變量Plate_Size的最大值為2,當為2時表示盤子已經(jīng)滿,此時若進行放水果操作,放水果將處于等待狀態(tài);為0時表示盤子為空,此時若進行取水果操作,取水果操作將處于等待狀態(tài),Plate_Size是爸爸和媽媽進行放水果的私有信號量。</p><p>  (2)整型變量orange和apple分別表示盤子中的橘子和蘋果數(shù)目,初始都為0,其中oran

12、ge是兒子的私有變量,apple是女兒的私有變量,盤子中的總水果數(shù)是 Plate_Size=apple+orange。</p><p>  (3)用6個bool型的變量 Father_lag,Mother_lag,Son1_lag,Son2_lag,Daughter1_lag,Daughter2_lag表示六個進程是否處于等待狀態(tài)。處于等待時,變量值為true。</p><p>  (4)

13、兩個放水果進程同時處于等待狀態(tài)時,若有取水果的操作將自動執(zhí)行等待的放水果進程,執(zhí)行按等待的先后順序自動調(diào)用;兩個取蘋果或橘子進程同時候處于等待狀態(tài),若有放蘋果或橘子的操作將自動執(zhí)行等待的取進程,進行按等待的先后順序自動調(diào)用。</p><p>  (5)用一個隨機的函數(shù)產(chǎn)生0—5的6個整數(shù),分別對應(yīng)六個進程的調(diào)用。</p><p><b>  2.程序清單</b><

14、;/p><p><b>  (1)主函數(shù)</b></p><p>  用一個隨機的函數(shù)產(chǎn)生0—5的6個整數(shù),即 i=rand()%6,分別對應(yīng)六個進程的調(diào)用,調(diào)用的次數(shù)可以通過修改K值來實現(xiàn),for(k=0;k<10;k++),本程序共產(chǎn)生了10次隨機的調(diào)用進程。</p><p><b>  (2)6個進程函數(shù)</b>&

15、lt;/p><p>  爸爸向盤子中放一個蘋果操作:Father()</p><p>  媽媽向盤子中放一個橘子操作:Mother()</p><p>  兒子1從盤子取一個橘子操作:Son1()</p><p>  兒子2從盤子取一個橘子操作:Son2()</p><p>  女兒1從盤子取一個橘子操作:Daugther

16、1()</p><p>  女兒2從盤子取一個橘子操作:Daugther2()</p><p>  (3)Print函數(shù)</p><p>  用于輸出盤子中蘋果和橘子的個數(shù),水果總個數(shù)及哪些進程處于等待狀態(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>  父親向盤子中放進一個蘋果</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>  母親向盤子中放進一個桔子</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>  兒子從盤子中走一個桔子</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>  女兒從盤子中走一個蘋果</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. 運行結(jié)果</b></p><p><b>  四.設(shè)計心得</b></p><p>  完成本次課題首先在分析問題并把問題轉(zhuǎn)化為編程問題,對進程同步理解的比較透徹;其次我用了個隨機函數(shù)來調(diào)用相應(yīng)的進程函數(shù),這對進程間的同步和

27、等待狀態(tài)有很好的說明和十分的全面;再次我們設(shè)了六個bool型的變量來表示各進程時候處于等待狀態(tài),還設(shè)置了相應(yīng)的整型變量來解決等待進程在適當?shù)臈l件下自動調(diào)用的先后問題。</p><p>  不足之處,由于各進程調(diào)用是隨機的,在某個處于等待狀態(tài)時,可以還能被調(diào)用,事實上這不是很合理。因為處于等待狀態(tài)的進程就不可能在被分配調(diào)用。再有就是程序有些代碼部分有重的,可以把這些重復執(zhí)行的代碼寫成函數(shù),需要用時直接調(diào)用代碼函數(shù)。

28、</p><p>  這次自己的收獲還是不小,首先使我們提高了分析問題,并根據(jù)需求轉(zhuǎn)化成相應(yīng)的程序結(jié)構(gòu)的能力;其次也豐富了自己編寫程序,調(diào)試程序的經(jīng)驗,這使得我編程時可能出現(xiàn)的錯誤的認識,并如何去避免產(chǎn)生了新的認識。</p><p>  加深我了進程的理解,同時也提高了自己的編程的能力。編程是個長久的過程,平時要多去動手實踐,去提高自己分析問題、發(fā)現(xiàn)問題、解決問題的能力。</p>

29、;<p><b>  五. 參考資料</b></p><p>  [1]宗大華,宗濤,陳吉人著 操作系統(tǒng) 北京:人民郵電出版社,2009</p><p>  [2]李愛華,程磊著 面相對象程序設(shè)計(C++語言) 北京: 清華大學出版社,2010</p><p>  [3]宋曉宇 , windows操作系統(tǒng)核心編程實驗教程

30、中國鐵道出版社</p><p>  [4]張麗芬 劉利雄 王金玉編著 操作系統(tǒng)實驗教程 清華大學出版社</p><p><b>  附錄:</b></p><p><b>  程序源代碼:</b></p><p>  #include<time.h> //用到了time函數(shù)

31、,所以要有這個頭文件</p><p>  #include<stdlib.h> //用到了srand函數(shù),所以要有這個頭文件</p><p>  #include<iostream.h> </p><p>  int Plate_Size=0; //表示盤子中當前有幾個水果</p><p>  int ora

32、nge=0,apple=0; //表示盤子中orange和apple的個數(shù)</p><p>  bool Father_lag,Mother_lag,Son1_lag,Son2_lag,Daughter1_lag,Daughter2_lag; //六個進程處于等待時,變量值為true</p><p>  void main() //main()函數(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)生一個以當前時間開始的隨機種子 </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; //隨進生成6以內(nèi)的整數(shù),即0-5的6個整數(shù)</p><p&g

36、t;  Plate_Size=apple+orange;</p><p>  int MonFa_c,Daughter_b,Son_a; //for語句的局部變量,控制進程等待的優(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自動調(diào)用</p><p>  Daughter_b=2; //優(yōu)先級讓給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()自動調(diào)用</p><p>  Daughter_b=1; //優(yōu)先級讓給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()自動調(diào)用</p><p>  Daughter_b=0; //沒有等待的Dauther進程</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()自動調(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()自動調(diào)用</p><p>  Son_a=2; //優(yōu)先級讓給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()自動調(diào)用</p><p>  Son_a=1; //優(yōu)先級讓給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()自動調(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()自動調(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同時處于等待,但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同時處于等待,但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同時處于等待,但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同時處于等待,但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同時處于等待,但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同時處于等待,但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同時處于等待,但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同時處于等待,但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ù)(打印盤子剩余水果及各進程等待狀態(tài))</p><p><b>  {</b></p><p>  cout<<"現(xiàn)在盤子里有"<<appl

95、e<<"個蘋果,"<<orange<<"個橘子,"<<"共有"<<apple+orange<<"個水果."<<endl;</p><p>  if(Father_lag==true)</p><p>  cout<<

96、"Father進程處于等待狀態(tài),";</p><p>  if(Mother_lag==true)</p><p>  cout<<"Mother進程處于等待狀態(tài),";</p><p>  if(Son1_lag==true)</p><p>  cout<<"Son1

97、進程處于等待狀態(tài),";</p><p>  if(Son2_lag==true) </p><p>  cout<<"Son2進程處于等待狀態(tài), ";</p><p>  if(Daughter1_lag==true)</p><p>  cout<<"Daughter1進程處于

98、等待狀態(tài),";</p><p>  if(Daughter2_lag==true)</p><p>  cout<<"Daughter2進程處于等待狀態(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進程</p><p>  {apple++;</p><p><b>  Print();</b></p><p><b>  }</b></p><p>  void Mother() //Mother進程</p><p><b>

101、  {</b></p><p><b>  orange++;</b></p><p><b>  Print();</b></p><p><b>  }</b></p><p>  void Son1() //Son1進程</p><p&g

102、t;  {orange--;</p><p><b>  Print();</b></p><p><b>  }</b></p><p>  void Son2() //Son2進程</p><p>  {orange--;</p><p><b>  Pr

103、int();</b></p><p><b>  }</b></p><p>  void Daughter1() //Daughter1進程</p><p>  {apple--;</p><p><b>  Print();</b></p><p><

104、;b>  }</b></p><p>  void Daughter2() //Daughter2進程</p><p><b>  {</b></p><p><b>  apple--;</b></p><p><b>  Print();</b><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論