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

正文內(nèi)容

銀行家算法避免死鎖的研究與實(shí)現(xiàn)_畢業(yè)論文-免費(fèi)閱讀

  

【正文】 y39。 Print(head,Available,M)。 if(1==flag) { printf(分配成功!當(dāng)前資源分配狀態(tài)如下表 :\n)。 } } }while(ch==39。 getchar()。 do { flag=Safety_Algorithm(head,Available,Safety,Record_work,M,count)。 printf(請(qǐng)初始化當(dāng)前可用資源 !\n)。 int Available[M]={0}。j++) { printf(%4d,work[pnum][j]+pAllocation[j])。j++) { printf(%4d,pNeed[j])。i++) { p=head。A39。 char ch。 } } void Return_Source(process* p,int *request,int *avail,int m) { int i。i++) { printf(%d,safety[i])。 safety[i]=pronum。 } i=0。 int i,count=0。im。j++) { if(pNeed[j]work[j]) { break。 pAllocation[i]=pAllocation[i] + request[i]。 } } for(i=0。im。 printf(請(qǐng)輸入進(jìn)程編號(hào) : \n)。 長(zhǎng)治學(xué)院學(xué)士學(xué)位論文(設(shè)計(jì)) 19 return p。jm。jm。 } printf(\t)。 printf(\t)。 } } while(1)。 } printf(需求矩陣 : )。im。 process node。 memcpy(p,amp。 由于我的學(xué)術(shù)水平有限,所寫論文難免有不足之處,懇請(qǐng)各位老師批評(píng)和指正! 長(zhǎng)治學(xué)院學(xué)士學(xué)位論文(設(shè)計(jì)) 15 附錄 //銀行家算法 include include include define M 3 define N 10 define D12 %5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d typedef struct my_process { int num。在集成測(cè)試中,由于之前的模塊測(cè)試做的比較扎實(shí),所以相對(duì)只是一些細(xì)節(jié)上的問題,很快也達(dá)到了預(yù)期的效果。 ( 5) 00: Request(0,1,0) 結(jié)果: 兩次安全性檢查都通過(guò),并打印出最終結(jié)果。如圖 11所示。 請(qǐng)求合法性檢驗(yàn) Printf(“請(qǐng)輸入請(qǐng)求向量 \”) Printf(“無(wú)此進(jìn)程! \n”) 試分配,修改相關(guān)數(shù)據(jù) P==null? 長(zhǎng)治學(xué)院學(xué)士學(xué)位論文(設(shè)計(jì)) 9 圖 7 試分配后,安全性檢查的程序流程圖 5 程序分析測(cè)試 分模塊分析與測(cè)試 ( 1)初始化系統(tǒng)資源模塊 Init_process 的測(cè)試 圖 8 初始化系統(tǒng)資源模塊 Init_process 的測(cè)試 N Y i m? m? 恢復(fù)系統(tǒng)資源 i=0 i ++。如圖 7 所示。最后,執(zhí)行安全檢查,并顯示檢查后結(jié)果,返回給 flag。 圖 3 程序總流程圖 4 詳細(xì)設(shè)計(jì) Y Y Y N 開始 結(jié)束 申請(qǐng)資源 試探分配 安全性算法 進(jìn)程等待 正式分配 恢復(fù)程序 RENE? REAVE? 系統(tǒng)安全? N N 銀行家算法避免死鎖的研究與實(shí)現(xiàn) 6 數(shù)據(jù)結(jié)構(gòu)選取分析 該算法中用到了較多的數(shù)據(jù),基于程序的易實(shí)現(xiàn)和較好的結(jié)構(gòu),決定采用結(jié)構(gòu)鏈表,以進(jìn)程為單位(結(jié)點(diǎn))。如果 Request[j]≥ Need[i,j], 則認(rèn)為出錯(cuò),進(jìn)入等待狀態(tài)。如圖 1 所示。當(dāng)進(jìn)程在執(zhí)行中繼續(xù)申請(qǐng)資源時(shí),先測(cè)試該進(jìn)程已占用的資源數(shù)與本次申請(qǐng)的資源數(shù)之和是否超過(guò)了該進(jìn)程對(duì)資源的最大需求量。但預(yù)防死鎖所施加的條件較嚴(yán)格,這往往會(huì)影響進(jìn)程的并發(fā)執(zhí)行,而避免死鎖所施加的限制條件則較寬松,這給進(jìn)程的運(yùn)行 提供了較寬松的環(huán)境,有利于進(jìn)程的并發(fā)執(zhí)行。同樣是實(shí)現(xiàn)預(yù)防的策略但是他并不是實(shí)現(xiàn)采取各種限制措施去破壞產(chǎn)生死鎖的四個(gè)條件,而是在資源分配過(guò)程中,用某種方法去防止 系統(tǒng)進(jìn)入不安全的狀態(tài),從而避免死鎖。 死鎖 死鎖是進(jìn)程死鎖的簡(jiǎn)稱,是指多個(gè)進(jìn)程循環(huán)等待它方占有的資源而無(wú)限期地僵持下去的局面。銀行家算法是在確保當(dāng)前系統(tǒng)安全的前提下推進(jìn)的。死鎖產(chǎn)生的一般原因有兩點(diǎn):競(jìng)爭(zhēng)資源和進(jìn)程間推進(jìn)順序非法。它是通過(guò)設(shè)置某些限制條件。 ( 4)解除死鎖。我們可以把操作系統(tǒng)看作是銀行 家,操作系統(tǒng)管理的資源相當(dāng)于銀行家管理的資金,進(jìn)程向操作系統(tǒng)請(qǐng)求分配資源相當(dāng)于用戶向銀行家貸款。 基本要求 ( 1)從鍵盤輸入當(dāng)前系統(tǒng)的資源信息,包括當(dāng)前可用資源,每個(gè)進(jìn)程對(duì)各類資源的最大需求量,每個(gè)進(jìn)程當(dāng)前已分配的各個(gè)資源量和每個(gè)進(jìn)程尚需要的各個(gè)資源量; ( 2)輸入進(jìn)程請(qǐng)求,按照設(shè)計(jì)好的安全性算法進(jìn)行檢查,得到結(jié)果并輸出整個(gè)執(zhí)行過(guò)程的相關(guān)信息和最終結(jié)果 ; ( 3) 要求 要有各種異常的處理,程序的可控制性和可連續(xù)性執(zhí)行。 Pro: 一個(gè)地址, Safety_Algorithm 返回給主模塊 main 的信息,不為 NULL時(shí)表示試分配成功,否則系統(tǒng)轉(zhuǎn)入相應(yīng)異常處理。若安全,才正式將資源分配給進(jìn)程,來(lái)完成分配。如圖 4 所示。如果為空,則輸出無(wú)此進(jìn)程,然后,輸入請(qǐng)求向量,檢查合法性,進(jìn)行試分配。 Work[i]=avail[i]。 (2)試分配模塊 Attempt_Allocation 的測(cè)試 圖 9 試分配模塊 Attempt_Allocation 的測(cè)試 試分配模塊,主要是在系統(tǒng)進(jìn)入第一次安全檢查后,對(duì)系統(tǒng)資源的一次嘗試性分配,試分配完成后,相關(guān)的數(shù)據(jù)結(jié)構(gòu)被修改。 ( 2) 01: Request(2,0,2) 結(jié)果: 系統(tǒng)不能滿足。 在程序測(cè)試中出現(xiàn)了很多問題。尤其要感謝我的論文指導(dǎo)老師 —— 陜粉麗 老師,她對(duì)我進(jìn)行了無(wú)私的指導(dǎo)和幫助,不厭其煩的幫助進(jìn)行論文的修改和改進(jìn)。 }process。 while(lastnext!=NULL) { last=lastnext。 scanf(%d,amp。im。 } Insret_Tail(head,node)。 if(NULL==p) { printf(當(dāng)前無(wú)進(jìn)程 !\n)。 for(j=0。j++) { printf(%4d,pMax[j])。j++) { printf(%4d,pNeed[j])。 } } process* Location(process* head,int pro_num) { process *p=NULL。 } else { return p。 return p。i++) { if(request[i]=pNeed[i]) { 。 } 長(zhǎng)治學(xué)院學(xué)士學(xué)位論文(設(shè)計(jì)) 21 } for(i=0。 while(1) { if(finish[i]!=1) { p=Location(head,finish[i])。 } if(i==n) { return NULL。 長(zhǎng)治學(xué)院學(xué)士學(xué)位論文(設(shè)計(jì)) 23 int *finish=NULL。 for(i=0。 while(countn) { pro=Reasonable(head,finish,work,m,n)。 銀行家算法避免死鎖的研究與實(shí)現(xiàn) 24 } } if(count==n) { printf(當(dāng)前系統(tǒng)處于安全狀態(tài) ,存在一個(gè)安全序列 :\n)。 work=NULL。 avail[i]+=request[i]。 for(i=0。 } puts()。 } printf(\t)。 } printf(\t)。 } } }
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1