版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.專業(yè)和班級姓名課程名稱實(shí)驗(yàn)?zāi)康暮鸵罄碚摶A(chǔ)操作系統(tǒng) 上機(jī)實(shí)驗(yàn)報告成績學(xué)號操作系統(tǒng)實(shí)驗(yàn)名稱進(jìn)程調(diào)度1. 進(jìn)程調(diào)度是處理機(jī)管理的核心內(nèi)容。2. 本實(shí)驗(yàn)要求用 c 語言編寫和調(diào)試一個簡單的進(jìn)程調(diào)度程序。3. 通過本實(shí)驗(yàn)可以加深理解有關(guān)進(jìn)程控制塊、進(jìn)程隊(duì)列的概念,并體會和了解優(yōu)先數(shù)和時間片輪轉(zhuǎn)調(diào)度算法的具體實(shí)施辦法。1、處理機(jī)調(diào)度的基本概念。處理器是計(jì)算機(jī)系統(tǒng)中的重要資源,處理器調(diào)度算法不僅對處理器的利用效率和用戶進(jìn)程的執(zhí)行有影響,同時還與內(nèi)存等其他資源的使用密切相關(guān),對整個計(jì)算機(jī)系統(tǒng)的綜合性能指標(biāo)也有重要影響。2、進(jìn)程調(diào)度方式:1、搶占式(剝奪式):當(dāng)一個進(jìn)程正在處理器上運(yùn)行時,系統(tǒng)可以根據(jù)規(guī)定
2、的原則剝奪分配給它的處理器,而把處理器分配給其他進(jìn)程使用。2、非搶占式(非剝奪式):一旦某個進(jìn)程開始執(zhí)行后便不再出讓處理器,除非該進(jìn)程運(yùn)行結(jié)束或發(fā)生了某個事件不能繼續(xù)執(zhí)行。3、本實(shí)驗(yàn)所用調(diào)度算法a) 優(yōu)先數(shù)調(diào)度;為每個進(jìn)程設(shè)置一個優(yōu)先數(shù),進(jìn)程調(diào)度程序每次選擇就緒隊(duì)列中優(yōu)先數(shù)最大者占有處理器。b) 循環(huán)輪轉(zhuǎn)調(diào)度。基本思想是:系統(tǒng)確定一個適當(dāng)大小的時間片,所有進(jìn)程排成一個就緒隊(duì)列按時間片輪流使用 cpu。又稱為時間片輪轉(zhuǎn)法。.實(shí)驗(yàn)算法主體內(nèi)容及.#include#include#include#include#include#define p_num 5 / 共有 5 個進(jìn)程#define p_t
3、ime 50 / 作為優(yōu)先數(shù)計(jì)算時所用的值enum stateready,execute,block,finish;/ 進(jìn)程的狀態(tài),使用枚舉struct pcbchar name4; / 進(jìn)程名稱int priority; / 進(jìn)程優(yōu)先級int cputime; / 已經(jīng)占有 cpu 運(yùn)行的時間int needtime; / 還需要運(yùn)行的時間int count; / 在時間片輪轉(zhuǎn)法中使用的int round; / 在時間片輪轉(zhuǎn)法中使用的state process; /進(jìn)程的狀態(tài)pcb *next; / 指向下一個進(jìn)程的pcb;pcb *get_process() /通過輸入各進(jìn)程的值來建立pc
4、b 隊(duì)列,并返回其首元素的指針pcb *q;pcb *t;pcb *p;int i=0;cout 請輸入進(jìn)程名與時間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)/ 顯示本輪運(yùn)行后的進(jìn)程各狀態(tài)情況cout進(jìn)程各狀態(tài)情況endl;cout 名稱 進(jìn)入時間 還需時間 優(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) / 判斷所有的進(jìn)程是否運(yùn)行結(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();/取得進(jìn)程隊(duì)列int cpu=0;while(!process_finish(p) / 若進(jìn)程并未全部結(jié)束,則還需要執(zhí)行cpu+;cout 運(yùn)行次數(shù) :cpuendl;cpuexe(p);/ 一次 cpu 的執(zhí)行display(p);/ 顯示本次執(zhí)行結(jié)果pcb * get_process_round().pcb *q;pcb *t;pcb *p;int i=0;cout 請輸入進(jìn)程名與時間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進(jìn)程各狀態(tài)情況endl;cout 名稱 進(jìn)入時間 還需時間 時間片 次數(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 運(yùn)行次數(shù) cpuendl;display_round(p);set_state(p); void display_menu()cout 進(jìn)程調(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西雅圖食品飲料行業(yè)市場全面檢視及競爭環(huán)境與突破趨勢研究報告
- 2025年皋蘭縣招教考試備考題庫帶答案解析(必刷)
- 葡萄牙建筑行業(yè)市場發(fā)展現(xiàn)狀評估競爭評估規(guī)劃研究報告
- 荷蘭通訊設(shè)備行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 英國紡織服裝行業(yè)市場供需分析及投資評估規(guī)劃分析研究報告
- 英國智能交通系統(tǒng)行業(yè)市場現(xiàn)狀需求供給競爭發(fā)展評估投資規(guī)劃分析研究報告
- 2025年北京體育大學(xué)馬克思主義基本原理概論期末考試模擬題及答案解析(必刷)
- 2025年博湖縣招教考試備考題庫附答案解析(必刷)
- 2025年福建體育職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性考試題庫帶答案解析
- 2025年保定學(xué)院馬克思主義基本原理概論期末考試模擬題帶答案解析(必刷)
- T/CNCA 054-2023管道輸煤工程設(shè)計(jì)規(guī)范
- 工程招投標(biāo)與監(jiān)理實(shí)務(wù)整體介紹吳莉四川交通04課件
- 2025+CSCO宮頸癌診療指南解讀
- DG-TJ08-2207-2024城市供水管網(wǎng)泵站遠(yuǎn)程監(jiān)控系統(tǒng)技術(shù)標(biāo)準(zhǔn)
- 機(jī)器學(xué)習(xí)與隨機(jī)微分方程的深度集成方法-全面剖析
- 《TSGD7003-2022壓力管道定期檢驗(yàn)規(guī)則-長輸管道》
- GB/T 45355-2025無壓埋地排污、排水用聚乙烯(PE)管道系統(tǒng)
- 2025年全國碩士研究生入學(xué)統(tǒng)一考試 (數(shù)學(xué)二) 真題及解析
- 企業(yè)管理者的領(lǐng)導(dǎo)力培訓(xùn)
- There+be句型練習(xí)題及答案
- 《阻燃腈綸的研究與應(yīng)用》課件
評論
0/150
提交評論