操作系統(tǒng)課程設(shè)計(jì)報(bào)告—銀行家算法_第1頁(yè)
已閱讀1頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  銀行家算法實(shí)現(xiàn)</b></p><p><b>  概述 </b></p><p>  所謂死鎖: 是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中,因爭(zhēng)奪資源而造成的一種僵局,當(dāng)進(jìn)程處于這種僵局狀態(tài)時(shí),若無(wú)外力作用,它們都將無(wú)法再向前推進(jìn)。這就給計(jì)算機(jī)系統(tǒng)帶來(lái)了問(wèn)題,銀行家算法就是一個(gè)避免死鎖的算法。</p>

2、<p>  我們可以把操作系統(tǒng)看作是銀行家,操作系統(tǒng)管理的資源相當(dāng)于銀行家管理的資金,進(jìn)程向操作系統(tǒng)請(qǐng)求分配資源相當(dāng)于用戶向銀行家貸款。操作系統(tǒng)按照銀行家制定的規(guī)則給進(jìn)程分配資源,當(dāng)進(jìn)程首次申請(qǐng)資源時(shí),要測(cè)試該進(jìn)程對(duì)資源的最大需求量,如果系統(tǒng)現(xiàn)存的資源可以滿足它的最大需求量則按當(dāng)前的申請(qǐng)量分配資源,否則就推遲分配。</p><p>  當(dāng)進(jìn)程在執(zhí)行中繼續(xù)申請(qǐng)資源時(shí),先測(cè)試該進(jìn)程已占用的資源數(shù)與本次申請(qǐng)的

3、資源數(shù)之和是否超過(guò)了該進(jìn)程對(duì)資源的最大需求量;若超過(guò)則拒絕分配資源,若沒(méi)有超過(guò)則再測(cè)試系統(tǒng)現(xiàn)存的資源能否滿足該進(jìn)程尚需的最大資源量,若能滿足則按當(dāng)前的申請(qǐng)量分配資源,否則也要推遲分配。</p><p><b>  二、設(shè)計(jì)目的</b></p><p>  1、理解銀行家算法;</p><p>  2、掌握進(jìn)程安全性檢查的方法及資源分配的方法;&

4、lt;/p><p>  3、加深了解有關(guān)資源申請(qǐng)、避免死鎖等概念;</p><p>  4、體會(huì)和了解死鎖和避免死鎖的具體實(shí)施方法。</p><p><b>  三、設(shè)計(jì)內(nèi)容</b></p><p>  用C++語(yǔ)言編寫(xiě)并調(diào)試一個(gè)銀行家算法,簡(jiǎn)單模擬動(dòng)態(tài)分配,觀察死鎖產(chǎn)生的條件,學(xué)習(xí)如何有效的防止和避免死鎖的發(fā)生,掌握安全性

5、算法。</p><p>  四、開(kāi)發(fā)環(huán)境:Microsoft visual C++ 6.0</p><p><b>  五、設(shè)計(jì)思路</b></p><p>  1、銀行家算法中的數(shù)據(jù)結(jié)構(gòu)</p><p>  (1)、可利用資源向量Available。這是一個(gè)含有m個(gè)元素的數(shù)組,其中的每一個(gè)元素代表一類可利用的資源數(shù)目,

6、其初始值是系統(tǒng)中所配置的該類全部可用資源的數(shù)目,其數(shù)值隨該類資源的分配和回收而動(dòng)態(tài)地改變。如果Available [j]= K,則表示系統(tǒng)中現(xiàn)有R類資源K個(gè)</p><p> ?。?)、最大需求矩陣Max。這是一個(gè)n*m的矩陣,它定義了系統(tǒng)中n個(gè)進(jìn)程對(duì)m類資源的最大需求。如果Max[i,j]=K,則表示進(jìn)程i需要R類資源的數(shù)目為K。</p><p> ?。?)、分配矩陣Allocation

7、。這也是一個(gè)n*m的矩陣,它定義了系統(tǒng)中每一類資源當(dāng)前已分配給每一進(jìn)程的資源數(shù)。如果Allocation [i,j]=K,則表示進(jìn)程i當(dāng)前已分得R類資源的數(shù)目為K。</p><p>  (4)、需求矩陣Need[][]。這也是一個(gè)n*m的矩陣,用以表示每一個(gè)進(jìn)程尚需的各類資源數(shù)。如果Need [i,j]=K,則表示進(jìn)程i還需要R類資源K個(gè),才能完成其任務(wù)。</p><p>  上述矩陣存在

8、關(guān)系:Need[i,j]= Max[i,j]﹣Allocation[i,j]</p><p><b>  2、銀行家算法</b></p><p>  設(shè)Requesti是進(jìn)程Pi的請(qǐng)求向量,Requesti=K表示進(jìn)程Pi需要K個(gè)j類資源。Pi發(fā)出資源請(qǐng)求后,按下列步驟進(jìn)行檢查:</p><p> ?。?)、如果requesti[j]≤need

9、[i,j],轉(zhuǎn)向步驟(2);否則認(rèn)為錯(cuò)誤,所需要的資源數(shù)已超過(guò)它所宣布的最大值。</p><p>  (2)、如果requesti[j]≤available[j],轉(zhuǎn)向步驟(3);否則,表示尚無(wú)足夠資源,Pi需等待。</p><p> ?。?)、系統(tǒng)嘗試將資源分配給進(jìn)程Pi,并修改下面數(shù)據(jù)結(jié)構(gòu)中的數(shù)值:</p><p>  Available[j]:=Availab

10、le[j]-Requesti[j];</p><p>  Allocation[i,j]:=Allocation[i,j]+ Requesti[j];</p><p>  Need[i,j]:=Need[i,j]- Requesti[j];</p><p> ?。?)、執(zhí)行安全性算法,檢查此次資源分配后,系統(tǒng)是否出于安全狀態(tài)。若安全, 才正式將資源分配給進(jìn)程Pi,已

11、完成本次分配;否則,將本次試探分配作廢,恢復(fù)原來(lái)的資源分配狀態(tài),讓Pi等待。</p><p><b>  3、安全性檢查算法</b></p><p> ?。?)、設(shè)置兩個(gè)向量:</p><p> ?、?、工作向量work:表示系統(tǒng)可提供給進(jìn)程繼續(xù)運(yùn)行所需的各類資源數(shù)目,執(zhí)行安全性算法開(kāi)始時(shí)work:=available。</p>&

12、lt;p> ?、凇inish標(biāo)志:表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運(yùn)行完成。初始化finish[i]:=false;有足夠資源分配給進(jìn)程時(shí),令finish[i]:=true。</p><p> ?。?)、從進(jìn)程集合中找到一個(gè)能滿足下述條件的進(jìn)程</p><p>  ①finish[i]=false; </p><p> ?、贜eed[i,j]≤wor

13、k[j];找到執(zhí)行步驟(3),否則執(zhí)行步驟(4)。</p><p>  (3)、當(dāng)進(jìn)程Pi獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行:</p><p>  Work[j]:=work[i]+allocation[i,j];</p><p>  Finish[i]:=true;</p><p>  Go to step

14、②;</p><p>  (4)、如果所有進(jìn)程的finish[i]=true都滿足,則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)。</p><p><b>  六、概要設(shè)計(jì)</b></p><p><b>  1、主要代碼:</b></p><p>  #define False 0</p

15、><p>  #define True 1</p><p>  char name[50]={0};//資源名稱</p><p>  int Max[50][50]={0};//進(jìn)程所需各類資源的最大需求</p><p>  int Allocation[50][50]={0};//系統(tǒng)已分配資源</p><p>  in

16、t Need[50][50]={0};//進(jìn)程需求資源</p><p>  int Available[50]={0};//系統(tǒng)可用資源向量</p><p>  int Request[50]={0};//進(jìn)程請(qǐng)求資源向量</p><p>  int Work[50]={0};//存放系統(tǒng)可提供進(jìn)程繼續(xù)運(yùn)行所需各類資源數(shù)目</p><p> 

17、 int temp[50]={0};//存放安全序列</p><p>  int b[50]={0};//系統(tǒng)各類資源總數(shù)</p><p>  int M=50;//進(jìn)程的最大數(shù)目為50</p><p>  int N=50;//資源的最大數(shù)目為50</p><p>  void display()//系統(tǒng)初始界面</p>&l

18、t;p>  void print()//顯示資源分配情況</p><p>  int changdata(int i)//進(jìn)行資源分配</p><p>  int safe(int num,int M,int N)//安全性算法對(duì)系統(tǒng)進(jìn)行分析</p><p>  void bank(int M,int N)//銀行家算法對(duì)申請(qǐng)資源對(duì)進(jìn)行判定</p>

19、<p><b>  2、流程圖:</b></p><p> ?。?)安全性算法:</p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b></p>&l

20、t;p><b>  N</b></p><p><b>  Y</b></p><p><b>  Y</b></p><p>  Y N</p><p><b>  (2)銀行家算法:</b></p&g

21、t;<p><b>  Y</b></p><p><b>  N</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  3、調(diào)試結(jié)果</b></p&g

22、t;<p>  請(qǐng)輸入系統(tǒng)中資源的種類:3</p><p>  資源1的名稱和數(shù)量:a 10</p><p>  資源2的名稱和數(shù)量:b 5</p><p>  資源3的名稱和數(shù)量:c 7</p><p>  請(qǐng)輸入進(jìn)程的數(shù)量:5</p><p>  請(qǐng)輸入各進(jìn)程的最大需求(5*3矩陣)[Max]:<

23、;/p><p><b>  7 5 3</b></p><p><b>  3 2 2</b></p><p><b>  9 0 2</b></p><p><b>  2 2 2</b></p><p><b>  4 3

24、 3</b></p><p>  請(qǐng)輸入各進(jìn)程的已分配(5*3矩陣)[Allocation]:</p><p><b>  0 1 0</b></p><p><b>  2 0 0</b></p><p><b>  3 0 2</b></p>&l

25、t;p><b>  2 1 1</b></p><p><b>  0 0 2</b></p><p><b>  目前可用的資源:</b></p><p><b>  a b c</b></p><p><b>  3 3 2<

26、/b></p><p>  Max Allocation Need</p><p>  進(jìn)程名 a b c a b c a b c</p><p>  0 7 5 3 0 1 0 7 4 3</p><p>  1 3 2 2

27、 2 0 0 1 2 2</p><p>  2 9 0 2 3 0 2 6 0 0</p><p>  3 2 2 2 2 1 1 0 1 1</p><p>  4 4 3 3 0 0 2 4 3 1</p&g

28、t;<p><b>  系統(tǒng)是安全的!</b></p><p>  分配的序列:1->3->4->0->2</p><p>  請(qǐng)輸入要求分配的資源進(jìn)程號(hào)(0-4):1</p><p>  請(qǐng)輸入進(jìn)程 1 申請(qǐng)的資源:</p><p><b>  a:1</b>

29、</p><p><b>  b:0</b></p><p><b>  c:2</b></p><p>  Max Allocation Need</p><p>  進(jìn)程名 a b c a b c a b c</p><p&g

30、t;  0 7 5 3 0 1 0 7 4 3</p><p>  1 3 2 2 3 0 2 0 2 0</p><p>  2 9 0 2 3 0 2 6 0 0</p><p>  3 2 2 2 2 1 1

31、 0 1 1</p><p>  4 4 3 3 0 0 2 4 3 1</p><p><b>  系統(tǒng)是安全的!</b></p><p>  分配的序列:1->3->4->0->2</p><p>  請(qǐng)輸入要求分配的資源進(jìn)程號(hào)(0-4)

32、:4</p><p>  請(qǐng)輸入進(jìn)程 4 申請(qǐng)的資源:</p><p><b>  a:3</b></p><p><b>  b:3</b></p><p><b>  c:0</b></p><p>  進(jìn)程4申請(qǐng)的資源大于系統(tǒng)現(xiàn)在可利用的資源 分配

33、出錯(cuò),不予分配!</p><p>  請(qǐng)輸入要求分配的資源進(jìn)程號(hào)(0-4):0</p><p>  請(qǐng)輸入進(jìn)程 0 申請(qǐng)的資源:</p><p><b>  a:0</b></p><p><b>  b:1</b></p><p><b>  c:0</b&

34、gt;</p><p>  Max Allocation Need</p><p>  進(jìn)程名 a b c a b c a b c</p><p>  0 7 5 3 0 2 0 7 3 3</p><p>  1 3 2 2

35、 3 0 2 0 2 0</p><p>  2 9 0 2 3 0 2 6 0 0</p><p>  3 2 2 2 2 1 1 0 1 1</p><p>  4 4 3 3 0 0 2 4 3 1</p>

36、<p><b>  系統(tǒng)是安全的!</b></p><p>  分配的序列:1->3->4->0->2</p><p>  請(qǐng)輸入要求分配的資源進(jìn)程號(hào)(0-4):^A</p><p>  七、詳細(xì)設(shè)計(jì)(程序源代碼)</p><p>  #include<iostream.h>

37、;</p><p>  #include<string.h></p><p>  #define False 0</p><p>  #define True 1</p><p>  char name[50]={0};//資源名稱</p><p>  int Max[50][50]={0};//進(jìn)程所需各

38、類資源的最大需求</p><p>  int Allocation[50][50]={0};//系統(tǒng)已分配資源</p><p>  int Need[50][50]={0};//進(jìn)程需求資源</p><p>  int Available[50]={0};//系統(tǒng)可用資源向量</p><p>  int Request[50]={0};//進(jìn)

39、程請(qǐng)求資源向量</p><p>  int Work[50]={0};//存放系統(tǒng)可提供進(jìn)程繼續(xù)運(yùn)行所需各類資源數(shù)目</p><p>  int temp[50]={0};//存放安全序列</p><p>  int b[50]={0};//系統(tǒng)各類資源總數(shù)</p><p>  int M=50;//進(jìn)程的最大數(shù)目為50</p>

40、<p>  int N=50;//資源的最大數(shù)目為50</p><p>  void display()</p><p><b>  {</b></p><p>  int i,j,number,m,n;</p><p>  char ming;</p><p>  int a[50]

41、={0};</p><p>  cout<<"請(qǐng)輸入系統(tǒng)中資源的種類:";</p><p><b>  cin>>n;</b></p><p><b>  N=n;</b></p><p>  for(i=0;i<n;i++){ </p&g

42、t;<p>  cout<<"資源"<<i+1<<"的名稱和數(shù)量:";</p><p>  cin>>ming>>number;</p><p>  name[i]=ming;</p><p>  b[i]=number;</p><

43、p><b>  }</b></p><p>  cout<<"請(qǐng)輸入進(jìn)程的數(shù)量:";</p><p><b>  cin>>m;</b></p><p><b>  M=m;</b></p><p>  cout<<

44、"請(qǐng)輸入各進(jìn)程的最大需求("<<m<<"*"<<n<<"矩陣)[Max]:"<<endl;</p><p>  for(i=0;i<m;i++)</p><p>  for(j=0;j<n;j++)</p><p>  cin>&

45、gt;Max[i][j];</p><p>  cout<<"請(qǐng)輸入各進(jìn)程的已分配("<<m<<"*"<<n<<"矩陣)[Allocation]:"<<endl;</p><p>  for(i=0;i<m;i++)</p><p&g

46、t;  for(j=0;j<n;j++){</p><p>  cin>>Allocation[i][j];</p><p>  Need[i][j]=Max[i][j]-Allocation[i][j];</p><p>  if(Need[i][j]<0){</p><p>  cout<<"

47、您輸入的第"<<i+1<<"個(gè)進(jìn)程所擁有的第"<<j+1<<"個(gè)資源數(shù)錯(cuò)誤,請(qǐng)重新輸入:"<<endl;</p><p><b>  j--;</b></p><p><b>  continue;</b></p><

48、p><b>  }</b></p><p><b>  }</b></p><p>  cout<<"目前可用的資源:"<<endl;</p><p>  for(i=0;i<N;i++)</p><p>  cout<<name[

49、i]<<" ";</p><p>  cout<<endl;</p><p>  for (j=0;j<N;j++){</p><p>  for(i=0;i<M;i++){</p><p>  a[j]+=Allocation[i][j];</p><p>&

50、lt;b>  }</b></p><p>  Available[j]=b[j]-a[j];</p><p><b>  }</b></p><p>  for(i=0;i<N;i++)</p><p>  cout<<Available[i]<<" "

51、;//輸出分配資源</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  void print()//顯示資源分配情況</p><p><b>  {</b></p><p><b>  int i,j;

52、</b></p><p>  cout<<" Max Allocation Need"<<endl;</p><p>  cout<<"進(jìn)程名 ";</p><p>  for(j=0;j<3;j++){</p>

53、;<p>  for(i=0;i<N;i++)</p><p>  cout<<name[i]<<" ";</p><p>  cout<<" ";</p><p><b>  }</b></p><p>  cou

54、t<<endl;</p><p>  for(i=0;i<M;i++){</p><p>  cout<<" "<<i<<" ";</p><p>  for(j=0;j<N;j++)</p><p>  cout<<

55、;Max[i][j]<<" ";</p><p>  cout<<" ";</p><p>  for(j=0;j<N;j++)</p><p>  cout<<Allocation[i][j]<<" ";</p><p&g

56、t;  cout<<" ";</p><p>  for(j=0;j<N;j++)</p><p>  cout<<Need[i][j]<<" ";</p><p>  cout<<endl;</p><p><b>  }&l

57、t;/b></p><p><b>  }</b></p><p>  int changdata(int i)//進(jìn)行資源分配</p><p><b>  { </b></p><p><b>  int j;</b></p><p>  for

58、 (j=0;j<M;j++) {</p><p>  Available[j]=Available[j]-Request[j];</p><p>  Allocation[i][j]=Allocation[i][j]+Request[j];</p><p>  Need[i][j]=Need[i][j]-Request[j];</p><p

59、><b>  }</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  int safe(int num,int M,int N)//安全性算法對(duì)系統(tǒng)進(jìn)行分析</p><p><b>  {&

60、lt;/b></p><p>  int i,j,k=0,m,apply,Finish[5]={0};</p><p><b>  int flag;</b></p><p>  int flag1;</p><p>  for(j=0;j<M;j++)</p><p>  {

61、Work[j]=Available[j]; }</p><p>  for(flag=0;flag<M;flag++){</p><p>  for(i=0;i<M;i++){</p><p><b>  apply=0;</b></p><p>  for(j=0;j<N;j++){</p

62、><p>  if (Finish[i]==False&&Need[i][j]<=Work[j]){ </p><p>  apply++;</p><p>  if(apply==N){</p><p>  for(m=0;m<N;m++){</p><p>  Work[m]=W

63、ork[m]+Allocation[i][m];//變分配數(shù)</p><p><b>  }</b></p><p>  Finish[i]=True;</p><p>  temp[k]=i;</p><p>  k++;</p><p><b>  }</b>

64、</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  for(i=0;i<M;i++){<

65、/p><p>  if(Finish[i]==False){</p><p>  cout<<"系統(tǒng)不安全"<<endl;//不成功系統(tǒng)不安全</p><p>  for(i = 0;i<N;i++){ </p><p>  Available[i]=Available[i]+Request[

66、i];</p><p>  Allocation[num][i]=Allocation[num][i]-Request[i];</p><p>  Need[num][i]=Need[num][i]+Request[i]; </p><p><b>  }</b></p><p>  return -1;</p&g

67、t;<p><b>  }</b></p><p><b>  }</b></p><p>  cout<<"系統(tǒng)是安全的!"<<endl;//如果安全,輸出成功</p><p>  cout<<"分配的序列:";</p&g

68、t;<p>  for(i=0;i<M;i++){//輸出運(yùn)行進(jìn)程數(shù)組</p><p>  cout<<temp[i];</p><p>  if(i<M-1) cout<<"->";</p><p><b>  }</b></p><p>  

69、cout<<endl;</p><p>  for(i = 0;i<N;i++){</p><p>  if(Max[num][i] == Allocation[num][i])</p><p>  { flag1 = 1; }</p><p><b>  else{</b></p>

70、;<p>  flag1 = 0;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(flag1 == 1){</p><p>  

71、for(i=0;i<N;i++){</p><p>  Available[i] = Available[i] + Allocation[num][i];</p><p>  Allocation[num][i] = 0;</p><p><b>  }</b></p><p><b>  }&l

72、t;/b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void bank(int M,int N)//銀行家算法對(duì)申請(qǐng)資源對(duì)進(jìn)行判定</p><p><b>  {</b></p>&

73、lt;p><b>  char ch;</b></p><p>  int i=0,j=0;</p><p><b>  ch='y';</b></p><p>  cout<<"請(qǐng)輸入要求分配的資源進(jìn)程號(hào)(0-"<<M-1<<"):&

74、quot;; </p><p>  cin>>i;//輸入須申請(qǐng)的資源號(hào)</p><p>  cout<<"請(qǐng)輸入進(jìn)程 "<<i<<" 申請(qǐng)的資源:"<<endl;</p><p>  for(j=0;j<N;j++){</p><p>

75、  cout<<name[j]<<":";</p><p>  cin>>Request[j];//輸入需要申請(qǐng)的資源</p><p><b>  }</b></p><p>  for (j=0;j<N;j++){</p><p>  if(Request[

76、j]>Need[i][j]){//判斷申請(qǐng)是否大于需求,若大于則出錯(cuò) </p><p>  cout<<"進(jìn)程 "<<i<<"申請(qǐng)的資源大于它需要的資源";</p><p>  cout<<" 分配不合理,不予分配!"<<endl;</p><

77、;p><b>  ch='n';</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else {</b></p><p>  if(Request[j]>

78、;Available[j]){//判斷申請(qǐng)是否大于當(dāng)前資源,若大于則出錯(cuò) </p><p>  cout<<"進(jìn)程"<<i<<"申請(qǐng)的資源大于系統(tǒng)現(xiàn)在可利用的資源";</p><p>  cout<<" 分配出錯(cuò),不予分配!"&l

79、t;<endl;</p><p><b>  ch='n';</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p&

80、gt;<b>  }</b></p><p>  if(ch=='y') {</p><p>  changdata(i);//根據(jù)進(jìn)程需求量變換資源</p><p>  print();//根據(jù)進(jìn)程需求量顯示變換后的資源</p><p>  safe(i,M,N);//根據(jù)進(jìn)程需求量進(jìn)行銀行家算法判斷&

81、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  int i;</b></p>

82、<p>  display();</p><p><b>  print();</b></p><p>  safe(0,M,N);</p><p>  for(i=0;i<M;i++)</p><p>  { bank(M,N); }</p><p><b>

83、  print();</b></p><p><b>  }</b></p><p><b>  八、實(shí)驗(yàn)心得</b></p><p>  設(shè)計(jì)中利用二維數(shù)組作為基本的數(shù)據(jù)結(jié)構(gòu)用以存儲(chǔ)資源及進(jìn)程信息,利用safe()函數(shù)來(lái)判斷進(jìn)程執(zhí)行是否安全,通過(guò)二維數(shù)組和safe()函數(shù)很好的解決了進(jìn)程的存儲(chǔ)及撤銷問(wèn)題。&l

84、t;/p><p>  通過(guò)在老師的幫助下引發(fā)了對(duì)于safe()的思考,實(shí)驗(yàn)中我使用當(dāng)一個(gè)進(jìn)程不滿足安全狀態(tài)時(shí)緊接著查找它的下一個(gè)進(jìn)程,若下一個(gè)進(jìn)程滿足則給予分配資源,然后又返回從頭開(kāi)始才找滿足安全狀態(tài)的進(jìn)程,經(jīng)過(guò)老師的講解我知道還可以按照進(jìn)程的編號(hào)從小到大一次下循環(huán)查找,直到進(jìn)程執(zhí)行完畢。</p><p>  不同的算法可以實(shí)現(xiàn)相同的功能,這是我從本次實(shí)驗(yàn)中深深體會(huì)到的,因而在今后的學(xué)習(xí)中遇到

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論