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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  操作系統(tǒng)</b></p><p><b>  課程設(shè)計(jì)說(shuō)明書(shū)</b></p><p>  題目: 銀行家算法模擬 </p><p>  2013年 1月 9日</p><p>  課程設(shè)計(jì)(論文)任務(wù)書(shū)</p>&l

2、t;p>  計(jì)算機(jī)科學(xué)與工程學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系 </p><p>  2013年 1月 9日</p><p><b>  摘 要</b></p><p>  銀行家算法是一個(gè)用來(lái)預(yù)防系統(tǒng)進(jìn)入死鎖狀態(tài)的算法,用它可以判斷系統(tǒng)的安全性,如果系統(tǒng)當(dāng)前處于安全狀態(tài),則可以為申請(qǐng)資源的進(jìn)程

3、分配資源;如果不是安全狀態(tài),則不能為申請(qǐng)資源的進(jìn)程分配資源。 銀行家算法執(zhí)行過(guò)程中,首先判斷申請(qǐng)資源的進(jìn)程所申請(qǐng)的資源數(shù)目是否合法,若是合法的,則可以為其進(jìn)行試分配,再利用安全性算法求出安全序列,如果存在安全序列,則說(shuō)明可以給申請(qǐng)資源的進(jìn)程分配資源,分配成功,繼續(xù)為其它進(jìn)程服務(wù)。如果找不到安全序列,則說(shuō)明為該進(jìn)程分配資源后系統(tǒng)會(huì)進(jìn)入不安全狀態(tài),所以不能為該進(jìn)程分配資源,使該進(jìn)程進(jìn)入阻塞狀態(tài)。若申請(qǐng)資源的進(jìn)程申請(qǐng)的資源數(shù)目不合法,則不需要

4、進(jìn)行試分配,直接使其進(jìn)入阻塞狀態(tài),處理其他申請(qǐng)資源的進(jìn)程。 </p><p>  關(guān)鍵詞:可用資源,最大需求矩陣,分配矩陣,需求矩陣,安全性算法,安全序列</p><p><b>  目 錄</b></p><p><b>  1.緒論1</b></p><p><b>  1.1系統(tǒng)分

5、工1</b></p><p><b>  1.2課題背景1</b></p><p><b>  1.3死鎖1</b></p><p><b>  1.4安全性2</b></p><p>  1.5算法設(shè)計(jì)思想2</p><p>&l

6、t;b>  2.需求分析3</b></p><p><b>  2.1基本要求3</b></p><p><b>  2.2模塊劃分3</b></p><p><b>  3.總體設(shè)計(jì)4</b></p><p><b>  3.1算法設(shè)計(jì)4

7、</b></p><p><b>  3.2模塊設(shè)計(jì)5</b></p><p><b>  4.詳細(xì)設(shè)計(jì)6</b></p><p>  4.1程序流程圖6</p><p>  4.2主要函數(shù)的核心代碼6</p><p><b>  5.程序測(cè)試

8、12</b></p><p>  5.1界面設(shè)計(jì)12</p><p>  5.2數(shù)據(jù)測(cè)試13</p><p>  5.3操作提示14</p><p><b>  6.總結(jié)16</b></p><p><b>  參考文獻(xiàn)17</b></p>

9、<p><b>  1.緒論</b></p><p><b>  1.1系統(tǒng)分工</b></p><p><b>  1.2課題背景</b></p><p>  在多道程序系統(tǒng)中,雖可以借助多個(gè)進(jìn)程的并發(fā)執(zhí)行來(lái)改善系統(tǒng)的資源利用率,提高系統(tǒng)吞吐量,但可能發(fā)生一種危險(xiǎn)——死鎖,即多個(gè)進(jìn)程在運(yùn)

10、行過(guò)程中因爭(zhēng)奪資源而造成的一種僵局,若無(wú)外力作用,將無(wú)法再向前推進(jìn)。如此,尋求一種避免死鎖的方法便顯得有為重要。死鎖的產(chǎn)生一般的原因有兩點(diǎn):競(jìng)爭(zhēng)資源和進(jìn)程間推進(jìn)順序非法。因此,我們只需在當(dāng)前的有限資源下,找到一組合法的執(zhí)行順序,便能很好的避免死鎖,我們稱(chēng)它為安全序列。而銀行家算法起源于銀行系統(tǒng)的發(fā)放貸款,和計(jì)算機(jī)操作系統(tǒng)的資源分配完全符合,因此可以借鑒該算法的思想,設(shè)計(jì)出一種有效的算法程序,解決該問(wèn)題。</p><p

11、><b>  1.3死鎖</b></p><p>  所謂死鎖: 是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中,因爭(zhēng)奪資源而造成的一種互相等待的現(xiàn)象,若無(wú)外力作用,它們都將無(wú)法推進(jìn)下去。此時(shí)稱(chēng)系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這些永遠(yuǎn)在互相等待的進(jìn)程稱(chēng)為死鎖進(jìn)程。 由于資源占用是互斥的,當(dāng)某個(gè)進(jìn)程提出申請(qǐng)資源后,使得有關(guān)進(jìn)程在無(wú)外力協(xié)助下,永遠(yuǎn)分配不到必需的資源而無(wú)法繼續(xù)運(yùn)行,這就產(chǎn)生了一種特

12、殊現(xiàn)象:死鎖。</p><p>  在計(jì)算機(jī)系統(tǒng)中,涉及軟件,硬件資源都可能發(fā)生死鎖。例如:系統(tǒng)中只有一臺(tái)CD-ROM驅(qū)動(dòng)器和一臺(tái)打印機(jī),某一個(gè)進(jìn)程占有了CD-ROM驅(qū)動(dòng)器,又申請(qǐng)打印機(jī);另一進(jìn)程占有了打印機(jī),還申請(qǐng)CD-ROM。結(jié)果,兩個(gè)進(jìn)程都被阻塞,永遠(yuǎn)也不能自行解除。</p><p><b>  1.4安全性</b></p><p>  

13、全序列的的實(shí)際意義在于:系統(tǒng)每次進(jìn)行資源分配后,如果對(duì)于系統(tǒng)中新的資源狀況,存在一個(gè)安全序列,則至少存在一條確保系統(tǒng)不會(huì)進(jìn)入死鎖的路徑。按照該序列,銀行家可以實(shí)施一個(gè)有效的分配過(guò)程使得所有客戶(hù)得到滿(mǎn)足,行家算法的核心在于安全序列的產(chǎn)生。安全序列正是一種安全的進(jìn)程推進(jìn)順序。</p><p><b>  1.5算法設(shè)計(jì)思想</b></p><p>  我們可以把操作系統(tǒng)看

14、作是銀行家,操作系統(tǒng)管理的資源相當(dāng)于銀行家管理的資金,進(jìn)程向操作系統(tǒng)請(qǐng)求分配資源相當(dāng)于用戶(hù)向銀行家貸款。操作系統(tǒng)按照銀行家制定的規(guī)則為進(jìn)程分配資源,當(dāng)進(jìn)程首次申請(qǐng)資源時(shí),要測(cè)試該進(jìn)程對(duì)資源的最大需求量,如果系統(tǒng)現(xiàn)存的資源可以滿(mǎn)足它的最大需求量則按當(dāng)前的申請(qǐng)量分配資源,否則就推遲分配。當(dāng)進(jìn)程在執(zhí)行中繼續(xù)申請(qǐng)資源時(shí),先測(cè)試該進(jìn)程已占用的資源數(shù)與本次申請(qǐng)的資源數(shù)之和是否超過(guò)了該進(jìn)程對(duì)資源的最大需求量。若超過(guò)則拒絕分配資源,若沒(méi)有超過(guò)則再測(cè)試系

15、統(tǒng)現(xiàn)存的資源能否滿(mǎn)足該進(jìn)程尚需的最大資源量,若能滿(mǎn)足則按當(dāng)前的申請(qǐng)量分配資源,否則也要推遲分配。</p><p><b>  2.需求分析</b></p><p><b>  2.1基本要求</b></p><p> ?。?)從鍵盤(pán)輸入當(dāng)前系統(tǒng)的資源信息,包括當(dāng)前可用資源,每個(gè)進(jìn)程對(duì)各類(lèi)資源的最大需求量,每個(gè)進(jìn)程當(dāng)前已分配

16、的各個(gè)資源量和每個(gè)進(jìn)程尚需要的各個(gè)資源量,輸出結(jié)果顯示在界面上。 </p><p> ?。?)輸入進(jìn)程請(qǐng)求,按照設(shè)計(jì)好的安全性算法進(jìn)行檢查,得到結(jié)果并輸出整個(gè)執(zhí)行過(guò)程的相關(guān)信息和最終結(jié)果(主要包括資源分配表和安全序列)。 </p><p>  (3)要求要有各種異常的處理,程序的可控制性和可連續(xù)性執(zhí)行。包括對(duì)進(jìn)程的存在有無(wú)檢查,請(qǐng)求向量的不合法檢查,試分配失敗后的數(shù)據(jù)恢復(fù)和重新接受進(jìn)程

17、請(qǐng)求等。</p><p><b>  2.2模塊劃分</b></p><p><b> ?。?)分配模塊</b></p><p>  輸入一組資源及作業(yè)的數(shù)量,分配資源及作業(yè)的各項(xiàng)屬性。再配置作業(yè)的資源最大需求量及已申請(qǐng)的資源屬性。以及資源的添加、修改、刪除和分配功能,此外,還有對(duì)作業(yè)的添加。</p><

18、;p><b>  (2)判定模塊</b></p><p>  通過(guò)銀行家算法對(duì)已經(jīng)分配完畢的資源及作業(yè)的屬性進(jìn)行判斷,判斷申請(qǐng)是否大于需求,若大于則出錯(cuò),則提示出錯(cuò)信息;判斷申請(qǐng)是否大于當(dāng)前資源,若大于則出錯(cuò),則提示出錯(cuò)信息。</p><p><b> ?。?)檢查模塊</b></p><p>  根據(jù)銀行家算法進(jìn)行

19、資源分配后,檢查資源分配后的系統(tǒng)狀態(tài)是否處于安全狀態(tài)之中,以避免死鎖的發(fā)生。當(dāng)資源分配可行時(shí),則分配;若安全性算法不能通過(guò),則不予分配,以保證系統(tǒng)的安全和死鎖的不發(fā)生。</p><p><b>  3.總體設(shè)計(jì)</b></p><p><b>  3.1算法設(shè)計(jì)</b></p><p>  (1)銀行家算法的實(shí)現(xiàn),需要用到

20、以下主要數(shù)據(jù):</p><p>  int Max[100][100]={0};//各進(jìn)程所需各類(lèi)資源的最大需求</p><p>  int Avaliable[100]={0};//系統(tǒng)可用資源</p><p>  CString name[100]={""};//資源的名稱(chēng)</p><p>  int Allocati

21、on[100][100]={0};//系統(tǒng)已分配資源</p><p>  int Need[100][100]={0};//還需要資源</p><p>  int Request[100]={0};//請(qǐng)求資源向量</p><p>  int temp[100]={0};//存放安全序列</p><p>  int Work[100]={0}

22、;//存放系統(tǒng)可提供資源</p><p>  int M=100;//作業(yè)的最大數(shù)為100</p><p>  int N=100;//資源的最大數(shù)為100</p><p>  int dqzysl=3,zysl=0,worksl=0;</p><p><b>  int sign;</b></p><

23、;p>  a)資源及作業(yè)屬性配置:這是對(duì)資源和作業(yè)的分配過(guò)程,在實(shí)現(xiàn)銀行家算法之前,需有資源和作業(yè)的屬性信息,才可以驗(yàn)證銀行家算法及安全性算法,最終實(shí)現(xiàn)銀行家算法。</p><p>  b)銀行家算法:銀行家算法是對(duì)資源分配進(jìn)行判斷,判斷資源分配的可行性,以免導(dǎo)致死鎖的發(fā)生,是避免死鎖的重要一步。</p><p>  c) 安全性算法:安全性算法是對(duì)于安全性檢查算法主要是根據(jù)銀行家算

24、法進(jìn)行資源分配后,檢查資源分配后的系統(tǒng)狀態(tài)是否處于安全狀態(tài)之中。</p><p>  (2) 銀行家算法中用到的主要數(shù)據(jù)結(jié)構(gòu):</p><p>  可利用資源向量 int Available[j] j為資源的種類(lèi)。</p><p>  最大需求矩陣 int Max[i][j] i為進(jìn)程的數(shù)量。 </p><p> 

25、 分配矩陣 int Allocation[i][j] </p><p>  需求矩陣 int need[i][j]= Max[i][j]- Allocation[i][j] </p><p>  申請(qǐng)各類(lèi)資源數(shù)量 int Request i[j] i進(jìn)程申請(qǐng)j資源的數(shù)量 </p><p>  工作向量 in

26、t Work[x] int Finish[y]</p><p><b>  3.2模塊設(shè)計(jì)</b></p><p> ?。?)主要模塊如圖3-1。</p><p><b>  圖3-1主要模塊</b></p><p> ?。?)子模塊如圖3-2。</p><p>&l

27、t;b>  圖3-2子模快</b></p><p><b>  4.詳細(xì)設(shè)計(jì)</b></p><p><b>  4.1程序流程圖</b></p><p><b>  圖4-1系統(tǒng)流程圖</b></p><p>  4.2主要函數(shù)的核心代碼</p>

28、<p><b>  (1)添加資源</b></p><p>  此處代碼的實(shí)現(xiàn)的功能是添加資源名稱(chēng),資源數(shù)量和作業(yè)數(shù)量,并且在下一步操作后提示資源是否成功添加。由于輸入的資源數(shù)不止一個(gè),輸入的數(shù)據(jù)可能會(huì)出錯(cuò),因此這里用到了if條件語(yǔ)句和for循環(huán)語(yǔ)句。當(dāng)輸入的數(shù)據(jù)不合法時(shí),彈出對(duì)話框提示出錯(cuò)。</p><p>  void CBank123Dlg::On

29、addzy() </p><p>  {// TODO: Add your control notification handler code here</p><p>  UpdateData(TRUE);</p><p>  CString str="";</p><p>  if(dqzysl>0){</

30、p><p><b>  sign=1;</b></p><p>  for(int i=0;i<3;i++){</p><p>  if(name[i]==m_zymc && m_zymc!=""){</p><p><b>  sign=0;</b><

31、;/p><p>  str="該資源已存在!";</p><p><b>  }}</b></p><p>  if(m_zymc!="" && m_zysl!=0 && sign==1 ){</p><p>  Avaliable[3-dqzysl]=

32、m_zysl;</p><p>  name[3-dqzysl]=m_zymc;</p><p><b>  zysl++;</b></p><p>  MessageBox("數(shù)據(jù)輸入成功!若不配置資源,請(qǐng)配置作業(yè)數(shù)量!\n系統(tǒng)現(xiàn)在共有"+conver(4-dqzysl)+"個(gè)資源。\n當(dāng)前輸入資源名稱(chēng)為:&qu

33、ot;+name[3-dqzysl]+"\t數(shù)量為:"+conver(Avaliable[3-dqzysl]),"提示", MB_OK );</p><p>  dqzysl--;}</p><p>  else MessageBox("輸入數(shù)據(jù)不合法!"+str,"提示", MB_OK ); }</p&

34、gt;<p>  else MessageBox("錯(cuò)誤!當(dāng)前系統(tǒng)支持資源數(shù)目為3個(gè)!您已經(jīng)分配3個(gè)了!請(qǐng)配置作業(yè)數(shù)量!","提示", MB_ICONEXCLAMATION );</p><p>  UpdateData(FALSE);</p><p><b>  }</b></p><p&

35、gt;<b> ?。?)銀行家算法</b></p><p>  a.如果Requestj<Need or Requestj=Need,則轉(zhuǎn)向步驟b;否則,認(rèn)為出錯(cuò),因?yàn)樗枰馁Y源數(shù)已超過(guò)它所宣布的最大值。 </p><p>  b如果Request<Available or Request=Available,則轉(zhuǎn)向步驟c;否則,表示系統(tǒng)中尚無(wú)足夠的資源,進(jìn)程必須

36、等待。</p><p>  c.系統(tǒng)試探把要求的資源分配給進(jìn)程Pi,并修改下面數(shù)據(jù)結(jié)構(gòu)中的數(shù)值: Available=Available-Request[i]; Allocation=Allocation+Request; Need=Need-Request; </p><p>  d.系統(tǒng)執(zhí)行安全性算法,檢查此次資源分配后,系統(tǒng)是否處于安全狀態(tài)。</p

37、><p>  for (j=0;j<zysl;j++){</p><p>  if(Request[j]>Need[i][j]) { //判斷申請(qǐng)是否大于需求,若大于則出錯(cuò)</p><p>  msg="進(jìn)程 "+conver(i)+"申請(qǐng)的資源大于它需要的資源\n";</p><p>  ms

38、g+=" 分配不合理,不予分配!\n";</p><p>  MessageBox(msg,"提示",MB_OK);</p><p>  ch='n'; break; }</p><p>  else {if(Request[j]>Avaliable[j]){ //判斷申請(qǐng)是否大于當(dāng)前資源,若//大于則出

39、錯(cuò) </p><p>  msg="進(jìn)程"+conver(i)+"申請(qǐng)的資源大于系統(tǒng)現(xiàn)在可利用的資源\n";</p><p>  msg+=" 分配出錯(cuò),不予分配!\n";</p><p>  MessageBox(msg,"提示",MB_

40、OK);</p><p>  ch='n'; break; </p><p><b>  }}</b></p><p><b> ?。?)安全性算法</b></p><p>  a.設(shè)置兩個(gè)向量 ①工作向量Work。它表示系統(tǒng)可提供進(jìn)程繼續(xù)運(yùn)行所需要的各類(lèi)資源數(shù)目,執(zhí)行安全算

41、法開(kāi)始時(shí),Work=Allocation; ②布爾向量Finish。它表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運(yùn)行完成,開(kāi)始時(shí)先做Finish[i]=false,當(dāng)有足夠資源分配給進(jìn)程時(shí),令Finish[i]=true。</p><p>  b.從進(jìn)程集合中找到一個(gè)能滿(mǎn)足下述條件的進(jìn)程: ①Finish[i]=false ②Need<or=Work 如找到,執(zhí)行步驟c;否則,執(zhí)行步驟d。 </p>

42、;<p>  c.當(dāng)進(jìn)程P獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行: Work=Work+Allocation; Finish[i]=true; 轉(zhuǎn)向步驟b。 </p><p>  d.如果所有進(jìn)程的Finish[i]=true,則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)。 </p><p>  CString safe()//安全性算法&

43、lt;/p><p>  {int i,k=0,m,apply,Finish[100]={0};</p><p>  int j;int flag=0;CString str3;</p><p>  Work[0]=Avaliable[0];Work[1]=Avaliable[1];Work[2]=Avaliable[2];</p><p>  f

44、or(i=0;i<worksl;i++){ apply=0;</p><p>  for(j=0;j<zysl;j++){</p><p>  if (Finish[i]==False&&Need[i][j]<=Work[j]){ apply++;</p><p>  if(apply==zysl){for(m=0;m<z

45、ysl;m++)</p><p>  Work[m]=Work[m]+Allocation[i][m];//變分配數(shù)</p><p>  Finish[i]=True;temp[k]=i;i=-1; k++;flag++;</p><p><b>  } }}}</b></p><p>  for(i=0;i<w

46、orksl;i++){</p><p>  if(Finish[i]==False)</p><p>  { CString str2="系統(tǒng)不安全"; return str2;}}</p><p>  str3="系統(tǒng)是安全的!分配的序列:\n";</p><p>  for(i=0;i<wo

47、rksl;i++){//輸出運(yùn)行進(jìn)程數(shù)組</p><p>  str3=str3+conver(temp[i])+"\t";</p><p>  if(i<worksl-1) str3=str3+"->";}</p><p>  str3+="\n";return str3;}</p>

48、;<p><b> ?。?)修改資源</b></p><p>  輸入的資源可能不符合自己的需要,或者需要用到其他的資源,這時(shí)可以不必重新輸入資源數(shù)量,在原有的基礎(chǔ)進(jìn)行修改即可,此段代碼的作用就是修改資源的名稱(chēng)和數(shù)量。</p><p>  void CBank123Dlg::Onxgzy() {// TODO: Add your control noti

49、fication handler code here</p><p>  UpdateData(TRUE); </p><p>  int sign=0;</p><p>  if(m_zymc!="" && m_zysl!=0 ){</p><p>  for(int i=0;i<zysl;i++

50、){</p><p>  if(name[i]==m_zymc){</p><p>  Avaliable[i]=m_zysl;</p><p>  MessageBox("資源修改成功!","提示",MB_OK);</p><p><b>  sign=1;</b></p&

51、gt;<p>  CBank123Dlg::Onfinish();</p><p><b>  }}</b></p><p>  if(sign==0) MessageBox("資源不存在!","提示",MB_OK);}</p><p>  else MessageBox("請(qǐng)?jiān)?/p>

52、資源的名稱(chēng)和資源數(shù)量輸入合法數(shù)據(jù)!","提示",MB_OK);</p><p>  UpdateData(FALSE);}</p><p><b> ?。?)刪除資源</b></p><p>  資源不需要的時(shí)候應(yīng)該刪除,當(dāng)資源名稱(chēng)不存在和輸入的資源名稱(chēng)為空時(shí),提示重新進(jìn)行操作。</p><p&

53、gt;  void CBank123Dlg::Onsczy() {// TODO: Add your control notification handler code here</p><p>  UpdateData(TRUE);</p><p>  CString ming;</p><p>  ming=m_zymc;</p><p>

54、;  int i,flag=1,sign=0;</p><p>  if(ming!=""){</p><p>  for(i=0;i<zysl;i++){</p><p>  if(ming==name[i]){ </p><p><b>  flag=0;}</b></p>&

55、lt;p>  else sign++;}</p><p>  if(sign==zysl) MssageBox("該資源名稱(chēng)不存在,請(qǐng)重新輸入!","提示",MB_OK);</p><p>  if(flag==0){</p><p>  for(int j=i;j<zysl-1;j++){</p>

56、<p>  name[j]=name[j+1];</p><p>  Avaliable[j]=Avaliable[j+1]; }</p><p>  zysl=zysl-1;</p><p>  CBank123Dlg::Onfinish();</p><p>  CBank123Dlg::Onshow();}}</p&

57、gt;<p>  else MessageBox("資源名稱(chēng)不能為空,請(qǐng)重新輸入!","提示",MB_OK); </p><p>  UpdateData(FALSE);}</p><p> ?。?)增加資源和輸出矩陣</p><p>  資源的數(shù)量不夠時(shí),需要再次輸入,增加成功后提示下一步操作。在輸入框里輸入矩

58、陣數(shù)據(jù),然后配置資源最大需求量,可以在系統(tǒng)狀態(tài)顯示區(qū)看到系統(tǒng)狀態(tài)信息。</p><p>  void CBank123Dlg::Onzjwork() {</p><p>  UpdateData(TRUE);worksl++;</p><p>  int flag=2;</p><p>  if(m_data!=""){

59、 CString str=m_data;</p><p>  char *csInput; csInput=str.GetBuffer(str.GetLength()); </p><p>  //提取字符串,把單詞存放在數(shù)組csInput中 </p><p>  char seps[]= ","; //字符串以空

60、格分隔符 </p><p>  char *token; </p><p>  token = strtok( csInput, seps ); </p><p>  char *csEditInput[100];</p><p>  int index=0; //全局變量 </p><p>  wh

61、ile( token != NULL )</p><p>  { //把提取到的單詞存放到數(shù)組csEditIput中 </p><p>  csEditInput[index]=token; /* 把單詞存放在數(shù)組csEditInput中" */ </p><p>  index++; token = strtok( NULL, seps );</p

62、><p>  }/* Get next token: */ </p><p>  int count=0;</p><p>  for(int j=0;j<zysl;j++){</p><p>  Max[worksl-1][j]=atoi(csEditInput[count]); Need[worksl-1][j]=M

63、ax[worksl-1][j]-Allocation[worksl-1][j];</p><p>  count++; }flag=0;</p><p><b>  }</b></p><p>  else MessageBox("請(qǐng)按配置說(shuō)明在數(shù)據(jù)輸入?yún)^(qū)輸入相關(guān)矩陣數(shù)據(jù)!","提示",MB_OK);if

64、(flag==0)</p><p><b>  {</b></p><p>  MessageBox("增加作業(yè)成功!請(qǐng)點(diǎn)擊【配置信息完成】按鈕。","提示",MB_OK);}UpdateData(FALSE);</p><p><b>  5.程序測(cè)試</b></p>

65、<p><b>  5.1界面設(shè)計(jì)</b></p><p> ?。?)主界面如圖5-1。</p><p><b>  圖5-1系統(tǒng)主界面</b></p><p> ?。?)系統(tǒng)使用說(shuō)明如圖5-2。</p><p><b>  圖5-2使用說(shuō)明</b></p&g

66、t;<p><b>  5.2數(shù)據(jù)測(cè)試</b></p><p> ?。?)配置資源及作業(yè)屬性如圖5-3。輸入數(shù)據(jù)為:資源名稱(chēng)n,資源數(shù)量4,作業(yè)數(shù)量2。</p><p><b>  圖5-3資源配置</b></p><p> ?。?)配置資源最大需求量及配置已申請(qǐng)資源如圖5-4和圖5-5。</p>

67、<p>  圖5-4配置資源最大需求量</p><p>  圖5-5配置已申請(qǐng)資源</p><p>  (3)安全性算法如圖5-6。</p><p><b>  圖5-6安全性算法</b></p><p> ?。?)系統(tǒng)狀態(tài)信息如圖5-7。</p><p><b>  圖5

68、-7系統(tǒng)狀態(tài)</b></p><p><b>  5.3操作提示</b></p><p> ?。?)修改資源操作結(jié)果提示如圖5-8。</p><p><b>  圖5-8修改資源</b></p><p>  (2)分配資源成功和增加作業(yè)成功如圖5-9和圖5-10。</p>

69、<p>  圖5-9 分配資源成功 圖5-10增加作業(yè)成功</p><p> ?。?)修改資源失敗和刪除資源失敗如圖5-11和圖5-12。</p><p>  圖5-11修改資源失敗 圖5-12刪除資源失敗</p><p><b>  6.總結(jié)</b>&

70、lt;/p><p>  操作系統(tǒng)的基本特征是并發(fā)與共享。系統(tǒng)允許多個(gè)進(jìn)程并發(fā)執(zhí)行,并且共享系統(tǒng)的軟、硬件資源。為了最大限度的利用計(jì)算機(jī)系統(tǒng)的資源,操作系統(tǒng)應(yīng)采用動(dòng)態(tài)分配的策略,但是這樣就容易因資源不足,分配不當(dāng)而引起“死鎖”。而我本次課程設(shè)計(jì)就是得用銀行家算法來(lái)避免“死鎖”。銀行家算法就是一個(gè)分配資源的過(guò)程,使分配的序列不會(huì)產(chǎn)生死鎖。</p><p>  課程設(shè)計(jì)過(guò)程中我學(xué)到了很多實(shí)用性的知識(shí)

71、,除了加深自己對(duì)這個(gè)算法的理解,而且對(duì)以前的知識(shí)也做到了溫故而知新。在和同學(xué)做MFC時(shí),發(fā)現(xiàn)自己已經(jīng)忘了好多東西,因此開(kāi)始時(shí)花了很久才弄明白操作的基本步驟。在做課程設(shè)計(jì)的這段日子里,我深刻感受到唯有自己去動(dòng)手,才能了解更多的東西。在此感謝給予我?guī)椭睦蠋熀屯瑢W(xué)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]湯小丹,梁紅兵,哲鳳屏,湯子瀛.計(jì)

72、算機(jī)操作系統(tǒng).第三版.西安:西安電子科技大學(xué)出版社,2007</p><p>  [2] 譚浩強(qiáng). C程序設(shè)計(jì).第三版.北京:清華大學(xué)出版社,2005</p><p>  [3]張海藩.軟件工程導(dǎo)論.第五版.北京:清華大學(xué)出版社,2008</p><p>  [4] 馮博琴.Visual C++與面向?qū)ο蟪绦蛟O(shè)計(jì)教程.第三版. 高等教育出版社; 2010</p

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論