freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

銀行家算法os課程設(shè)計-文庫吧資料

2025-01-23 04:45本頁面
  

【正文】 態(tài)時,便可能進(jìn)而進(jìn)入死鎖狀態(tài)后,當(dāng)系統(tǒng)在進(jìn)行資源管理時,如果對進(jìn)城申請的資源分配不當(dāng),可能會使系統(tǒng)進(jìn)入死鎖狀態(tài),因而后面到來的進(jìn)程也無法順利執(zhí)行。待所有的進(jìn)程循環(huán)完畢,我們再次判斷是否還存在進(jìn)程的Finish[]=False,如果仍存在,則說明系統(tǒng)沒有安全序列,處于不安全狀態(tài),不可以進(jìn)行分配;否則,系統(tǒng)處于安全狀態(tài),將預(yù)分配變?yōu)閷嶋H分配,求出安全序列并且將實際分配后的資源分配情況打印輸出。成立的話則將當(dāng)前在工作的資源量與該進(jìn)程已分配的資源量相加,存放于當(dāng)前可用來工作的資源量當(dāng)中,即Work[]=Work[]+Allocation,并將Finish[]的值改為True。而Work——即該系統(tǒng)中可以用來工作的資源數(shù)——最開始為系統(tǒng)最初可以用的資源數(shù)。安全性檢測我們是用int chkerr()函數(shù)來實現(xiàn)的。然后,判斷進(jìn)程請求的資源數(shù)是否大于其所需的資源數(shù),若大于則報錯并返回,若不大于則繼續(xù)判斷它是否大于系統(tǒng)在此時刻可利用的資源數(shù),同樣,如果大于則報錯并反回,如果不大于則調(diào)用changedata( )函數(shù)來進(jìn)行預(yù)分配,之后再調(diào)用安全型算法int chkerr() 檢查。在本程序代碼中,銀行家算法用voidchangdata()、void rstordata() 函數(shù)來實現(xiàn)。銀行家算法的數(shù)據(jù)結(jié)構(gòu)我們采用了一維數(shù)組與二維數(shù)組來存儲,比如最大需求量Max[][]、已分配資源數(shù)Allocation[][]、仍需求資源數(shù)Need[][]、以及系統(tǒng)可利用的資源數(shù)、申請各類資源等數(shù)組。并且還鞏固了C語言知識,掌握了用C語言實現(xiàn)銀行家算法的方法。而因為對于某些——比如進(jìn)程號——本來設(shè)定就是整型,因此對輸入的是字母的判別因比較復(fù)雜而未能加上。這樣的情況處理起來比較麻煩,相當(dāng)于對每次輸入針對各種不同的情況都得做判斷。 有Finish[i]置F所有Finish為T系統(tǒng)安全,顯示安全序列資源回收=T?返回Dos 進(jìn)行下一輪測試安全性算法流程圖:6. 設(shè)計結(jié)果驗證 1)在設(shè)計中,首先是資源利用不足,因為在程序中是直接輸出最大資源需求量MAX[M][N],可用資源數(shù)AVAILABLE[N],M個進(jìn)程已經(jīng)得到N類資源的資源量ALLOCATION[M][N],最大資源需求量NEED[M][N],不能夠再改變他們,所以程序運(yùn)用范圍比較小;2) 再者,在“請輸入需申請資源的進(jìn)程號”中進(jìn)行的for循環(huán)申請資源進(jìn)程號只能一次增加,沒有達(dá)到隨機(jī)選擇的效果。Finish[i]=F分配不成功 找不到將所Work[j]:=Work[i]+Allocation[i,j]。賦值:Work:=Available。Allocation[i,j]:=Allocation[i,j]+Request[j]。再繼續(xù)找下一個滿足條件的進(jìn)程。amp。 (2)int chkerr():這個函數(shù)用來求安全序列,首先初始化 WORK=AVAILABLE[j]。繼續(xù)判斷其他申請資源的進(jìn)程。如果求不出安全序列,說明分配后系統(tǒng)會處于不安全狀態(tài),則不能將資源分配給該進(jìn)程,讓其等待,系統(tǒng)恢復(fù)原始狀態(tài)。5. 設(shè)計實現(xiàn)過程1)算法整體設(shè)計與調(diào)用 主函數(shù)int main(),首先判定T0時刻的安全性,利用安全性算法int chkerr(int s) ,void changdata(int k) ,void rstordata(int k) 函數(shù)對T0時刻的資源分配情況進(jìn)行分析,判斷T0時是否存在一個安全序列,若不存在則直接顯示不安全,若存在,則輸入每個進(jìn)程號,接著有進(jìn)程申請資源,輸入所申請的資源,調(diào)用int chkerr()函數(shù)求安全序列,如果可以求出安全序列,則說明分配后系統(tǒng)不會進(jìn)入不安全狀態(tài),正式將資源分配給申請資源的進(jìn)程,最后用changdata(n)。 轉(zhuǎn)向步驟(2)。(3)當(dāng)進(jìn)程P獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行:Work=Work+Allocation。它表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運(yùn)行完成,開始時先做Finish[i]=false,當(dāng)有足夠資源分配給進(jìn)程時,令Finish[i]=true。它表示系統(tǒng)可提供進(jìn)程繼續(xù)運(yùn)行所需要的各類資源數(shù)目,執(zhí)行安全算法開始時,Work=Allocation。(4)系統(tǒng)執(zhí)行安全性算法,檢查此次資源分配后,系統(tǒng)是否處于安全狀態(tài)。 Allocation=Allocation+Request。(2)如果Request<o(jì)r=Available,則轉(zhuǎn)向步驟(3);否則,表示系統(tǒng)中尚無足夠的資源,進(jìn)程必須等待。有足夠資源分配給進(jìn)程時,令finish[i]:=true。申請各類資源向量Request[](5) 工作向量 work[]::表示系統(tǒng)可提供給進(jìn)程繼續(xù)運(yùn)行所需的各類資源數(shù)目,執(zhí)行安全性算法開始時work:=available;(6) Finish[]:表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運(yùn)行完成。(4) 可利用資源向量Available[]:這是一個含有m個 元素的數(shù)組,其中的每一個元素代表一類可利用的資源數(shù)目,其初始值是系統(tǒng)中所配置的該類全部可用資源的數(shù)目,其數(shù)值隨該類資源的分配和回收而動態(tài)地改變。(3) 仍需求矩陣Need[][]=Max[][]Allocation[][]:這也是一個n*m的矩陣,用以表示每一個進(jìn)程尚需的各類資源數(shù)。(2) 已分配矩陣Allocation[][]:這也是一個n*m的矩陣,它定義了系統(tǒng)中每一類資源 當(dāng)前已分配給沒一進(jìn)程的資源數(shù)。 1)主要數(shù)據(jù)結(jié)構(gòu)設(shè)計(1) 最大需求矩陣Max[][]:這是一個n*m的矩陣,它定義了系統(tǒng)中n個進(jìn)程中的每一個進(jìn)程對m類資源的最大需求。最后對試
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1