《操作系統(tǒng)》上機實驗報告—進程調(diào)度_第1頁
《操作系統(tǒng)》上機實驗報告—進程調(diào)度_第2頁
《操作系統(tǒng)》上機實驗報告—進程調(diào)度_第3頁
《操作系統(tǒng)》上機實驗報告—進程調(diào)度_第4頁
《操作系統(tǒng)》上機實驗報告—進程調(diào)度_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、.專業(yè)和班級姓名課程名稱實驗?zāi)康暮鸵罄碚摶A(chǔ)操作系統(tǒng) 上機實驗報告成績學(xué)號操作系統(tǒng)實驗名稱進程調(diào)度1. 進程調(diào)度是處理機管理的核心內(nèi)容。2. 本實驗要求用 c 語言編寫和調(diào)試一個簡單的進程調(diào)度程序。3. 通過本實驗可以加深理解有關(guān)進程控制塊、進程隊列的概念,并體會和了解優(yōu)先數(shù)和時間片輪轉(zhuǎn)調(diào)度算法的具體實施辦法。1、處理機調(diào)度的基本概念。處理器是計算機系統(tǒng)中的重要資源,處理器調(diào)度算法不僅對處理器的利用效率和用戶進程的執(zhí)行有影響,同時還與內(nèi)存等其他資源的使用密切相關(guān),對整個計算機系統(tǒng)的綜合性能指標(biāo)也有重要影響。2、進程調(diào)度方式:1、搶占式(剝奪式):當(dāng)一個進程正在處理器上運行時,系統(tǒng)可以根據(jù)規(guī)定

2、的原則剝奪分配給它的處理器,而把處理器分配給其他進程使用。2、非搶占式(非剝奪式):一旦某個進程開始執(zhí)行后便不再出讓處理器,除非該進程運行結(jié)束或發(fā)生了某個事件不能繼續(xù)執(zhí)行。3、本實驗所用調(diào)度算法a) 優(yōu)先數(shù)調(diào)度;為每個進程設(shè)置一個優(yōu)先數(shù),進程調(diào)度程序每次選擇就緒隊列中優(yōu)先數(shù)最大者占有處理器。b) 循環(huán)輪轉(zhuǎn)調(diào)度?;舅枷胧牵合到y(tǒng)確定一個適當(dāng)大小的時間片,所有進程排成一個就緒隊列按時間片輪流使用 cpu。又稱為時間片輪轉(zhuǎn)法。.實驗算法主體內(nèi)容及.#include#include#include#include#include#define p_num 5 / 共有 5 個進程#define p_t

3、ime 50 / 作為優(yōu)先數(shù)計算時所用的值enum stateready,execute,block,finish;/ 進程的狀態(tài),使用枚舉struct pcbchar name4; / 進程名稱int priority; / 進程優(yōu)先級int cputime; / 已經(jīng)占有 cpu 運行的時間int needtime; / 還需要運行的時間int count; / 在時間片輪轉(zhuǎn)法中使用的int round; / 在時間片輪轉(zhuǎn)法中使用的state process; /進程的狀態(tài)pcb *next; / 指向下一個進程的pcb;pcb *get_process() /通過輸入各進程的值來建立pc

4、b 隊列,并返回其首元素的指針pcb *q;pcb *t;pcb *p;int i=0;cout 請輸入進程名與時間endl;while(iq-name;cinq-needtime;q-cputime=0;q-priority=p_time-q-needtime;q-round=0;q-count=0;q-process=ready;q-next=null;if (i=0)p=q;t=q;else t-next=q; t=q; i+;return p;void display(pcb *p)/ 顯示本輪運行后的進程各狀態(tài)情況cout進程各狀態(tài)情況endl;cout 名稱 進入時間 還需時間 優(yōu)

5、先級 狀態(tài) endl; while(p)coutname;cout;coutcputime;cout;coutneedtime;cout;.coutpriority;coutprocess) / 對枚舉類型的輸出方法case ready:cout就緒 endl;break;case execute:cout執(zhí)行 endl;break;case block:cout 阻塞 endl;break;case finish:cout 完成 next;int process_finish(pcb *q) / 判斷所有的進程是否運行結(jié)束int b=1;while(q&b)b=b&q-needtime=0;

6、q=q-next;return b;void cpuexe(pcb *q)/ 優(yōu)先級調(diào)度算法的一次執(zhí)行pcb *t;t=q;int i=0;while(q)if (q-process!=finish)q-process=ready;if(q-needtime=0)q-process=finish;if(ipriority)if(q-process!=finish)t=q;i=q-priority;q=q-next;t-needtime-=1;t-priority-=3;if(t-needtime=0)t-process=finish;t-cputime+=1;void priority_cal

7、() / 優(yōu)先級調(diào)度算法pcb *p;p=get_process();/取得進程隊列int cpu=0;while(!process_finish(p) / 若進程并未全部結(jié)束,則還需要執(zhí)行cpu+;cout 運行次數(shù) :cpuendl;cpuexe(p);/ 一次 cpu 的執(zhí)行display(p);/ 顯示本次執(zhí)行結(jié)果pcb * get_process_round().pcb *q;pcb *t;pcb *p;int i=0;cout 請輸入進程名與時間endl;while (iq-name;cinq-needtime;q-cputime=0;q-round=0;q-count=0;q-p

8、rocess=ready;q-next=null;if(i=0)p=q;t=q;elset-next=q;t=q;i+;return p;void cpu_round(pcb *q)q-count+;q-cputime+=2;q-needtime-=2;if(q-needtimeneedtime=0;q-round+;q-process=execute;pcb *get_next(pcb *k,pcb *head)pcb *t;t=k;dot=t-next;while (t & t-process=finish);if(t=null)t=head;while (t-next!=k & t-pr

9、ocess=finish)t=t-next;return t;void set_state(pcb *p)while(p)if (p-needtime=0)p-process=finish;if (p-process=execute).p-process=ready;p=p-next;void display_round(pcb *p)cout進程各狀態(tài)情況endl;cout 名稱 進入時間 還需時間 時間片 次數(shù) 狀態(tài) endl;while(p)coutname;cout;coutcputime;cout;coutneedtime;cout;coutround;cout;coutcount;

10、coutprocess)case ready:cout就緒 endl;break;case execute:cout執(zhí)行 endl;break;case finish:cout 完成 next;void round_cal()pcb *p;pcb *r;p=get_process();int cpu=0;r=p;while(!process_finish(p)cpu+=2;cpu_round(r);r=get_next(r,p);cout 運行次數(shù) cpuendl;display_round(p);set_state(p); void display_menu()cout 進程調(diào)度算法操作:endl;cout1 優(yōu)先數(shù) endl;cout2 時間片輪轉(zhuǎn) endl;cout3 退出 endl;void ma

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論