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

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)進(jìn)程_銀行家_頁面調(diào)度(編輯修改稿)

2024-07-13 06:21 本頁面
 

【文章內(nèi)容簡介】 ▓▓ endl。 cout ▓▓ ▓▓ endl。 cout ▓▓ ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ ▓▓ endl。 cout ▓▓ ☆ ★ ▓▓ endl。 cout ▓▓ ★ 歡迎進(jìn)入進(jìn)程調(diào)度模擬系統(tǒng) ☆ ▓▓ endl。 cout ▓▓ ☆ ★ ▓▓ endl。 cout ▓▓ ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ ▓▓ endl。 cout ▓▓ ▓▓ endl。 cout ▓▓ ▓▓ endl。 cout ▓▓ ┏━━━━━━━━━━━━━━━━━━┓ ▓▓ endl。 cout ▓▓ ┃ 實(shí)驗(yàn)一:進(jìn)程調(diào)度算法 ┃ ▓▓ endl。 cout ▓▓ ▓▓ endl。 cout ▓▓ ▓▓ endl。 cout ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ endl。 cout ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ endl。 coutendlendl。 } //void interface() //主函數(shù) void main() { int Input。 bool bGoOn。 char sGoOn[1]。 interface()。 //顯示界面信息 initPCB()。 //PCB 初始化函數(shù) bGoOn= true。 strcpy(sGoOn, )。 if(readData()==1) //標(biāo)志 讀進(jìn)程流文件數(shù)據(jù)函數(shù) 執(zhí)行是否正確 { while (bGoOn) { coutendl 請選擇進(jìn)程調(diào)度功能,輸入( 1 or 2 or 3 or 4) endlendl。 cout 1 先來先服務(wù)( FCFS)算法 endl 2 優(yōu)先數(shù)( privilege)調(diào)度算法 endl 3 時(shí)間片輪轉(zhuǎn)( HRN)調(diào)度算法 endl 4 短進(jìn)程優(yōu)先( SPF)調(diào)度算法 endl。 cinInput。 switch(Input) { case 1: FCFS()。 //先來先服務(wù)算法 break。 case 2: privilege()。 //優(yōu)先數(shù)調(diào)度算法 break。 case 3: timer()。 //時(shí)間片輪轉(zhuǎn)調(diào)度算法 break。 case 4: SPF()。 //短進(jìn)程優(yōu)先調(diào)度算法 break。 default: printf(\n 輸入的算法編號(hào)錯(cuò)誤 !!\n)。 break。 } //switch(Input) bGoOn= false。 strcpy(sGoOn, )。 coutendl。 cout 要繼續(xù)進(jìn)行進(jìn)程調(diào)度算法模擬嗎 ?(Y/N) 。 cinsGoOn。 bGoOn=(sGoOn[0]==39。y39。||sGoOn[0]==39。Y39。)。 }//while bGoOn } //if(readData()==1) }//void main() e、 運(yùn)行截圖 三、 銀行家算法 進(jìn)程死鎖狀態(tài) 在多道程序系統(tǒng)中,雖然可借助于多個(gè)進(jìn)程的并發(fā)執(zhí)行來改善系統(tǒng)的資源利用率,提高系統(tǒng)的吞吐量,但可能發(fā)生一種危險(xiǎn) —— 死鎖。所謂死鎖( Deadlock),是指多個(gè)進(jìn)程在運(yùn)行過程中因爭奪資源而造成的一種僵局( DeadlyEmbrace) ,當(dāng)進(jìn)程處于這種僵持狀態(tài)時(shí),若無外力作用,他們都將無法向前推進(jìn)。 具有代表性的避免死鎖的算法,是 Djikstra 的銀行家算法,這是由于該算法能用于系統(tǒng)現(xiàn)金貸款的發(fā)放而得名的。 算法原理及設(shè)計(jì) ( 1)銀行家算法 思想 : 對用戶提出的請求進(jìn)行合法性檢查,即檢查請求的是不大于需要的 ,是否不大于可利用的。若請求合法,則進(jìn)行試分配。最后對試分配后的狀態(tài)調(diào)用安全性檢查算法進(jìn)行安全性檢查。若安全,則分配,否則,不分配,恢復(fù)原來狀態(tài),拒絕申請。 ( 2)銀行家算法數(shù)據(jù)結(jié)構(gòu): 可利用資源向量 int Available[j] j 為資源的種類 最大需求矩陣 int Max[i][j] i 為進(jìn)程的數(shù)量 分配矩陣 int Allocation[i][j] 需求矩陣 int need[i][j]= Max[i][j] Allocation[i][j] 申請各類資源數(shù)量 int Request i[j] i 進(jìn)程申請 j 資源的數(shù)量 工作向量 int Work[x] int Finish[y] ( 3)銀行家算法 進(jìn)程 i 發(fā)出請求申請 k 個(gè) j 資源, Request i[j]=k a、檢查申請量是否不大于需求量: Request i[j]=need[i,j],若條件不符重新輸入,不允許申請大于需求量。 b、檢查申請量是否小于系統(tǒng)中的可利用資源數(shù)量: Request i[j]=available[i,j],若條件不符就申請失敗,阻塞該進(jìn)程,用 goto 語句跳轉(zhuǎn)到重新申請資源。 c、若以上兩個(gè)條件都滿足,則系統(tǒng)試探著將資源分配給申請的進(jìn)程,并修改下面數(shù)據(jù)結(jié)構(gòu)中的數(shù)值: Available[i,j]= Available[i,j] Request i[j]; Allocation[i][j]= Allocation[i][j]+ Request i[j]; need[i][j]= need[i][j] Request i[j]; d、試分配后,執(zhí)行安全性檢查,調(diào)用 safe()函數(shù)檢查此次資源分配后系統(tǒng)是否處于安全狀態(tài)。若安全,才正式將資源分配給進(jìn)程; 否則本次試探分配作廢,恢復(fù)原來的資源分配狀態(tài),讓該進(jìn)程等待。 e、用 do{? }while 循環(huán)語句實(shí)現(xiàn)輸入字符 y/n 判斷是否繼續(xù)進(jìn)行資源申請。 ( 4) 安全性檢查算法 a、設(shè)置兩個(gè)向量: 工作向量 Work,它表示系統(tǒng)可提供給進(jìn)程繼續(xù)運(yùn)行所需的各類資源數(shù)目,在執(zhí)行安全性算法開始時(shí), Work= Available。 Finish,它表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運(yùn)行完成。開始時(shí)先做 Finish[i]=0;當(dāng)有足夠的資源分配給進(jìn)程時(shí),再令 Finish[i]=1。 b、在進(jìn)程中查找符合以下條件的進(jìn)程: 條件 1: Finish[i]=0; 條件 2: need[i][j]=Work[j] 若找到,則執(zhí)行步驟 (3)否則,執(zhí)行步驟 (4) c、當(dāng)進(jìn)程獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行: Work[j]= Work[j]+ Allocation[i][j]; Finish[i]=1; goto step 2; d、如果所有的 Finish[i]=1 都滿足,則表示系統(tǒng)處于安全狀態(tài),否則,處于不安全狀態(tài)。 ( 5) 操作系統(tǒng)銀行家算法流程圖: 初始化函數(shù)chushihua()開始 輸入各進(jìn)程當(dāng)前已分配的資源數(shù) 輸入各進(jìn)程對各類資源的最大需求 輸出提示:輸入有誤,請重新輸入 初始化函數(shù) chushihua()結(jié)束,銀行家函數(shù) Bank() 提出請求 REQUEST[i] REQUEST[i]=NEED[i] REQUEST[i]=AVAILABLE[[i] Safe()。 Error。 Error。 輸出提示:你的請求被拒! AVAILABLE[i]=REQUEST[i] ;ALLOCATION[i]=REQUEST[i]。 NEED[i]+=REQUEST[i]; 輸出提示:同意分配請求 代碼設(shè)計(jì) include include vector include iomanip include using namespace std。 define TRUE 1 //定義 TRUE =1 define FALSE 0 //定義 FLASE=0 void bank(vectorint,vectorvectorint ,vectorvectorint ,int ,int )。 //聲明 bank(應(yīng)行家算法) int safe(vectorint Available,vectorvectorint Need,vectorvectorint Allocation,int n,int m)。//聲明 safe()安全性算法 void init()。 /************************************* 主函數(shù)main()**************************************************************/ void main() { init()。 int safe(vectorint Available,vectorvectorint Need,vectorvectorint Allocation,int n,int m)。 } /************************************** 初 始 化 函 數(shù)init()*********************************************************/ void init() { 是否進(jìn)行再次分配 退出程序,銀行家算法 Bank()結(jié)束 。 安全性算法 Safe()開始 Work=AVAILABLE。FINISH=false; NEED[i]=Workamp。amp。FINISH[i]=false。 Work+=ALLOCATION[i]。FINISH[i]=ture。 安全,輸出安全序列 Return ture; 安全算法safe() 結(jié)束 輸出提示:系統(tǒng)是不安全的 int m。 //m 資源類數(shù) int n。 //進(jìn)程數(shù) system(color 0B)。 coutendlendl。 cout ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓ endl。 cout ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ endl。 cout ▓▓ ▓▓ endl。 cout ▓▓
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1