計算機操作系統(tǒng)課程設(shè)計避免死鎖預(yù)習(xí)報告_第1頁
計算機操作系統(tǒng)課程設(shè)計避免死鎖預(yù)習(xí)報告_第2頁
計算機操作系統(tǒng)課程設(shè)計避免死鎖預(yù)習(xí)報告_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

計算機操作系統(tǒng)課程設(shè)計預(yù)習(xí)報告設(shè)計題目:死鎖避免——銀行家算法的模擬實現(xiàn)思路和算法思想思路本題目的簡化假設(shè)是:1、程序運行開始時,資源全部可用。資源種類約10種,每種資源數(shù)目為1~10。2、不斷隨機產(chǎn)生或手工輸入新的“進(jìn)程資源需求向量”,并填寫到最大需求矩陣。3、在各進(jìn)程的最大需求數(shù)量范圍內(nèi)(因此需作是否超出范圍的檢驗),為各進(jìn)程隨機生成或手工輸入資源請求。經(jīng)銀行家算法后輸出系統(tǒng)是否安全的信息。當(dāng)一個進(jìn)程的資源請求全部發(fā)完后,認(rèn)為它結(jié)束。通過編寫和調(diào)試一個系統(tǒng)動態(tài)分配資源的簡單模擬程序,觀察死鎖產(chǎn)生的條件,并采用適當(dāng)?shù)乃惴?,有效地防止和避免死鎖地發(fā)生。要求如下:(1)

模擬一個銀行家算法;(2)

初始化時讓系統(tǒng)擁有一定的資源,資源種類約10種,每種資源數(shù)目為1~10;(3)

用鍵盤輸入的方式申請資源;(4)

如果預(yù)分配后,系統(tǒng)處于安全狀態(tài),則修改系統(tǒng)的資源分配情況;(5)

如果預(yù)分配后,系統(tǒng)處于不安全狀態(tài),則提示不能滿足請求,設(shè)計的主要內(nèi)容是模擬實現(xiàn)動態(tài)資源分配。同時編寫和調(diào)試一個系統(tǒng)動態(tài)資源的簡單模擬程序,觀察死鎖產(chǎn)生的條件,并使用適當(dāng)?shù)乃惴ǎ行У姆乐购捅苊馑梨i的發(fā)生。二、算法思想銀行家算法.顧名思義是來源于銀行的借貸業(yè)務(wù),一定數(shù)量的本金要應(yīng)多個客戶的借貸周轉(zhuǎn),為了防止銀行加資金無法周轉(zhuǎn)而倒閉,對每一筆貸款,必須考察其是否能限期歸還。在操作系統(tǒng)中研究資源分配策略時也有類似問題,系統(tǒng)中有限的資源要供多個進(jìn)程使用,必須保證得到的資源的進(jìn)程能在有限的時間內(nèi)歸還資源,以供其他進(jìn)程使用資源。如果資源分配不得到就會發(fā)生進(jìn)程循環(huán)等待資源,則進(jìn)程都無法繼續(xù)執(zhí)行下去的死鎖現(xiàn)象。把一個進(jìn)程需要和已占有資源的情況記錄在進(jìn)程控制中,假定進(jìn)程控制塊PCB其中“狀態(tài)”有就緒態(tài)、等待態(tài)和完成態(tài)。當(dāng)進(jìn)程在處于等待態(tài)時,表示系統(tǒng)不能滿足該進(jìn)程當(dāng)前的資源申請?!百Y源需求總量”表示進(jìn)程在整個執(zhí)行過程中總共要申請的資源量。顯然,,每個進(jìn)程的資源需求總量不能超過系統(tǒng)擁有的資源總數(shù),銀行算法進(jìn)行資源分配可以避免死鎖.1.銀行家算法:

設(shè)進(jìn)程i提出請求Request[n],則銀行家算法按如下規(guī)則進(jìn)行判斷。

(1)如果Request[n]>Need[i,n],則報錯返回。

(2)如果Request[n]>Available,則進(jìn)程i進(jìn)入等待資源狀態(tài),返回。

(3)假設(shè)進(jìn)程i的申請已獲批準(zhǔn),于是修改系統(tǒng)狀態(tài):

Available=Available-Request

Allocation=Allocation+Request

Need=Need-Request

(4)系統(tǒng)執(zhí)行安全性檢查,如安全,則分配成立;否則試探險性分配作廢,系統(tǒng)恢復(fù)原狀,進(jìn)程等待。

2.安全性檢查

(1)設(shè)置兩個工作向量Work=Available;Finish[M]=False

(2)從進(jìn)程集合中找到一個滿足下述條件的進(jìn)程,

Finish[i]=False

Need<=Work

如找到,執(zhí)行(3);否則,執(zhí)行(4)

(3)設(shè)進(jìn)程獲得資源,可順利執(zhí)行,直至完成,從而釋放資源。

Work=Work+Allocation

Finish=True

GOTO2

(4)如所有的進(jìn)程Finish[M]=true,則表示安全;否則系統(tǒng)不安全。3.數(shù)據(jù)結(jié)構(gòu)#defineFalse0#defineTrue1intMax[100][100]={0};//各進(jìn)程所需各類資源的最大需求intAvaliable[100]={0};//系統(tǒng)可用資源charname[100]={0};//資源的名稱intAllocation[100][100]={0};//系統(tǒng)已分配資源intNeed[100][100]={0};//還需要資源intRequest[100]={0};//請求資源向量inttemp[100]={0};//存放安全序列intWork[

溫馨提示

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

評論

0/150

提交評論