logo

您所在位置網站首頁 > 海量文檔  > 計算機 > 數據結構與算法

銀行家算法的設計與實現.pdf 16頁

本文檔一共被下載: ,您可全文免費在線閱讀后下載本文檔。

  • 支付并下載
  • 收藏該文檔
  • 百度一下本文檔
  • 修改文檔簡介
全屏預覽

下載提示

1.本站不保證該用戶上傳的文檔完整性,不預覽、不比對內容而直接下載產生的反悔問題本站不予受理。
2.該文檔所得收入(下載+內容+預覽三)歸上傳者、原創者。
3.登錄后可充值,立即自動返金幣,充值渠道很便利
實驗二 銀行家算法 專業:計算機科學與技術 學號:20111221249 姓名:田豐 實驗日期:2013年12月4 日 計算機操作系統實驗報告 實驗名稱:銀行家算法 一、 實驗目的: 銀行家算法是避免死鎖的一種重要方法,通過編寫一個簡單的銀 行家算法程 ,加深了解有關資源申請、避免死鎖等概念,并體會和 了解死鎖和避免死鎖的具體實施方法。 二、 問題分析與設計 1、算法思路: 先對用戶提出的請求進行合法性檢查,即檢查請求是否大于需要 的,是否大于可利用的。若請求合法,則進行預分配,對分配后的狀 態調用安全性算法進行檢查。若安全,則分配;若不安全,則拒絕申 請,恢復到原來的狀態,拒絕申請。 2、銀行家算法步驟: 1 Requesti or=Need, (2) ()如果 < 則轉向步驟 ;否則,認為出錯,因 為它所需要的資源數已超過它所宣布的最大值。 2 Request or=Available, 3 ()如果 < 則轉向步驟( );否則,表示系統 中尚無足夠的資源,進程必須等待。 3 Pi, ()系統試探把要求的資源分配給進程 并修改下面數據結構中的 數值: Available=Available-Request[i]; Allocation=Allocation+Request; Need=Need-Request; (4)系統執行安全性算法,檢查此次資源分配后,系統是否處于安全狀 1 態。 3、安全性算法步驟: (1)設置兩個向量 ①工作向量Work。它表示系統可提供進程繼續運行所需要的各類資 源數目,執行安全算法開始時,Work=Allocation; ②布爾向量Finish。它表示系統是否有足夠的資源分配給進程,使之 運行完成,開始時先做Finish[i]=false,當有足夠資源分配給進程時, 令Finish[i]=true。 (2)從進程集合中找到一個能滿足下述條件的進程: ①Finish[i]=false ②Need<or=Work 如找到,執行步驟(3);否則,執行步驟(4)。 (3)當進程P獲得資源后,可順利執行,直至完成,并釋放出分配 給它的資源,故應執行: Work=Work+Allocation; Finish[i]=true; 轉向步驟(2)。 (4)如果所有進程的Finish[i]=true,則表示系統處于安全狀態;否則, 系統處于不安全狀態。 4、流程圖: 2 1.系統主要過程流程圖 3 2.銀行家算法流程圖 4 3.安全性算法流程圖 三、 實驗代碼: 1.進程 publi classProcess { //數據成員 privateStringname; //進程名稱 privateint[]Max; //最大資源需求量 privateint[]Allocation; //已分配資源量 5 privateint[]need; //資源需

發表評論

請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名: 驗證碼: 點擊我更換圖片

“原創力文檔”前稱為“文檔投稿賺錢網”,本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。原創力文檔是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:3005833200 電話:19940600175 歡迎舉報,上傳者QQ群:784321556

凹凸网址导航