




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、武漢工程大學(xué) 計算機科學(xué)與工程學(xué)院綜合設(shè)計報告設(shè)計名稱: 操作系統(tǒng)綜合設(shè)計 設(shè)計題目: 進程死鎖 學(xué)生學(xué)號: 專業(yè)班級: 學(xué)生姓名: 學(xué)生成績: 指導(dǎo)教師(職稱): 張立(講師) 完成時間: 15年6月8日 至 15年6 月12日 武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 制說明:1、報告中的第一、二、三項由指導(dǎo)教師在綜合設(shè)計開始前填寫并發(fā)給每個學(xué)生;四、五兩項(中英文摘要)由學(xué)生在完成綜合設(shè)計后填寫。2、學(xué)生成績由指導(dǎo)教師根據(jù)學(xué)生的設(shè)計情況給出各項分值及總評成績。3、指導(dǎo)教師評語一欄由指導(dǎo)教師就學(xué)生在整個綜合設(shè)計期間的表現(xiàn)、設(shè)計完成情況、報告的質(zhì)量及答辯等方面,給出客觀、全面的評價。4、所有學(xué)生必須
2、參加綜合設(shè)計的答辯環(huán)節(jié)。凡不參加答辯者,其成績一律按不及格處理。答辯小組成員應(yīng)由2人及以上教師組成。5、報告正文字數(shù)一般應(yīng)不少于5000字,也可由指導(dǎo)教師根據(jù)本門綜合設(shè)計的情況另行規(guī)定。6、平時表現(xiàn)成績低于6分的學(xué)生,其綜合設(shè)計成績按不及格處理。7、此表格式為武漢工程大學(xué)計算機科學(xué)與工程學(xué)院提供的基本格式(適用于學(xué)院各類綜合設(shè)計),各教研室可根據(jù)本門綜合設(shè)計的特點及內(nèi)容做適當?shù)恼{(diào)整,并上報學(xué)院批準。答辯記錄表學(xué)生姓名: 學(xué)號: 班級:2 答辯地點: 計算機大樓8號機房 答辯內(nèi)容記錄:答辯成績合計分值各項分值評分標準實際得分合計得分備注2510在規(guī)定時間內(nèi)能就所設(shè)計的內(nèi)容進行闡述,言簡意明,重點
3、突出,論點正確,條理清晰。15在規(guī)定時間內(nèi)能準確、完整、流利地回答教師所提出的問題。答辯小組成員(簽字): 2015 年 6 月 12 日成績評定 類別合計分值各項分值評分標準實際得分合計得分備注平時表現(xiàn)1010遵守學(xué)習(xí)紀律,表現(xiàn)良好,積極完成綜合設(shè)計任務(wù),無曠課、遲到、早退等情況。設(shè)計完成情況3020按照要求完成設(shè)計內(nèi)容,方案合理,功能完善,設(shè)計工作量飽滿,能運用專業(yè)知識和技能去發(fā)現(xiàn)與解決實際問題。10在設(shè)計過程中展現(xiàn)出了較強的學(xué)習(xí)能力、動手實踐能力、團隊協(xié)作能力和創(chuàng)新意識。報告質(zhì)量3510報告格式規(guī)范,表述清晰,章節(jié)內(nèi)容組織恰當。符號統(tǒng)一,圖表完備,符合規(guī)范要求。參考文獻數(shù)量在5篇以上,格
4、式及引用符合要求。15報告內(nèi)容翔實,結(jié)構(gòu)嚴謹合理。課題背景介紹清楚,綜述充分。設(shè)計與實現(xiàn)等主要過程完整,論述具體透徹。能運用所學(xué)專業(yè)知識對問題加以分析和求解。無抄襲現(xiàn)象。10設(shè)計報告對整個設(shè)計過程進行了全面總結(jié),體現(xiàn)了收獲,得出了有價值的結(jié)論或結(jié)果。答辯情況2510在規(guī)定時間內(nèi)能就所設(shè)計的內(nèi)容進行闡述,言簡意明,重點突出,論點正確,條理清晰。15在規(guī)定時間內(nèi)能準確、完整、流利地回答教師所提出的問題??傇u成績指導(dǎo)教師評語指導(dǎo)教師: (簽字) 日期: 2015 年 6 月 12 日一、綜合設(shè)計目的、條件、任務(wù)和內(nèi)容要求:操作系統(tǒng)在計算機科學(xué)中是一門核心專業(yè)基礎(chǔ)課,涉及較多硬件和軟件知識。在計算機軟
5、、硬件課程的設(shè)置上,它起著承上啟下的作用。其特點是概念多、較抽象、涉及的知識面廣。操作系統(tǒng)綜合設(shè)計是計算機科學(xué)與技術(shù)專業(yè)學(xué)生的一門實踐課程,是學(xué)習(xí)完操作系統(tǒng)課程后的課程設(shè)計,本課程的教學(xué)目的是,通過學(xué)習(xí),使學(xué)生了解計算機操作系統(tǒng)的發(fā)展特點;理解操作系統(tǒng)的基本概念、組成和各部分的功能;掌握計算機操作系統(tǒng)設(shè)計的基本原理和方法;理解常見操作系統(tǒng)的結(jié)構(gòu)原理并能熟練使用。進程死鎖課題,要求學(xué)生熟悉windows中的線程及進程的創(chuàng)建,掌握利用windows中的同步機制實現(xiàn)線程同步,掌握用銀行家算法進行死鎖的避免。培養(yǎng)學(xué)生的抽象思維能力、邏輯推理能力和形式化思維方法,增強分析問題和解決問題的能力。設(shè)計任務(wù)和
6、內(nèi)容要求:利用銀行家算法實現(xiàn)進程的死鎖避免。二、進度安排:第1周(6.8-6.8) :學(xué)生熟悉課題的任務(wù)和要求,查閱相關(guān)文獻和資料,并做好編碼準備第1周(6.8-6.10) :程序編碼、調(diào)試第1周(6.10-6.11) :程序編碼、調(diào)試和測試,書寫報告 第1周(6.12) :答辯、檢查、驗收、遞交設(shè)計報告三、應(yīng)收集資料及主要參考文獻:應(yīng)收集的資料:面向?qū)ο蟪绦蛟O(shè)計思想和方法高級程序設(shè)計語言參考手冊操作系統(tǒng)、軟件工程方面參考書籍主要參考文獻:1 湯子瀛,哲鳳屏,湯小丹計算機操作系統(tǒng)m西安電子科技大學(xué)出版社,2007 2 譚浩強c語言程序設(shè)計m清華大學(xué)出版社,20103 蘇仕華數(shù)據(jù)結(jié)構(gòu)課程設(shè)計m機
7、械工業(yè)出版社,2005四、摘要:銀行家算法是一個避免死鎖的著名算法,是由艾茲格迪杰斯特拉在1965年為t.h.e系統(tǒng)設(shè)計的一種避免死鎖產(chǎn)生的算法。它以銀行借貸系統(tǒng)的分配策略為基礎(chǔ),判斷并保證系統(tǒng)的安全運行。在銀行家算法執(zhí)行過程中,首先判斷申請資源的進程所申請的資源數(shù)目是否合法,若是合法的,則可以為其進行試分配,再利用安全性算法求出安全序列,如果存在安全序列,則說明可以給申請資源的進程分配資源,分配成功,繼續(xù)為其它進程服務(wù)。如果找不到安全序列,則說明為該進程分配資源后系統(tǒng)會進入不安全狀態(tài),所以不能為該進程分配資源,使該進程進入阻塞狀態(tài)。若申請資源的進程申請的資源數(shù)目不合法,則不需要進行試分配,直
8、接使其進入阻塞狀態(tài),處理其他申請資源的進程。關(guān)鍵詞:計算機操作系統(tǒng);安全性算法;銀行家算法 五、abstract:banker algorithm is a famous algorithm to avoid deadlock, by ezra pound, dijkstra in 1965 to t.h.e system design of a kind of avoid deadlock algorithm. it is based on bank lending system allocation strategy, determine and ensure the safe opera
9、tion of the system. in the execution of a banker algorithm, first determine the number to apply for the application of the process of resources is legal, if it is legal, you can try to carry out distribution, recycling security algorithm and security sequence, if there is a safe sequence, then to ap
10、ply for the process of resource allocation of resources, distribution of success, to continue to serve other processes. if you cannot find security sequence, after the allocation of resources for the process system will enter the unsafe condition, so cant for the process allocation of resources, blo
11、cking the process into the state. if applying for the process of resource for the number of resources, illegal trial distribution is not required, and make it into the blocked state directly, to handle the applications for other resources.keywords:banker algorithm;os;security algorithm目錄摘 要 i第一章 課題概
12、述11.1 課題背景11.2 課題意義1第二章 設(shè)計簡介及設(shè)計方案論述 22.1 設(shè)計描述22.2 設(shè)計思想22.3 設(shè)計要求22.4 設(shè)計流程圖 3第三章 詳細設(shè)計43.1 銀行家算法的算法思想43.2 安全性檢查算法 43.3算法整體設(shè)計與調(diào)用 5第四章 設(shè)計結(jié)果及分析 64.1 程序輸入部分 64.3 資源分配成功結(jié)果輸出74.4 資源分配失敗結(jié)果輸出8總 結(jié)8致 謝9參考文獻10附錄:11摘 要銀行家算法是一個避免死鎖的著名算法,是由艾茲格迪杰斯特拉在1965年為t.h.e系統(tǒng)設(shè)計的一種避免死鎖產(chǎn)生的算法。它以銀行借貸系統(tǒng)的分配策略為基礎(chǔ),判斷并保證系統(tǒng)的安全運行。在銀行家算法執(zhí)行過程
13、中,首先判斷申請資源的進程所申請的資源數(shù)目是否合法,若是合法的,則可以為其進行試分配,再利用安全性算法求出安全序列,如果存在安全序列,則說明可以給申請資源的進程分配資源,分配成功,繼續(xù)為其它進程服務(wù)。如果找不到安全序列,則說明為該進程分配資源后系統(tǒng)會進入不安全狀態(tài),所以不能為該進程分配資源,使該進程進入阻塞狀態(tài)。若申請資源的進程申請的資源數(shù)目不合法,則不需要進行試分配,直接使其進入阻塞狀態(tài),處理其他申請資源的進程。關(guān)鍵詞:計算機操作系統(tǒng);安全性算法;銀行家算法 abstractbanker algorithm is a famous algorithm to avoid deadlock, b
14、y ezra pound, dijkstra in 1965 to t.h.e system design of a kind of avoid deadlock algorithm. it is based on bank lending system allocation strategy, determine and ensure the safe operation of the system. in the execution of a banker algorithm, first determine the number to apply for the application
15、of the process of resources is legal, if it is legal, you can try to carry out distribution, recycling security algorithm and security sequence, if there is a safe sequence, then to apply for the process of resource allocation of resources, distribution of success, to continue to serve other process
16、es. if you cannot find security sequence, after the allocation of resources for the process system will enter the unsafe condition, so cant for the process allocation of resources, blocking the process into the state. if applying for the process of resource for the number of resources, illegal trial
17、 distribution is not required, and make it into the blocked state directly, to handle the applications for other resources.keywords:banker algorithm;os;security algorithm第一章 課題概述1.1 課題背景在預(yù)防死鎖的各種算法中,總的來說,都是施加了較強的限制條件,從而使實現(xiàn)簡單,但卻嚴重地損害了系統(tǒng)的性能。在避免死鎖的算法中,施加的條件較較弱,有可能獲得令人滿意的系統(tǒng)性能。在該方法中把系統(tǒng)的狀態(tài)分為安全狀態(tài)和不安全狀態(tài),只要能使
18、系統(tǒng)處于安全狀態(tài),便可避免死鎖的發(fā)生。最具有代表性的避免死鎖的算法是dijkstra的銀行家算法。這是因為該算法能用于銀行系統(tǒng)現(xiàn)金貸款的發(fā)放而得名,在這一次的課程設(shè)計中就要對銀行家算法從分析到實現(xiàn),整體做一個詳細的描述。1.2 課題意義從課程設(shè)計上講,該課程設(shè)計可以提高自己的分析問題,解決問題和動手能力,并對銀行家算法有更深刻的理解。從銀行家算法上本身講,通過算法可以判斷系統(tǒng)的安全性,對申請資源的進程進行限制,從而避免系統(tǒng)進入死鎖狀態(tài)。第二章 設(shè)計簡介及設(shè)計方案論述2.1 設(shè)計描述當系統(tǒng)在進行資源管理時,如果對進城申請的資源分配不當,可能會使系統(tǒng)進入死鎖狀態(tài),因而后面到來的進程也無法順利執(zhí)行。
19、銀行家算法中,要對當前申請資源的進程申請資源的數(shù)目進行判斷,如果可以試分配,則試求出一個安全序列,如果可以求出,則說明給這個進程分配資源后系統(tǒng)不會進入不安全狀態(tài),將該進程申請的資源分配給他,若求不出安全序列,則說明將資源分配給該進程后系統(tǒng)會進入不安全狀態(tài),所以就使該進程進入阻塞狀態(tài),等待以后可以分配資源時再執(zhí)行該進程,然后系統(tǒng)繼續(xù)服務(wù)其它進程。通過這樣一個過程,可以有效避免系統(tǒng)進入死鎖狀態(tài)。2.2 設(shè)計思想在避免死鎖的算法中,允許進程動態(tài)地申請資源,系統(tǒng)在進行資源分配之前,先計算資源分配的安全性。若此次分配不會使系統(tǒng)進入不安全狀態(tài),便將資源分配給該進程否則進程等待。所謂安全狀態(tài)是指系統(tǒng)能按某種
20、順序如,就這樣來為每個進程分配資源,直至最大需求。使每個進程都可以順序地執(zhí)行完畢。若系統(tǒng)不存在這樣一個安全序列,那么系統(tǒng)此時會進入不安全狀態(tài)。雖然并非所有的不安全狀態(tài)都會產(chǎn)生死鎖狀態(tài),但當系統(tǒng)進入不安全狀態(tài)后,便可能進而進入死鎖狀態(tài);反之,只要系統(tǒng)處于安全狀態(tài),系統(tǒng)便可避免進入死鎖狀態(tài)。因此,避免死鎖的實質(zhì)在于,如何使系統(tǒng)不進入不安全狀態(tài),銀行家算法就是用來判斷某種情況會不會進入不安全狀態(tài)。2.3 設(shè)計要求(1)對各個進程的進程名,最大需求資源,已分配資源,系統(tǒng)可用資源等進行的輸入。(2)對申請資源的進程要有合法性判斷(如進程名,申請資源數(shù)等)。(3)若有進程申請資源,首先要對它申請的資源數(shù)進
21、行判斷。(4)在上面判斷合法的前提下進行試分配,利用銀行家算法求出安全序列。如果可以求出安全序列,則為該進程分配資源,否則使它進入阻塞狀態(tài)。2.4 設(shè)計流程圖開始初始化資源矩陣檢查初始狀態(tài)是否安全按用戶需求為進程分配資源檢查現(xiàn)狀態(tài)是否安全為該進程分配資源退出?結(jié)束不安全安全不安全否安全 是圖2.4 程序總體流程圖第三章 詳細設(shè)計3.1 銀行家算法的算法思想先對用戶提出的請求進行合法性檢查,即檢查請求的是不大于需要的,是否不大于可利用的。若請求合法,則進行試分配。最后對試分配后的狀態(tài)調(diào)用安全性檢查算法進行安全性檢查。若安全,則分配,否則,不分配,恢復(fù)原來狀態(tài),拒絕申請。當進程i發(fā)出申請資源請求:
22、 (1)調(diào)用分配檢查函數(shù)檢查申請量是否不大于需求量再檢查檢查申請量是否小于系統(tǒng)中的可利用資源數(shù)量:若條件不符重新輸入,不允許申請大于需求量。(2)若以上條件都滿足,則系統(tǒng)試探著將資源分配給申請的進程,并修改available,allocation和need中的數(shù)值。3.2 安全性檢查算法首先設(shè)置變量:工作數(shù)組work,它表示系統(tǒng)可提供給進程繼續(xù)運行所需的各類資源數(shù)目,在執(zhí)行安全性算法開始時,work= available。finish,它表示系統(tǒng)是否有足夠的資源分配給每個進程,使之運行完成。開始時先做finishi=0;當有足夠的資源分配給進程時,再令finishi=1。然后再在進程中查找符合
23、以下條件的進程:條件1:finishi=0;條件2:needij=workj若找到,則執(zhí)行步驟(3)否則,執(zhí)行步驟(4)。當進程獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行:workj= workj+ allocationij;finishi=1;最后循環(huán)檢查是否所有的finishi=1都滿足,如果是,則返回1表示系統(tǒng)處于安全狀態(tài),否則,返回0表示系統(tǒng)處于不安全狀態(tài)。3.3算法整體設(shè)計與調(diào)用主函數(shù)void main(),首先輸入每個進程信息,然后判斷是否有進程申請資源,若有,則調(diào)用int check_distribution(int* p,int k)函數(shù)判斷是否可以進行
24、試分配,如果滿足試分配條件,調(diào)用int check_safe()函數(shù)求安全序列,如果可以求出安全序列,則說明分配后系統(tǒng)不會進入不安全狀態(tài),正式將資源分配給申請資源的進程,最后用void print()函數(shù)輸出分配資源后每個進程的信息。如果求不出安全序列,說明分配后系統(tǒng)會處于不安全狀態(tài),則不能將資源分配給該進程,讓其等待,系統(tǒng)恢復(fù)原始狀態(tài)。如果申請資源的數(shù)量不滿足條件,則讓該進程等待。繼續(xù)判斷其他申請資源的進程。其他函數(shù):(1)int check_distribution(int* p,int k):這個函數(shù)用來判斷是否可以進行試分配,如果函數(shù)結(jié)果返回1,說明可以進行試分配,如果函數(shù)返回0,說明
25、申請資源的進程申請的資源數(shù)目不滿足request =need或request =available條件,不能為該進程進行試分配。(2)int check_safe():這個函數(shù)用來求安全序列,首先初始化work0i= availablei,然后循環(huán)找滿足條件 finishi=0 & needi0 = workk0的進程,k表示最近執(zhí)行的進程的進程號,找到后將進程i 加入sequence數(shù)組,再將finishi=1,表示進程可以順利執(zhí)行則workkj=workk-1j+allocationij,k表示同上。再繼續(xù)找下一個滿足條件的進程。如果單循環(huán)結(jié)束時每個進程的finishi都等于1,則說明可以
26、找到安全序列,返回1,如果不是每個finishi都等于1,則說明找不到一個安全序列,返回0( 3 ) void print():這個函數(shù)用來輸出進程信息,按表格形式輸出,并且輸出順序和安全序列相同,便于查看進程執(zhí)行的執(zhí)行過程,并且在執(zhí)行過程中各矩陣信息變化也很容易跟蹤查看。第四章 設(shè)計結(jié)果及分析4.1 程序輸入部分圖4.1 程序輸入部分如圖4.1所示,輸入進程名向量processneman,輸入系統(tǒng)現(xiàn)有各類資源數(shù)量availablem向量,輸入每個進程對各類資源的最大需求數(shù)maxnm矩陣,輸入系統(tǒng)給每個進程已分配的各類資源數(shù)allocationnm矩陣。4.2 輸出資源分配矩陣圖4.2 輸出資
27、源分配矩陣進程信息輸入完成后,初始狀態(tài)各進程信息輸出如圖4.2所示。4.3 資源分配成功結(jié)果輸出圖4.3 資源分配成功結(jié)果如果申請資源的進程申請的資源數(shù)目滿足試分配條件,則再用check_safe()函數(shù)來求試分配后的安全序列,如果可以求出安全序列,則說明這次分配不會使系統(tǒng)進入不安全狀態(tài),正式將資源分配給該進程,修改系統(tǒng)資源信息。如果求不出安全序列,說明這次分配后系統(tǒng)會進入不安全狀態(tài),不能給該進程分配資源,系統(tǒng)恢復(fù)初始狀態(tài),打印出提示信息,執(zhí)行結(jié)果如圖4.3所示。4.4 資源分配失敗結(jié)果輸出 圖4.4 資源分配失敗結(jié)果由圖4.1、圖4.2、圖4.3、圖4.4運行結(jié)果舉例可以看出本系統(tǒng)界面簡潔明
28、了大方,而且在人機交互上化繁為簡。結(jié)果輸出準確無誤,自然得體,讓用戶一目了然???結(jié)課程設(shè)計是每一個大學(xué)生在大學(xué)生涯中都不可或缺的,它使我們在實踐中了鞏固了所學(xué)的知識、在實踐中鍛煉自己的動手能力;實習(xí)又是對每一位大學(xué)生所學(xué)專業(yè)知識的一種拓展手段,它讓我們學(xué)到了很多在課堂上根本就學(xué)不到的知識,不僅開闊了自己的視野,增長了自己的見識,也為我們以后進一步走向社會打下了堅實的基礎(chǔ),是我們走向以后走向工作崗位的奠基石。在這一個星期的課程設(shè)計的時間中,我得到了很多收獲,這是一次難得的經(jīng)歷。我的編程技巧和能力在這一次的設(shè)計中進步了很多。致 謝在課程設(shè)計中,要特別感謝張老師給予我這次設(shè)計的機會,并且在他的悉心
29、的監(jiān)督和指導(dǎo)下,本次課程設(shè)計才能圓滿完成。同時也要感謝各位同學(xué)們的指導(dǎo),和同學(xué)們的討論和交流是完成我這次課程設(shè)計不可忽視的一部分。還要感謝給我提供良好實驗環(huán)境的學(xué)校。如果沒有老師們和同學(xué)們還有學(xué)校的支持與幫助,本次課程設(shè)計不能這么順利的完成。再次感謝老師和同學(xué)的幫助,使我能夠圓滿完成這次課程設(shè)計,為我以后的專業(yè)學(xué)習(xí)打下了良好的基礎(chǔ)。參考文獻1 湯子瀛,哲鳳屏,湯小丹計算機操作系統(tǒng)m西安電子科技大學(xué)出版社,2007 2 譚浩強c語言程序設(shè)計m清華大學(xué)出版社,20103 蘇仕華數(shù)據(jù)結(jié)構(gòu)課程設(shè)計m機械工業(yè)出版社,2005附錄:#include#include #define n 5 /進程個數(shù)#de
30、fine m 3 /資源種類數(shù)void print();int check_safe();int check_distribution(int* p, int k);char process_namen; /進程名int requestm; /請求數(shù)組int finishn; /標記某一個進程是否可以執(zhí)行int worknm; /初始為available,隨尋找安全序列而變化,防止安全序列未找到而丟了初始狀態(tài)的值int availablem; /資源清單系統(tǒng)中現(xiàn)有各資源空閑個數(shù)int work_allocationnm;int maxnm; /最大需求矩陣每個進程對各類資源的最大需求數(shù)int
31、allocationnm; /分配矩陣系統(tǒng)給每個進程已分配的各類資源數(shù)int neednm; /需求矩陣每個進程還需要每種資源的個數(shù)int sequencen = 0 ; /存放安全序列號void main()int i = 0, j = 0, k = 0; /記錄申請資源的進程的序列號int flag = 0; /標記輸入的進程名是否存在int safe = 0; /標志系統(tǒng)是否出于安全狀態(tài),0表示不安全,1表示安全int distribution = 0; /標志是否可以進行試分配0表示可以,1表示不可以char flag1; /標記是否有進程申請資源 char name; /要請求資源的
32、進程名printf(-n);printf(* 銀行家算法 *n);printf(-nn);printf(-請輸入各進程的進程名:n); /進程名連續(xù)輸入for (i = 0; i請輸入現(xiàn)有各資源空閑個數(shù):n);for (i = 0; i請分別輸入每個進程對各類資源的最大需求數(shù):n);for (i = 0; in; i+)for (j = 0; j請分別輸入系統(tǒng)給每個進程已分配的各類資源數(shù)n);for (i = 0; in; i+)for (j = 0; jm; j+)scanf(%d, &allocationij);/計算每個進程還需要每種資源的數(shù)for (i = 0; in; i+)for
33、(j = 0; jm; j+)needij = maxij - allocationij;printf(n初始化終了。n);printf(-nnn);for (i = 0; in; i+)sequencei = i;/輸出界面print();/檢查初始狀態(tài)是否安全safe = check_safe();if (0 = safe)printf(系統(tǒng)現(xiàn)處于不安狀態(tài),不能為進程分配資源,進入死鎖狀態(tài)。n);exit(0);else if (1 = safe)printf(系統(tǒng)處于安全狀態(tài),可以為進程分配資源。n);while (1)safe = 0;getchar();printf(是否有進程請求系
34、統(tǒng)資源.? (y/n) n);flag1 = getchar();if (y = flag1 | y = flag1)printf(請輸入進程名:);getchar();while (1)scanf(%c, &name);for (i = 0; in; i+) /檢查進程名輸入是否正確if (name = process_namei)flag = 1; /輸入的進程名存在k = i;break;/找到申請資源的進程序列號跳出getchar();/將在此之前的一個回車接收了,不然會影響輸入if (flag != 1)/進程名輸入不合法printf(你輸入的進程不存在,請重新輸入:);contin
35、ue;elsebreak;/進程名輸入合法,則執(zhí)行下面操作else if (n = flag1 | n = flag1)printf(進程執(zhí)行完畢,退出系統(tǒng)。n);break;else if (n != flag1 & y != flag1 & n != flag1 & y != flag1)printf(你的輸入有誤,請重新輸入: );continue;printf(請輸入該進程請求各類資源的數(shù)量n);for (i = 0; im; i+)scanf(%d, &requesti);distribution = check_distribution(request, k); /檢查是否可以試分
36、配if (1 = distribution) safe = check_safe(); /可以試分配,則求安全序列if (1 = safe) /試分配成功printf(試分配成功,可以為該進程分配資源。n); /是否給申請資源的進程分配資源for (i = 0; im; i+)allocationki = allocationki + requesti; /為進程分配資源后修改該進程的有關(guān)資源數(shù)needki = needki - requesti;printf(分配后各資源數(shù)量如下:n);print();printf(分配成功!n);printf(系統(tǒng)剩余資源數(shù)各為: );for (i = 0; im; i+)printf(%d , availablei);printf(n);continue;else /試分配失敗printf(試分配失敗,有可能進入死鎖狀態(tài),請等待。n);/未求出安全序列continue;else /試分配失敗printf(該進程申請的資源太多,無法分配,請等待。n);continue;void print()int i, j;printf( 資源 work needtallocationtwork+allocationt finishn);printf( 進程名 a b c a b
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西師范大學(xué)現(xiàn)代文理學(xué)院《產(chǎn)品生態(tài)設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 北京中醫(yī)藥大學(xué)東方學(xué)院《藥用拉丁語》2023-2024學(xué)年第一學(xué)期期末試卷
- 四川建筑職業(yè)技術(shù)學(xué)院《人體影像解剖學(xué)實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 廈門醫(yī)學(xué)院《中國古建筑藝術(shù)鑒賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 婁底幼兒師范高等??茖W(xué)?!俄椖繉?dǎo)向?qū)I(yè)課程量子信息方向》2023-2024學(xué)年第一學(xué)期期末試卷
- 世界濕地日科普活動方案
- 世界鄭氏宗親活動方案
- 業(yè)主搬家活動方案
- 東關(guān)街道防災(zāi)活動方案
- 外貿(mào)企業(yè)幫扶活動方案
- 北京市海淀區(qū)2023-2024學(xué)年高一下學(xué)期7月期末考試數(shù)學(xué)試題(解析版)
- 2024年貴州省普通高校招生信息表(普通類本科批-歷史組合)
- 2024年遼寧省中考地理試卷(含答案)
- 抗衰保養(yǎng)知識培訓(xùn)課件
- 青海省重點名校2025屆中考生物最后一模試卷含解析
- 畜牧課件豬生產(chǎn)學(xué)
- 房產(chǎn)公司檔案管理
- 【課件】臺灣的社區(qū)總體營造
- 胸痛課件教學(xué)課件
- 福建省福州市(2024年-2025年小學(xué)六年級語文)統(tǒng)編版期末考試((上下)學(xué)期)試卷及答案
- 教師專業(yè)發(fā)展(西南大學(xué))知到智慧樹章節(jié)答案
評論
0/150
提交評論