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

正文內(nèi)容

銀行家算法os課程設計-在線瀏覽

2025-03-06 04:45本頁面
  

【正文】 先計算資源分配的安全性。 安全狀態(tài)是指,系統(tǒng)能按某種進程順序(P1, P2, P3,…,Pn),來為每個進程分配所需資源,直至滿足每個進程對資源的最大需求,是每個進曾都可以順利完成。雖然并非所有的不安全狀態(tài)都是死鎖狀態(tài),但當系統(tǒng)進入不安全狀態(tài)后,便可能進入死鎖狀態(tài)。 安全序列:一個進程序列{P1,…,Pn}是安全的,如果對于每一個進程Pi(1≤i≤n),它以后尚需要的資源量不超過系統(tǒng)當前剩余資源量與所有進程Pj (j i )當前占有資源量之和。因此,避免死鎖的實質(zhì)在于,如何使系統(tǒng)不進入不安全狀態(tài),銀行家算法就是用來判斷某種情況會不會進入不安全狀態(tài)。若請求合法,則進行試分配。若安全,則分配,否則,不分配,恢復原來狀態(tài),拒絕申請。如果Max[i,j]=K,則表示進程i需要Rj類資源的最大數(shù)目為K。如果Allocation[i,j]=K,則表示 進程i當前已分得Rj類資源的數(shù)目為K。如果Need[i,j]=K,則表示進程i還需要Rj類資源K個,方能完成其任務。Available[j]=K,則表示系統(tǒng)中現(xiàn)有Rj 類資源K個。初始化finish[i]:=false。2)銀行家算法步驟(1)如果Requesti<or =Need,則轉(zhuǎn)向步驟(2);否則,認為出錯,因為它所需要的資源數(shù)已超過它所宣布的最大值。(3)系統(tǒng)試探把要求的資源分配給進程Pi,并修改下面數(shù)據(jù)結(jié)構(gòu)中的數(shù)值: Available=AvailableRequest[i]。 Need=NeedRequest。3)安全性算法步驟(1)設置兩個向量①工作向量Work。②布爾向量Finish。(2)從進程集合中找到一個能滿足下述條件的進程:①Finish[i]=false②Needor=Work如找到,執(zhí)行步驟(3);否則,執(zhí)行步驟(4)。Finish[i]=true。(4) 如果所有進程的Finish[i]=true,則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)。rstordata(n)函數(shù)輸出分配資源后每個進程的信息。如果申請資源的數(shù)量不滿足條件,則讓該進程等待。 (1) if(Request[j]NEED[n][j]) 、if(Request[j]AVAILABLE[j]) 用來判斷是否可以進行試分配,如果判斷結(jié)果為真,說明申請資源的進程申請的資源數(shù)目不滿足Request []=need[]或Request []=available[]條件,不能為該進程進行試分配,如果判斷結(jié)果為0,說明可以進行試分配。 ,然后當iM時循環(huán)找滿足條件 FINISH[i]==FALSEamp。NEED[i][j]=WORK的進程,表示進程可以順利執(zhí)行則WORK=WORK+ALLOCATION[i][j]。如果單循環(huán)結(jié)束時每個進程的Finish[i]都等于1,則說明可以找到安全序列,返回1,如果不是每個Finish[i]都等于TRUE,則說明找不到一個安全序列,返回i=0;2)程序流程圖:開始初始化 讀入初始化狀態(tài)時的資源分配表 讀入請求向量申請不合理,出錯!請重新選擇Requesti[j]=Need[j] NO 申請不合理,出錯!請重新選擇Requesti[j]=Available[j] NO Available[j]:=Available[j]Requesti[j]。Need[i,j]:=Need[i,j]Requesti[j]。Finish:=F依次查找Need[i]=Work[j]。Finish[i]:=true。3)進程號定義為整型,但是卻錯輸成字母等情況,我們需要對這些情況進行判斷,讓程序報錯返回而并非因錯誤而中斷。我也沒有涵蓋全部的輸入,僅僅只是對輸入的進程號不在已存在進程當中作了判斷。 通過一個周的課程設計,我加深了對銀行家算法的理解,掌握了銀行家算法避免死鎖的過程和方法,理解了死鎖產(chǎn)生的原因和條件以及避免死鎖的方法。 在銀行家算法這個系統(tǒng)之中,所采用的數(shù)據(jù)結(jié)構(gòu)應是最基本的部分。數(shù)據(jù)結(jié)構(gòu)雖然重要但卻只是基礎,而最主要的用以實現(xiàn)系統(tǒng)功能的應該有兩個部分,一是用銀行家算法來判斷,二是用安全性算法來檢測系統(tǒng)的安全性。首先,輸入欲申請資源的進程以及其所申請的資源數(shù),存放在Request數(shù)組中。最后,無論此次分配是否成功,我們都可以選擇繼續(xù)分配。首先,F(xiàn)inish[]為布爾型,默認是False,即該進程未完成。然后,我們從第一個進程開始判斷該進程未完成且其所需求的資源量不大于該系統(tǒng)中可以用來工作的資源量這個條件是否成立,即Finish[]=False且Need[][]=Work[]是否成立。否則便將此進程的優(yōu)先級減一,排在隊位,然后開始往后循環(huán)??傊?,銀行家算法是避免死鎖的主要方法,其思路在很多方面都非常值得我們來學習借鑒。銀行家算法中,要對當前申請資源的進程申請資源的數(shù)目進行判斷,如果可以試分配,則試求出一個安全序列,如果可以求出,則說明給這個進程分配資源后系統(tǒng)不會進入不安全狀態(tài),將該進程申請的資源分配給他,若求不出安全序列,則說明將資源分配給該進程后系統(tǒng)會進入不安全狀態(tài),所以就使該進程進入阻塞狀態(tài),等待以后可以分配資源時再執(zhí)
點擊復制文檔內(nèi)容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1