




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、操作系統(tǒng)上機實驗報告專業(yè)和班級成績姓名學號課程名稱操作系統(tǒng)實驗名稱進程調(diào)度實驗?zāi)?的和要 求1. 進程調(diào)度是處理機管理的核心內(nèi)容。2. 本實驗要求用C語言編寫和調(diào)試一個簡單的進程調(diào)度程序。3. 通過本實驗可以加深理解有關(guān)進程控制塊、進程隊列的概念,并體會和了解優(yōu) 先數(shù)和時間片輪轉(zhuǎn)調(diào)度算法的具體實施辦法。理論基 礎(chǔ)1、處理機調(diào)度的基本概念。處理器是計算機系統(tǒng)中的重要資源,處理器調(diào)度算法不僅對處理器的利用效率 和用戶進程的執(zhí)行有影響,同時還與內(nèi)存等其他資源的使用密切相關(guān),對整個計算 機系統(tǒng)的綜合性能指標也有重要影響。2、進程調(diào)度方式:1、搶占式(剝奪式):當一個進程正在處理器上運行時,系統(tǒng)可以根據(jù)
2、規(guī)定的原則剝奪分配 給它的處 理器,而把處理器分配給其他進程使用。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)度。基本思想是:系統(tǒng)確定一個適當大小的時間片,所有進程排成一個就 緒隊列按實驗算法主體內(nèi)容及#include#in clude# include#in clude#include#define P_NUM 5 / 共有 5 個進程#define P_TIME 50 /作為優(yōu)先數(shù)計算時
3、所用的值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() /通過輸入各進程的值來建立pcb隊列,并返回其首元素的指針pcb *q;pcb *t;pcb *
4、p;int i=0;coutvv”請輸入進程名與時間endl;while(iname; cinq-needtime; q-cputime=O; 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;elset-next=q; t=q; i+;return p;void display(pcb *p) /顯示本輪運行后的進程各狀態(tài)情況coutvvH進程各狀態(tài)情況vvendl;coutvv名稱“vv” ”vv“進入時間“vv” ”vv“還需時間“vv” ”vv”
5、優(yōu)先級”vv“ ”vv”狀態(tài)vvendl; while(p)coutvvp-n ame;coutvvHH;coutvvp-cputime;coutvvH ,f;coutvvp-n eedtime;coutvvH f,;coutpriority;coutw;switch(p-process) /對枚舉類型的輸出方法亠case ready:cout v”就緒”vvendl;break;case execute:coutnext;int process_finish(pcb p) /判斷所有的進程是否運行結(jié)束int b=1;while (q&b)b=b&q-needtime=O; q=q_next;
6、 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=qnext;ton eedtime-=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+;coutvv運行次數(shù):vvcpuwendl; cpuexe(p);/次 cpu 的執(zhí)行display(p);/顯不本次執(zhí)彳丁結(jié)果pcb * get_process_round() pcb *q;pcb *t;pcb *p;int i=0;coutvv”請輸入進程名與時間endl; while (in ame;cinqneedtime; q-cputime=O; qoroun d=0;q-count=0;
8、q_process=ready; q-next=NULL; if(i=0)p=q; t=q;elseton ext=q;t=q;i+; returnP; void cpu_round(pcb *q)-q-co un t+; q-cputime+=2;qn eedtime-=2; if(q-needtimen eedtime=0; q-roun d+;qprocess二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
9、(t-next!二k & t-process=finish) t=t-n ext; returnt;void set_state(pcb *p)while(p)if (pneedtime=O)p-process=finish;if (p-process=execute)p_process=ready; p=p_next;void display_round(pcb *p)-coutH進程各狀態(tài)情況Hvvendl;coutw*名稱”vv“ “vv”進入時間“vv” ”vv”還需時間”vv ”vv“時間片,W” vv”次數(shù)”vv” vv”狀態(tài)vvendl;while(p)coutvvp-n ame
10、;coutvvH;coutvvp-cputime;coutvv H;coutvvp-n eedtime;coutvvcoutvvp-r ound;coutw;coutvvp-co unt;coutw;switch(p-process)case ready:coutv v”就緒”vvendl;break;case execute:coutvv執(zhí)彳亍vvendl;break;case finish:coutvv”完成”vvendl;break;p=p-n ext;void round_cal()pcb *p;pcb *r;P=get_process();int cpu=0;r=P;while(!p
11、rocess_finish(p)cpu+=2;cpu_round(r);r=get_next(r,p);coutvv1運行次數(shù) Hvvcpuvvendl;display_r oun d(p);set_state(p);-void display_menu()coutvv”進程調(diào)度算法操作:vvendl;coutvv 1 優(yōu)先數(shù)vvendl;coutvvH2 時間片輪轉(zhuǎn)vvendl;coutvv3 退出vvendl;void main()display_me nu();int k;printf(n 請選擇:”);scanf(”d”,&k);switch (k)case 1:priority_cal();break;case 2:round_cal();break;case 3:break;測試數(shù)據(jù):EV間選1A2稱進入日寸I可03
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨文化交流中語感的差異與應(yīng)對策略研究
- 本莊小學體育課時安排意見
- 酒店業(yè)安全管理體系建設(shè)與應(yīng)急處理
- 雜技團合同范本
- 酒店設(shè)計中地域文化與藝術(shù)元素的結(jié)合實踐
- 廣東2025年02月廣東省汕尾市市直單位第一批公開招考6名政府聘員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 八年級體育上教案
- 高檔健身俱樂部的環(huán)境設(shè)計與裝修
- 跨境電子商務(wù)的教育與培訓機會
- 科技教育背景下師生共建的辦公模式探討
- 學術(shù)規(guī)范與寫作課件
- 《隆中對》教學講解課件
- 絕緣電阻測試儀安全操作規(guī)程
- DB6101T 197-2022 藤蔓類尾菜堆肥技術(shù)規(guī)程
- 西藏房屋建筑工程竣工材料全套表格
- 量子力學英文課件格里菲斯Chapter4
- 鍋爐節(jié)能管理制度
- 2023年道路交通安全法實施條例
- 鹽城市殘疾人康復(fù)機構(gòu)認定暫行辦法
- 護理不良事件管理、上報制度及流程
- 房地產(chǎn)公司各崗位職責及組織結(jié)構(gòu)圖
評論
0/150
提交評論