




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
創(chuàng)作時間:二零二一年六月三十天南華大年夜學(xué)計算機科學(xué)與技術(shù)學(xué)院之答祿夫天創(chuàng)作創(chuàng)作時間:二零二一年六月三十天實驗陳述課程名稱把持系統(tǒng)I姓名學(xué)號專業(yè)班級任課教師日期創(chuàng)作時間:二零二一年六月三十天創(chuàng)作時間:二零二一年六月三十天一、實驗內(nèi)容死鎖的檢測與排除二、實驗?zāi)康恼莆瞻殉窒到y(tǒng)的進度管理與資源分派原理,掌握對把持系統(tǒng)平安性查驗和死鎖的排除的原理和方法.三、實驗題目系統(tǒng)中有m個同類資源被n個進度共享,每個進度對資源的最大年夜需求數(shù)分別為S1,S2,,Sn,且Max(Si)<=m,(i=1,2,n).進度能夠靜態(tài)地申請資源和開釋資源.編寫一個法式,實現(xiàn)銀專家算法,當(dāng)系統(tǒng)將資源分派給某一進度而不會死鎖時,就分派之.不然,推延分派,并顯示適合的信息.分別使用檢測“進度—資源循環(huán)等待鏈”的方法和Coffman的算法來檢測進度的死鎖狀態(tài).對同樣的進度資源分派、占用次序,比力兩個算法的結(jié)果.四、設(shè)計思路和流程圖1.輸入系統(tǒng)進度數(shù)目n和資源種類數(shù)目m.2.輸入每類資源的數(shù)目.3.輸入每個進度每類資源的最大年夜需求量和已獲資源量.4.查驗系統(tǒng)的安全.5.若檢測結(jié)果為系統(tǒng)不服安,能夠?qū)λ梨i進行排除,直到安全為止再檢測.6.重復(fù)5把持,直到全部進度運轉(zhuǎn)完成.創(chuàng)作時間:二零二一年六月三十天創(chuàng)作時間:二零二一年六月三十天五、主要數(shù)據(jù)構(gòu)造及其說明創(chuàng)作時間:二零二一年六月三十天創(chuàng)作時間:二零二一年六月三十天intMax[100][100]={0};//各進度所需各種資源的最大年夜需求;intAvailable[100]={0};//系統(tǒng)可用資源;charName[100]={0};//資源的名稱;intAllocation[100][100]={0};//系統(tǒng)已分派資源;intNeed[100][100]={0};//還需要資源intRequest[100]={0};//懇求資源向量;intTemp[100]={0};//存放安全序列;intWork[100]={0};//存放系統(tǒng)可供給資源;boolFinish[100]={0};//存放已達成的序列六、源法式并附上說明#include"stdafx.h"#include<iostream>#defineFalse0#defineTrue1usingnamespacestd;intMax[100][100]={0};//各進度所需各種資源的最大年夜需求;intAvailable[100]={0};//系統(tǒng)可用資源;charName[100]={0};//資源的名稱;intAllocation[100][100]={0};//系統(tǒng)已分派資源;intNeed[100][100]={0};//還需要資源intRequest[100]={0};//懇求資源向量;intTemp[100]={0};//存放安全序列;intWork[100]={0};//存放系統(tǒng)可供給資源;boolFinish[100]={0};intM=100;//作業(yè)的最大年夜數(shù)intN=100;//資源的最大年夜數(shù)intl=0;//記錄安全進度的TEMP下標(biāo)voidShowData( )//初始化資源矩陣{inti,j;cout<<"系統(tǒng)可用資源[Available]:"<<endl;for(i=0;i<N;i++)cout<<Name[i]<<"";cout<<endl;for(j=0;j<N;j++)cout<<Available[j]<<"";//顯示可分派的資源cout<<endl;cout<<"MaxAllocationNeed"<<endl;cout<<"進度名";for(j=0;j<3;j++)//MAXALLOCATIONNEED共列{for(i=0;i<N;i++){cout<<Name[i]<<"";創(chuàng)作時間:二零二一年六月三十天創(chuàng)作時間:二零二一年六月三十天}cout<<"";}cout<<endl;for(i=0;i<M;i++){cout<<""<<i<<"";//輸出進度名for(j=0;j<N;j++)cout<<Max[i][j]<<"";//輸出最大年夜cout<<"";for(j=0;j<N;j++)cout<<Allocation[i][j]<<"";//輸出已分派cout<<"";for(j=0;j<N;j++)cout<<Need[i][j]<<"";//輸出需求cout<<endl;}}boolSafe( )//安全性算法{inti,j,k;for(i=0;i<N;i++)Work[i]=Available[i];//初始化工作向量for(i=0;i<M;i++){Finish[i]=false;//判斷進度i能否已履行}for(i=0;i<M;i++){if(Finish[i]==true){continue;}else{for(j=0;j<N;j++)//考證每一個資源的需求量能否小于可用資源量{if(Need[i][j]>Work[j]){break;}}if(j==N)//若Need都小于Work{Finish[i]=true;for(k=0;k<N;k++){創(chuàng)作時間:二零二一年六月三十天創(chuàng)作時間:二零二一年六月三十天Work[k]+=Allocation[i][k];//進度i履行完后回收資源}Temp[l++]=i;i=-1;}else{continue;}}if(l==M){cout<<"系統(tǒng)是安全的"<<endl;cout<<"安全序列:"<<endl;for(i=0;i<l;i++){cout<<Temp[i];if(i!=l-1){cout<<"-->";}}cout<<""<<endl;returntrue;}}for(i=0;i<M;i++)if(Finish[i]==false)cout<<"會發(fā)存亡鎖,發(fā)存亡鎖的進度是:"<<i<<""<<endl;cout<<endl;returnfalse;}voidunlock( ){inti,j;i=0;cout<<"死鎖排除開始";cout<<endl;while(i<M&&Finish[i]==false)//查找未達成的進度{for(j=0;j<N;j++){Available[j]+=Allocation[i][j];//回收該進度全部資源Allocation[i][j]=0;創(chuàng)作時間:二零二一年六月三十天創(chuàng)作時間:二零二一年六月三十天}if(Safe( ))cout<<"死鎖已排除"<<endl;elsei++;//到下一個進度Safe( );}}intmain( ){inti,j,number,m,n,flag;intover;charmc;cout<<"--------------------------死鎖的檢測與排除----------------------------------";cout<<endl;cout<<endl;cout<<"輸入此后系統(tǒng)可供使用資源種類的數(shù)目:";cin>>n;N=n;for(i=0;i<n;i++){cout<<"資源"<<i+1<<"的名稱:";cin>>mc;Name[i]=mc;cout<<"資源"<<i+1<<"的數(shù)目:";cin>>number;Available[i]=number;cout<<endl;}cout<<endl;cout<<"請輸入作業(yè)的數(shù)目:";cin>>m;M=m;cout<<"請輸入各進度的最大年夜需求量("<<m<<"*"<<n<<"矩陣)[Max]:"<<endl;for(inti=0;i<m;i++)for(intj=0;j<n;j++){cin>>Max[i][j];}do{flag=0;cout<<"請輸入各進度已經(jīng)分派資源量("<<m<<"*"<<n<<"矩陣)[Allocation]:"<<endl;for(inti=0;i<m;i++)for(j=0;j<n;j++)創(chuàng)作時間:二零二一年六月三十天創(chuàng)作時間:二零二一年六月三十天{cin>>Allocation[i][j];if(Allocation[i][j]>Max[i][j])flag=1;Need[i][j]=Max[i][j]-Allocation[i][j];}if(flag)cout<<"初次輸入的已分派資源已經(jīng)大年夜于最大年夜需求量請從頭輸入!\n";}while(flag);//當(dāng)申請資源切合要求時enddoShowData( );//顯示Safe( );//安全檢測if(l!=m)//當(dāng)安全進度數(shù)不即是全部進度數(shù)unlock( );cout<<"運轉(zhuǎn)結(jié)束"<<endl;cin>>over;}七、法式運轉(zhuǎn)時的初值和運轉(zhuǎn)結(jié)果創(chuàng)作時間:二零二一年六月三十天創(chuàng)作時間:二零二一年六月三十天八、實驗領(lǐng)會經(jīng)過本次實驗,比力完好的掌握了把持系統(tǒng)的進度管理與資源分配原理,以及對把持系統(tǒng)安全性查驗和死鎖的排除的原理和方法.一開始,對死鎖的排除,我不過從第一個進度開始剝奪其資源,也無論它能否是發(fā)生了死鎖,向來剝奪到死鎖排除為止.而后,經(jīng)過對法式進行改良,讓其能夠判斷死鎖進度與非死鎖進度,而后從第一個死鎖進
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腫瘤免疫基因特征-洞察及研究
- 風(fēng)電項目融資模式創(chuàng)新-洞察及研究
- 土壤酸堿度檢測方法驗證報告
- 小學(xué)一年級階段教學(xué)效果評估報告
- 高三語文高考復(fù)習(xí)經(jīng)驗總結(jié)報告
- 英語語法分析實驗報告撰寫范文
- 小學(xué)一年級口算數(shù)學(xué)題每日練習(xí)計劃
- 高中語文閱讀能力提升計劃
- 幼兒園辦園合作框架協(xié)議范本
- 小學(xué)體育立定跳遠教學(xué)計劃與學(xué)案
- 2025年人力資源咨詢服務(wù)合作協(xié)議書模板
- 《鉗工基礎(chǔ)培訓(xùn)》課件
- 山東省《建筑施工現(xiàn)場安全管理資料規(guī)程》(DB375063-2016)
- 實驗室生物安全案例分析
- 幼兒園廚房安全
- 《教育強國建設(shè)規(guī)劃綱要(2024-2035年)》解讀講座
- 配電網(wǎng)設(shè)備知識培訓(xùn)課件
- 單面瓦楞機安全操作規(guī)程
- 2024年葫蘆島市退役本科畢業(yè)生士兵招聘事業(yè)單位人員筆試真題
- 土地儲備項目管理與組織架構(gòu)
- 《外貿(mào)會計學(xué)精講》課件
評論
0/150
提交評論