


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、南通大學(xué)計算機科學(xué)與技術(shù)學(xué)院操作系統(tǒng)課程設(shè)計報告專 業(yè):計嵌151學(xué)生姓名:王志宏學(xué)號:18 時間:2017/6/28設(shè)計一個小型的操作系統(tǒng)設(shè)計要求將本學(xué)期三次的實驗集成實現(xiàn):1. 中斷處理2作業(yè)調(diào)度3. PV原語4. 死鎖5. 頁面替換6. 磁盤調(diào)度(一)設(shè)計流程圖主流程圖1. 中斷處理模擬時鐘中斷的產(chǎn)生及設(shè)計一個對時鐘中斷事件進行處理的模擬程序。計算機系統(tǒng)工作過程中,若出現(xiàn)中斷事件,硬件就把它記錄在中斷寄存器中。 中斷寄存器的每一位可與一個中斷事件對應(yīng), 當出現(xiàn)某中斷事件后,對應(yīng)的中斷 寄存器的某一位就被置成一1 llo處理器每執(zhí)行一條指令后,必須查中斷寄存器, 當中斷寄存器內(nèi)容不為一0
2、1時,說明有中斷事件發(fā)生。硬件把中斷寄存器內(nèi)容 以及現(xiàn)行程序的斷點存在主存的固定單元,且讓操作系統(tǒng)的中斷處理程序占用處 理器來處理出現(xiàn)的中斷事件。操作系統(tǒng)分析保存在主存固定單元中的中斷寄存器 內(nèi)容就可知道出現(xiàn)的中斷事件的性質(zhì), 從而作出相應(yīng)的處理。本實習(xí)中,用從鍵 盤讀入信息來模擬中斷寄存器的作用,用計數(shù)器加1來模擬處理器執(zhí)行了一條指令。每模擬一條指令執(zhí)行后,從鍵盤讀入信息且分析,當讀入信息=0時,表示無中斷事件發(fā)生,繼續(xù)執(zhí)行指令;當讀入信息 =1時,表示發(fā)生了時鐘中斷事 件,轉(zhuǎn)時鐘中斷處理程序2作業(yè)調(diào)度1)先來先服務(wù)FCFS數(shù)組為空結(jié)束先來先服務(wù)算法流程原語當一位哲學(xué)家吃 在吃完通心面后必1
3、 )哲學(xué)家吃通心面問題哲學(xué)家吃通心面:在這道題目里,每把叉子必須互斥使用, 通心面之前必須執(zhí)行兩個P操作,獲得自己左右兩邊的叉子, 須執(zhí)行兩個V操作,放下叉子。4.死鎖1)銀行家算法5.頁面替換1)先進先出FIFO2) LRUFIFO淘汰算法流程修改主存分塊表和頁表LRU淘汰算法流程6.磁盤調(diào)度1)先來先服務(wù)算法FCFS幵始輸入呈的讎道數(shù)輸入握岀磁盤10申請 的進程數(shù)輸入磁道序列(10結(jié)束諭入開始的磁道號諭出磁盤請求疼列和打描 序列求移動的總的5S道數(shù)求平均尋道長度結(jié)東(二)實現(xiàn)原理主界面設(shè)計一個框架分別去鏈接處理機管理、存儲器管理和缺頁調(diào)度相關(guān)的程序操作系統(tǒng)課程祓計1中斷處理 2-作業(yè)調(diào)度3
4、死鎖4.頁面替換5磁盤調(diào)度1. 中斷1申曲處魚乩柞玄死櫃丄口匠替楓11開始£憊回開洶某隼1 _當前殺圮咖:Tun 28 13:9:53 2D 17肪 斷 時晰 中 沖 中中 -I - rr 亍示 謹 區(qū) 喘m寺 lr- -牢 亍 亮一進程名稱*/進程編號*/到達時間*/開始運行時間*/ 運行時間*/ 運行結(jié)束時間*/ 優(yōu)先級*/ 運行次序*/ 調(diào)度標志*/2作業(yè)調(diào)度1)先來先服務(wù)FCFS(一)任務(wù)先來先服務(wù)的調(diào)度算法實現(xiàn)處理機調(diào)度。(二)要求1. 實現(xiàn)對FCFS算法的模擬實現(xiàn)2. 計算出該算法的平均作業(yè)周轉(zhuǎn)時間、平均帶權(quán)作業(yè)周轉(zhuǎn)時間。(三)原理按作業(yè)到達CPU時間先后順序進行非剝奪式
5、調(diào)度,先到達CPU的作業(yè)先被執(zhí) 彳亍。(四)數(shù)據(jù)結(jié)構(gòu)struct task_struct _char n ame;/*int nu mber;/*float come_time; /* float run_ begin_time;/*float run _time;/*float run_en d_time;/*int priority;/*int order;/*int run _flag;/*tasksMAX;int fcfs()/*先來先服務(wù)算法*/進程名鏈接指針 到達時估計運行時間 進程狀態(tài) : 進程控制塊結(jié)構(gòu)(五)實現(xiàn)方法建立一個鏈表按照到達CPU的時間從小到大排列,只需從第一個作業(yè)
6、(頭結(jié) 點)依次調(diào)度到最后一個作業(yè)(尾結(jié)點)。(六)運行界面 測試數(shù)據(jù):作業(yè)名到達時間運行時間A028B09C03執(zhí)行FCFS算法如下:2.返國H冰林冰水畔和并栩林冰半押栩林#先來先 服 務(wù)算法林林木林林半林木林林半林水林半33424553342【乍業(yè)名到達時間運行時間開始時間停止時間運行次序周轉(zhuǎn)時間1233.3333|: 5. 740741-中斷處理£作業(yè)調(diào)度3死鎖4頁面替換5.磁盤調(diào)度3. 死鎖假定本系統(tǒng)中的各個所需資源均是獨占型資源,在進程運行的過程中不再釋放,故只需要遍歷鏈表將各個進程中所需的資源統(tǒng)計出來,只要不大于系統(tǒng)中預(yù) 設(shè)的即可,一旦進程所需的資源大于系統(tǒng)中的最大量,給
7、予用戶選擇 kill 一進 程,已達到釋放資源的目的。死鎖檢測函數(shù):void sisuo()死鎖解除函數(shù):void safe()rror!申請的労労盧專隸詁3 22 2 3o o 0-1 24 2 05 仃o 2 31 o o- .1 oTf rp-.帀3 炷.:r7risnr3. 7 3 nH 2 4己 0 2 3 2 oLls 丄$星 辛4. 缺頁調(diào)度1)先進先出FIFO(一)任務(wù)采用先進先出FIFO算法實現(xiàn)分頁管理的缺頁調(diào)度,并輸出每次調(diào)入調(diào)出的 頁號和運行結(jié)果。(二)要求1. 實現(xiàn)對FIFO算法的模擬實現(xiàn)2. 輸出每次執(zhí)行的結(jié)果。(三)原理基于程序總是按線性順序來訪問物理空間這一假設(shè),
8、總是淘汰最先調(diào)入主存 的頁面,即淘汰在主存中駐留時間最長的頁面, 認為駐留時間最長的頁不再使用 的可能性較大。(四)數(shù)據(jù)結(jié)構(gòu)void FIFO()int len gth;int fifo100=0;int pageLe ngth;int fifoPage100=0;*先進先出算法int i,j;cout<<""<<e ndl;*pageLe ngth=3;len gth=9;for(i=1;i<=le ngth;i+)int flag=0; for(j=1;j<=pageLe ngth;j+) if(fifoi=fifoPagei) fl
9、ag=1;j=pageLe ngth+1;else if(fifoPagej=0)fifoPagej=fifoi;j=pageLe ngth+1;flag=1;if(flag=1)elsecout<<"f 淘汰"<<fifoPage1<<endl;for(j=1;j<=pageLe ngth;j+)fifoPagej=fifoPagej+1; fifoPagepageLe ngth=fifoi;(五) 實現(xiàn)方法當采用先進先出算法時,用一個數(shù)組構(gòu)成先進先出隊列,數(shù)組中各個元素為 進程已在主存的頁號,其隊列頭指針初始化為0.假設(shè)分配給每
10、個進程的內(nèi)存塊數(shù)固定。當隊列滿需淘汰時,淘汰最先進入主存的一頁。若該頁修改過,還有存 入磁盤。然后要把當前訪問的頁裝入該塊,并修改頁表和存儲分塊表的對應(yīng)標志。(六) 運行界面測試數(shù)據(jù):頁表長度:9;頁框長度:3;頁面請求數(shù)列:4,4,3,5,1,1,2,3,2執(zhí)行先進先出FIFO算法結(jié)果如下:最近最少使用 LRU 算法*"<<e ndl;2) LRU(一)任務(wù)采用先進先出LRU算法實現(xiàn)分頁管理的缺頁調(diào)度,并輸出每次調(diào)入調(diào)出的頁 號和運行結(jié)果。(二)要求1. 實現(xiàn)對LRU算法的模擬實現(xiàn)2. 輸出每次執(zhí)行的結(jié)果。(三)原理最近最少使用頁面替換算法淘汰的頁面是在最近一段時間內(nèi)最
11、久未被訪問 的那一頁,它是基于程序局部性原理來考慮的, 認為那些剛被使用過的頁面可能 還有立即被使用,而那些在較長時間內(nèi)未被使用的頁面可能不會立即使用。在分頁虛擬存儲系統(tǒng)中,當硬件發(fā)出缺頁中斷后轉(zhuǎn)操作系統(tǒng)處理缺頁中斷。如果主存中已無空閑塊,可采用LRU算法進行缺頁處理。(四)數(shù)據(jù)結(jié)構(gòu)void LRU()int len gth;int lru1OO=O;int pageLe ngth;int lruPage100=0;int i,j;m* pageLe ngth=3;len gth=9;for(i=1;i<=le ngth;i+)int flag=0;for(j=1;j<=pageL
12、e ngth;j+) if(lrui=lruPagej) for(i nt cc=j;cc>0;cc-)lruPagecc=lruPagecc-1; lruPage1=lrui;flag=1; j=pageLe ngth+1;else if(lruPagej=0) for(i nt vv=j;vv>0;vv-)lruPagevv=lruPagevv-1; lruPage1=lrui; j=pageLe ngth+1; flag=1;if(flag=1)elseCOUt<<"T 淘汰"<<lruPagepageLe ngth<<
13、e ndl;for(j=pageLe ngth;j>O;j-)lruPagej=lruPagej-1;lruPage1=lrui;(五)實現(xiàn)方法當采用LRU算法時,用一個數(shù)組構(gòu)成堆棧,堆棧中各個元素為進程已在主存 的頁號,為了進行頁面置換,可設(shè)置一個棧指針,初始化為0.假定分配給每個進程的內(nèi)存塊數(shù)固定不變。當隊列滿需淘汰時,操作系統(tǒng)選擇棧底元素淘汰,其 他元素向下移一個位置,將新調(diào)入頁放棧指針指示的棧頂。當訪問的頁在棧中時, 還應(yīng)調(diào)整頁從當前位置到棧頂。(六)運行界面測試數(shù)據(jù):頁表長度:9;頁框長度:3;頁面請求數(shù)列:2,3,5,1,5,5,4,4,3執(zhí)行最近最少使用LRU算法結(jié)果如下:
14、5. 磁盤調(diào)度1)先來先服務(wù)算法FCFS這是一種比較簡單的磁盤調(diào)度算法。它根據(jù)進程請求訪問磁盤的先后次序進行調(diào)度。此算法的優(yōu)點是公平、簡單,且每個進程的請求都能依次得到處理,不會出現(xiàn)某一進程的請求長期得不到滿足的情況。此算法由于未對尋道進行優(yōu)化,在對磁盤的訪問請求比較多的情況 下,此算法將降低設(shè)備服務(wù)的吞吐量,致使平均尋道時間可能較長,但各進程得到服務(wù)的響應(yīng)時間的變化幅度較小。5.彳邁盤諧崔1 中斷處理 2作業(yè)調(diào)度&死鎖 匸頁面替換E為12號12殆 列:道:2.55 - 道禽列度 肇前序長4戈掃尋 1請1120恨蹙焜毗平& 97M6S5nz- 1± _ro1 15 5
15、 o才返回開始菜單56732167357 9 2 1 6 7 3 57 9 2 16 7 2 5(三)總結(jié)與體會通過本次課程設(shè)計讓我對于圖形界面設(shè)計有了一定的思路和看法,同時我對先來先服務(wù)、時間片輪轉(zhuǎn)、首次適應(yīng)算法、最佳適應(yīng)算法、先進先出和最近最少 使用算法有了更詳盡的認識。在編程的過程中發(fā)現(xiàn)會用到大量的指針, 用指針來 操作大量的數(shù)據(jù)比較方便,但最后應(yīng)該記得釋放資源。從這次實驗中我發(fā)現(xiàn)我對 于C+掌握也有所不足,程序經(jīng)過了多次修改才得以完善,在以后應(yīng)該注重編程 方面的訓(xùn)練。此外我還更深入的理解了各個進程調(diào)度算法,及實現(xiàn)過程。在編寫程序時查 詢了很多資料,間接提高了我的搜索能力。在此次課程設(shè)計
16、過程中,對進程的相 關(guān)知識有了一定的加深。特別是對進程的進程控制塊的存在和價值有了更進一步 的認識。在編寫程序的過程之中,對進程自身信息的設(shè)計和管理以及調(diào)度的算法 都有助于對書本知識的理解和掌握。特別是設(shè)計先來先服務(wù)調(diào)度算法和時間片輪 轉(zhuǎn)調(diào)度算法的時候,對進程的調(diào)度算法有了更好的深入理解。 對進程管理中的等 待隊列,就緒隊列,時間片等概念有了更深刻的印象。在設(shè)計此模擬操作系統(tǒng)的課設(shè)中,也加深了對 C+知識的把握。解決了一些 以往在編程中遇到了困難。通過此次的課程設(shè)計,不僅提高了對操作系統(tǒng)的認知, 也在同時提高了編程的能力,加強了實踐。另外,我覺得此次課程設(shè)計雖然主要 冋題是在編程上,但是經(jīng)過不
17、斷的去調(diào)試,還是成功的調(diào)試了出來。但是這幾個 程序用了多天的時間進行分析和修改,雖然出現(xiàn)了不少問題,但收獲頗多!源代碼:#inelude <iostream>#inelude <cstring>#i nclude<estddef>#in elude<>#in elude<>#in elude<stri ng>#in elude<>#inelude <>#inelude <> using namespaeestd;int fcfsoutput(); /* 調(diào)度結(jié)果輸岀 */int fefs
18、input(); un_begin_time = time_temp;tasksi.ru n_en d_time = tasksi.ru n_beg in _time + tasksi.ru n_time;tasksi.ru n_flag = 1;time temp = tasksi.ru n en d time;n umber_sehedul = i;tasks n umber_schedul.order = i + 1;fefsoutput();return 0;int fefsinput()task_struet tt;int i, j;un _time = 28;tasks1.ru n
19、_ time = 9;tasks2.ru n_ time = 3;ame = 'A' =B ; =C ;eout <<“*先來先服務(wù)算法*'、<< endl <<endl;for (i = 0; i<eounter; i+)tasksi.ru n_beg in _time = 0; tasksi.ru n_en d_time = 0; tasksi.order = 0;tasksi.ru n_flag = 0;return 0;int fcfsoutput() /* 調(diào)度結(jié)果輸岀 */
20、 int i;float tur n_rou nd_time = 0, f1, w = 0;cout << "*先來先服*"<< endrcout << "作業(yè)名 到達時間 運行時間 開始時間 停止時間運行次序 周轉(zhuǎn)時間"vv endl;for (i = 0; i<counter; i+)fl = tasksi.ru n_en d_time - tasksie_time;tur n_rou nd_time += f1;w += (f1 / tasksi.ru n_time);I!cout << &qu
21、ot; "<< <<'t'<< " "<< tasksie_time <<'t' vv "<< tasksi.ru n time<< 't'<< ""<< tasksi.ru n beg in timevv 't'vvI!I!<< tasksi.ru n_en d_time <<'t'<<
22、tasksi.order <<'t'<< fl <<'t'<<en dl;cout << "平均周轉(zhuǎn)時間:"<< tur n roun d time / cou nter << en dl;cout << "平均帶權(quán)周轉(zhuǎn)時間:"<< w / cou nter << endl;cout << ""return 0;void zuoyediaodu() 來先服務(wù)算法t 2.返回
23、開始菜單"<< endl; cin >> n;switch (n)case 1: fcfs(); kaishi();break ;case 2: kaishi(); kaishi();break;/* */void FIFO()int length;int fifo100 = 0 ;int pageLength;int fifoPage100 = 0 ;int i, j;cout << "*先進先出算法*' I<< en dl;pageLe ngth = 3;len gth = 9;cout << &quo
24、t;時刻 t" << 't'for (i = 0; i<length; i+)cout << i <<'t'cout << endl <<"引用串"<< 't'for (i = 1; i <= length; i+)fifoi = ran d() % 5 + 1;cout << fifoi <<'t'for (i = 1; i <= length; i+)int flag = 0;for
25、(j = 1; j <= pageLength; j+)if (fifoi = fifoPagej)flag = 1;j = pageLe ngth + 1;else if (fifoPagej = 0)fifoPagej = fifoi;j = pageLe ngth + 1;flag = 1;if (flag = 1)elsecout << "t淘汰"<< fifoPage1 << endl;for (j = 1; j <= pageLength; j+)fifoPagej = fifoPagej + 1; fifoPag
26、epageLe ngth = fifoi;cout << endl <<"t=" << i - 1 <<"時"<< 't'for (int jk = 1; jk <= pageLength; jk+)cout << "P" << jk <<'t'cout << endl <<'t'for ( int s = 1; s <= pageLength; s+)co
27、ut << en dl;void LRU() int length;int lru100 = 0 ;int pageLength;int lruPage100 = 0 ;int i, j;cout << I *最近最少使用LRU算法*'、<<en dl;pageLe ngth = 3;len gth = 9;cout << "時刻 t" << 't'for (i = 0; i<length; i+)cout << i <<'t'cout <
28、< endl <<"引用串"<< 't'for (i = 1; i <= length; i+)lrui = ran d() % 5 + 1;cout << lrui <<'t'for (i = 1; i <= length; i+)int flag = 0;for (j = 1; j <= pageLength; j+)if (lrui = lruPagej)for (int cc = j; cc>0; cc-) lruPagecc = lruPagecc - 1
29、;lruPage1 = lrui;flag = 1;j = pageLe ngth + 1;else if (lruPagej = 0)for ( int vv = j; vv>0; vv-) lruPagevv = lruPagevv - 1;lruPage1 = lrui;j = pageLe ngth + 1; flag = 1;if (flag = 1) |cout << "t淘汰"<< lruPagepageLength << endl;for (j = pageLength; j>0; j-)lruPagej =
30、lruPagej - 1;lruPage1 = lrui;cout << endl <<"t=" << i - 1 <<"時"<< 't'for ( int jk = 1; jk <= pageLength; jk+)| |cout << "P" << jk <<'t'cout << endl <<'t'for ( int s = 1; s <= pageL
31、ength; s+)cout << lruPages <<'t'cout << en dl; void queye()進先岀算法 算法t3.返回開始菜單"<< endl;cin >> n;switch (n)case 1: FIFO(); kaishi();break ;case 2: LRU(); kaishi(); break;case 3: kaishi(); kaishi();break;*/*判斷輸入數(shù)據(jù)是否有效*F:cin >> str; 始t2.返回開始菜單"<<
32、; endl;cin >> n;switch (n)case 1: dead_lock(); kaishi();break;case 2: kaishi(); kaishi();break;/* */void ZD()double p;int a, m, r, n, e, o, u;struct tm *local;char *st, s27;time_t t;t = time( NULL;local = localtime(&t);st = asctime(local);始t2.返回開始菜單"<< endl;cin >> n;switch
33、 (n)case 1: ZD(); kaishi();break ;case 2: kaishi(); kaishi();break;/* */struct processstri ng n ame;float arrivetime;ame >> i.ru ntime;cout << en dl;float search( strings, program p, int n)for ( int i = n - 1; i >= 0; i-)if i.flag&& =s)retur n i.fi ni shtime;return 0;vv
34、"tt"void Print( program p, int n)ame << "t"<< k.starttime << "tt"<< k.finishtime<< k.arrivetime <<"tt"<< k.runtime << endl;void P n1, n2;program a, b;cout vv "*cout vv "輸入程序A的運行步驟: cin >>
35、; n1;cout << en dl;in put(a, n 1);cout << "輸入程序B的運行步驟: cin >> n2;cout << en dl;in put(b, n2);0.arrivetime = 0;0.arrivetime = 0;0.fi ni shtime = 0;多道程序設(shè)計*' I<< en dl;0.fi ni shtime = 0;int i = 0, j = 0;float f;doif i.arrivetime <= j.arrivetime)f = searchi. na
36、me, b, n 2);if (f <= i.arrivetime)i.starttime = i.arrivetime;else i.starttime = f;i.fi ni shtime = i.starttime + i.ru ntime;i.flag = true ;if (i < n1 - 1)i + 1.arrivetime = i.fi ni shtime;i+;if i.arrivetime >= j.arrivetime)f = search。, name, a, n 1);if (f <= j.arrivetime)j.starttime = j.
37、arrivetime;elsej.starttime = f;j.fi ni shtime = j.starttime + j.ru ntime;j.flag = true ;if (j < n2 - 1)j + 1.arrivetime = j.fi ni shtime; j+; while (!n1 - 1.flag && !n2 - 1.flag);while n 1 - 1.flag&& !n2 - 1.flag)|j.starttime = j.arrivetime;j.fi ni shtime = j.starttime + j.ru ntim
38、e;j.flag = true ;if (j < n2 - 1)j + 1.arrivetime = j.fi ni shtime;j+;while n2 - 1.flag&&!n 1 - 1.flag)|i.starttime = i.arrivetime;i.fi ni shtime = i.starttime + i.ru ntime;i.flag = true ;if (i < n1 - 1)i + 1.arrivetime = i.fi ni shtime;i+;Prin t(a, n1);Prin t(b, n2);system( "pause
39、");void duodaochengxu()int n;cout << en dl;cout << "t1.開始t2.返回開始菜單"<< endl;cin >> n;switch (n)case 1: Program。; kaishi();break ;case 2: kaishi(); kaishi();break;/* */int avaResour3 = 3, 3, 2 ;int allocation53 = 0,1, 0 , 2, 0, 0 , 3, 0, 2 , 2,1,1 , 0, 0, 2 ;int
40、maxRequest53 = 7, 5, 3 , 3, 2, 2 , 9, 0, 2 , 2, 2, 2 , 4, 3, 3 ;int nneed53 = 7, 4, 3 , 1, 2, 2 , 6, 0, 0 , 0, 1, 1 , 4, 3, 1 ;void rrequest();bool safeTest(); _|void rrequest()int sqjc = 0, i = 0, l = 0, a = 0, b = 0, c = 0;<< en dl;char contn = 0;cout << endl << "進程個數(shù):5 資源個數(shù)
41、:3" << endl << "可用資源向量 Available:" for (i = 0; i<3; i+)cout << avaResouri <<"" |cout << endl <<"最大需求矩陣 Max:" << endl;for (i = 0; i<5; i+)for (l = 0; l<3; l+)cout << maxRequestil <<""cout <&
42、lt; en dl;cout << "已分配矩陣 Allocation:"<< endl;for (i = 0; i<5; i+)for (l = 0; l<3; l+)cout << allocatio n il <<"" |cout << en dl;cout << "需求矩陣 Need:" << endl;for (i = 0; i<5; i+)|for (l = 0; l<3; l+)cout << nn e
43、edil <<""cout << en dl;cout << "輸入發(fā)起請求的進程(0-4):"cin >> sqjc;while (sqjc>4 | sqjc<0)cout << endl <<"不要亂輸! A_A"<< endl;cout << endl <<"輸入發(fā)起請求的進程(0-4):"cin >> sqjc; |cout << "輸入請求資源的數(shù)目,按
44、照這樣的格式輸入x x x:"cin >> a >> b >> c;if (a <= nneedsqjc0 && b <= nneedsqjc1 && c <= nneedsqjc2)cout << endl <<"開始執(zhí)行銀行家算法."<< endl;if (a <= avaResour0 && b <= avaResour1 && c <= avaResour2)avaResour0 = a
45、vaResour0 - a; avaResour1 = avaResour1 - b;avaResour2 = avaResour2 - c;allocati on sqjc0 = allocati on sqjc0 + a;allocatio nsqjc1 = allocatio nsqjc1 + b;allocati on sqjc2 = allocati on sqjc2 + c;nn eedsqjc0 = nn eedsqjc0 - a;nn eedsqjc1 = nn eedsqjc1 - b;nn eedsqjc2 = nn eedsqjc2 - c;cout << e
46、ndl <<"試分配完成."<< endl;if (safeTest()<< endlcout << endl <<"開始給第"<< sqjc <<"個進程分配資源<< "分配完成,已更新"<< endl;for (i = 0; i<5; i+)if (nneedi0 = 0 && nneedi1 = 0 && nneedi2 = 0) for (I = 0; l<3; l+
47、)avaResourI = avaResourI + allocati on il; allocatio n il = 0;elsecout << endl <<"系統(tǒng)已恢復(fù)試分配前狀態(tài)。"<< endl;avaResour0 = avaResour0 + a; avaResour1 = avaResour1 + b; avaResour2 = avaResour2 + c;allocati on sqjcO = allocati on sqjcO - a;allocati on sqjc1 = allocati on sqjc1 - b
48、;allocati on sqjc2 = allocati on sqjc2 - c;nn eedsqjc0 = nn eedsqjc0 + a;nn eedsqjc1 = nn eedsqjc1 + b;nn eedsqjc2 = nn eedsqjc2 + c;elsecout << endl <<"試分配失敗,系統(tǒng)無足夠資源"<< endl;elsecout << endl << "Error!申請的資源大于需求值"<< endl;xz:cout << "nn"<< "要繼續(xù)嗎? ( y-繼續(xù);n-終止):"cin >> contn;switch (contn)case 'y' :rrequest(); |case 'n' : break ;default :
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來教育技術(shù)中的人性化設(shè)計研究
- 中國增濕器行業(yè)發(fā)展趨勢及發(fā)展前景研究報告2025-2028版
- 口腔種植物品管理
- 小學(xué)二年級數(shù)學(xué)幾千幾百數(shù)加減整百數(shù)競賽測試模擬題
- 工藝分析與模具設(shè)計答辯
- 酒店廚房設(shè)備采購協(xié)議
- 項目成立協(xié)議
- 五年級數(shù)學(xué)(小數(shù)乘除法)計算題專項練習(xí)及答案匯編
- 酒店婚宴訂餐合同
- 2025至2030中國供銷合作社行業(yè)銷售額預(yù)測及未來經(jīng)營模式分析報告
- 河道維修養(yǎng)護管理制度
- 北京市朝陽區(qū)招聘社區(qū)工作者筆試真題2024
- 2025年重慶市中考數(shù)學(xué)試卷真題(含標準答案)
- 農(nóng)機耕地合同協(xié)議書范本
- T/CNESA 1203-2021壓縮空氣儲能系統(tǒng)性能測試規(guī)范
- T/CGMA 031003-2020一般用離心空氣壓縮機
- 2025年河北省中考乾坤押題卷化學(xué)試卷B及答案
- 2025年四年級下冊美術(shù)期末測試題附答案
- 計量經(jīng)濟學(xué)知到智慧樹期末考試答案題庫2025年南開大學(xué)
- 2025至2030中國天文館行業(yè)投資前景研究與銷售戰(zhàn)略研究報告
- 書法鑒賞智慧樹知到期末考試答案章節(jié)答案2024年紹興文理學(xué)院
評論
0/150
提交評論