【文章內容簡介】
程 序 , 銀 行 家 算 法B a n k ( ) 結 束 ;A V A I L A B L E [ I ] = R E Q U E S T [ I ] ;A L L O C A T I O N [ I ] = R E Q U E S T [ I ] ;N E E D [ I ] + = R E Q U E S T [ I ];安 全 性 算 法 S a f e ( ) 開 始W o r k = A V A I L A B L E ;F I N I S H = f a l s e ;N E E D [ I ] = W o r k amp。 amp。F I N I S H [ I ] = f a l s e ;W o r k + = A L L O C A T I O N [ I ] ;F I N I S H [ I ] = t u r e ;所 有 進 程 的F I N I S H = t r u e ;安 全 , 輸 出 安 全 序 列R e t u r n t u r e ;輸 入 提 示 : 系 統(tǒng) 時不 安 全 的安 全 算 法 S a f e ( ) 結 束圖 內蒙古工業(yè)大學操作系統(tǒng)課程設計 7 第三章 程序運行結果及分析 3. 1 程序運行結果 ( 1)初始化界面 ( 2)檢測系統(tǒng)資源分配是否安全(若安全,輸入安全序列) 圖 圖 圖 內蒙古工業(yè)大學操作系統(tǒng)課程設計 8 3. 2 程序分析 本程序依靠鍵盤輸入初始化系統(tǒng)資源數量及種類,有銀行家算法檢驗系統(tǒng)資源是否安全,輸出安全序列。提出請求 REQUEST[i],同意分配,則進行安全性算法 Safe(),否則輸出提示:請求被拒絕。直到所有進程 FINISH=true,安全且輸出安全序列,安全算法 Safe()結束。 內蒙古工業(yè)大學操作系統(tǒng)課程設計 9 第四章 心得體會 通過本次的課程設計,使我能夠正確運用操作系統(tǒng)課程中所學的基本理論和知識。操作系統(tǒng)的基本特征是并發(fā)與共享。系統(tǒng)允許多個進程并發(fā)執(zhí)行,并且共享系統(tǒng)的軟、硬件資源。為了最大限度的利用計算機系統(tǒng)的資源,操作系統(tǒng)應采用動態(tài)分配的策略,但是這樣就容易因資源不足,分配不當而引起“死鎖”。而我本次課程設計就是得用銀行家算法來避免“死鎖”。銀行家算法是一個分配資源的過程,是分配的序列不會產生死鎖。此算法的中心思想是:按該法分配資源時,每次分配后總存在著一個進程,如果讓它單獨運行下去,必然可以獲得它所需要的全部資源,也就是說, 它能結束,而它結束后可以歸還這類資源以滿足其他申請者的需要。本次程序就是按照上面的思路展開的。但是因為時間上的倉促,本課程設計存在以下不足:一、不能實現并發(fā)操作,即當總資源同時滿足幾個進程所需要的資源數時,這些進程不能同時進行,只能一一按進程順序執(zhí)行。二、掃描進程順序單一,只能按進程到來的順序來掃描,從而產生的安全序列只能是在這個順序的基礎上產生的,而其實安全序列是有多個的。三、對進程數和資源數進行的數量進行了限制,都只能最多有十個。四、運行程序后,界面較差,進程數,所需要資源數,已分配資源數,能用資源數, 不能一目了然。設計一個軟件,先要做好需求分析,這一點很重要,如果沒有分析好需求,到軟件設計的最后,發(fā)現所做的功能不符合要求,那么一切都得重做。還有比較重要的是,畫好程流程圖。在編程和調試的過程中,經常會出現意想不到的問題,并非每個問題都可以從相關資料中找到解決方法,有些問題是無法預料到的,這就需要通過自己理性的分析得出問題的解決方案。在設計過程中,查詢了不少相關資料,不斷的發(fā)現問題、提出問題、解決問題。總的來說通過這次的設計的學習使我學到了很多在平時的學習中學不到的很多東西,通過這次課程設計,使我學到了很多 的實用性知識。除了更深的了解這個算法,而且對 C 語言進行了復習,而且其過程中有很多的知識點都不記得了,所以在此感謝在此過程中幫助過我的老師和同學。 內蒙古工業(yè)大學操作系統(tǒng)課程設計 10 參考文獻 [1] 張堯學編.計算機操作系統(tǒng)教程(第三版)習題解答與實驗指導.北京 :清華 大學出版社 , 2021 [2] 湯子瀛主編.計算機操作系統(tǒng)(第三版).西安 :西安電子科技大學出版社 , 2021 [3] CSDN 論壇. [4] 張麗芬等編.操作系統(tǒng)實驗教程.北京 :清華大學出版社, 2021 內蒙古工業(yè)大學操作系統(tǒng)課程設計 11 附錄 程序清單 include iostream using namespace