![試驗(yàn)進(jìn)程調(diào)度試驗(yàn)報(bào)告_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/33f37710-8b20-4267-8cd0-9208e582e285/33f37710-8b20-4267-8cd0-9208e582e2851.gif)
![試驗(yàn)進(jìn)程調(diào)度試驗(yàn)報(bào)告_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/33f37710-8b20-4267-8cd0-9208e582e285/33f37710-8b20-4267-8cd0-9208e582e2852.gif)
![試驗(yàn)進(jìn)程調(diào)度試驗(yàn)報(bào)告_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/33f37710-8b20-4267-8cd0-9208e582e285/33f37710-8b20-4267-8cd0-9208e582e2853.gif)
![試驗(yàn)進(jìn)程調(diào)度試驗(yàn)報(bào)告_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/33f37710-8b20-4267-8cd0-9208e582e285/33f37710-8b20-4267-8cd0-9208e582e2854.gif)
![試驗(yàn)進(jìn)程調(diào)度試驗(yàn)報(bào)告_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/33f37710-8b20-4267-8cd0-9208e582e285/33f37710-8b20-4267-8cd0-9208e582e2855.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一、進(jìn)程調(diào)度實(shí)驗(yàn)報(bào)告廣東技術(shù)師范學(xué)院實(shí)驗(yàn)報(bào)告學(xué)院:計(jì)算機(jī)院科學(xué)學(xué)專業(yè):技計(jì)算術(shù)(機(jī)師科范學(xué)與) 班級(jí): 成績(jī):姓名:學(xué)號(hào): 組別: 組員:實(shí)驗(yàn)地點(diǎn): 實(shí)驗(yàn)日期: 指導(dǎo)教師簽名:預(yù)習(xí)情況操作情況考勤情況數(shù)據(jù)處理情況實(shí)驗(yàn)名稱: 實(shí)驗(yàn)一、進(jìn)程調(diào)度實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康挠酶呒?jí)語(yǔ)言編寫和調(diào)試一個(gè)進(jìn)程調(diào)度程序,以加深對(duì)進(jìn)程的概念及進(jìn)程調(diào)度算法的 理解二、實(shí)驗(yàn)類別綜合性實(shí)驗(yàn)。綜合高級(jí)語(yǔ)言編程、 進(jìn)程調(diào)度模型、 進(jìn)程調(diào)度算法及數(shù)據(jù)結(jié)構(gòu)等多方 面的知識(shí)三、實(shí)驗(yàn)內(nèi)容和步驟 1編寫并調(diào)試一個(gè)模擬的進(jìn)程調(diào)度程序,采用“最高優(yōu)先數(shù)優(yōu)先”調(diào)度算法對(duì)五個(gè)進(jìn) 程進(jìn)行調(diào)度?!白罡邇?yōu)先數(shù)優(yōu)先”調(diào)度算法的基本思想是把 CPU 分配給
2、就緒隊(duì)列中優(yōu)先數(shù)最高 的進(jìn)程。靜態(tài)優(yōu)先數(shù)是在創(chuàng)建進(jìn)程時(shí)確定的,并在整個(gè)進(jìn)程運(yùn)行期間不再改變。 動(dòng)態(tài)優(yōu)先數(shù)是指進(jìn)程的優(yōu)先數(shù)在創(chuàng)建進(jìn)程時(shí)可以給定一個(gè)初始值, 并且可以按一定 原則修改優(yōu)先數(shù)。例如:在進(jìn)程獲得一次 CPU后就將其優(yōu)先數(shù)減少 1?;蛘撸M(jìn)程等待 的時(shí)間超過(guò)某一時(shí)限時(shí)增加其優(yōu)先數(shù)的值,等等 該題根據(jù)老師給的代碼用 Visual C+ 運(yùn)行,結(jié)果以及分析如下:結(jié)果分析:根據(jù)上述輸入的三個(gè)進(jìn)程的信息可以得到:優(yōu)先級(jí)最高的是進(jìn)程 cc 最先調(diào)度進(jìn)程 cc的狀態(tài)為運(yùn)行態(tài),需要執(zhí)行的時(shí)間為 10 當(dāng)前就緒隊(duì)列狀態(tài)為:進(jìn) 程 aa 先級(jí)比較高,處于就緒隊(duì)列前面,而進(jìn)程 bb 先級(jí)是三者中最低的,所以
3、處于 就緒隊(duì)列的最后。而此時(shí)這兩個(gè)進(jìn)程的狀態(tài)都為就緒態(tài)。結(jié)果分析:當(dāng)進(jìn)程 cc了一個(gè)時(shí)間片之后而它已占用 CPU 時(shí)間已達(dá)到所需要的運(yùn)行時(shí) 間,則將它的優(yōu)先級(jí)減 1 之后,再將三個(gè)進(jìn)程按優(yōu)先級(jí)的大小排列,從中選擇優(yōu)先級(jí) 大的進(jìn)程進(jìn)入運(yùn)行狀態(tài),則該次進(jìn)入運(yùn)行態(tài)的是進(jìn)程 aa按照這種方式一直運(yùn)行下去:直到:結(jié)果分析:當(dāng)進(jìn)程 bb 的 CPU 占用時(shí)間等于它需要的執(zhí)行時(shí)間時(shí),進(jìn)程 bb 度完 成。則這時(shí)進(jìn)程調(diào)度中還有兩個(gè)進(jìn)程:進(jìn)程 aa 進(jìn)程 cc結(jié)果分析:當(dāng)調(diào)度進(jìn)程中只剩下進(jìn)程 aa 程 cc 這時(shí)根據(jù)進(jìn)程優(yōu)先級(jí)的大小,進(jìn)程 aa 入運(yùn)行態(tài)。當(dāng)進(jìn)程 aa調(diào)度時(shí),進(jìn)程調(diào)度程序中直剩下進(jìn)程 cc這時(shí)進(jìn)
4、程 cc 進(jìn)入運(yùn) 行態(tài),而當(dāng)前就緒隊(duì)列將為空。直到:結(jié)果分析:當(dāng)進(jìn)程 i 的 CPU 占用時(shí)間等于所需要的執(zhí)行時(shí)間時(shí),進(jìn)程 cc 調(diào)度完 成,則這時(shí)進(jìn)程調(diào)度中已經(jīng)沒(méi)有需要調(diào)度的進(jìn)程了,則整個(gè)進(jìn)程調(diào)度完成。2、編寫并調(diào)試一個(gè)模擬的進(jìn)程調(diào)度程序,采用“輪轉(zhuǎn)法”調(diào)度算法對(duì)五個(gè)進(jìn)程進(jìn)行 調(diào)度。輪轉(zhuǎn)法可以是簡(jiǎn)單輪轉(zhuǎn)法、可變時(shí)間片輪轉(zhuǎn)法,或多隊(duì)列輪轉(zhuǎn)法。簡(jiǎn)單輪轉(zhuǎn)法的基本思想是:所有就緒進(jìn)程按 FCFS排成一個(gè)隊(duì)列,總是把處理機(jī)分 配給隊(duì)首的進(jìn)程, 各進(jìn)程占用 CPU的時(shí)間片相同。 如果運(yùn)行進(jìn)程用完它的時(shí)間片后還為 完成,就把它送回到就緒隊(duì)列的末尾, 把處理機(jī)重新分配給隊(duì)首的進(jìn)程。直至所有的進(jìn) 程運(yùn)行完畢。
5、將老師給的源程序修改成簡(jiǎn)單的時(shí)間片輪轉(zhuǎn)法 流程圖如下:開(kāi)始初始化 PCB,輸各進(jìn)程按 FCFS原則所有就緒隊(duì)列首進(jìn) 時(shí)間片到,時(shí)間片輪轉(zhuǎn)法#include#include #include#define getpch(type) (type*)malloc(sizeof(type)#define NULL 0#define TIME 2/ 時(shí)間片長(zhǎng)度/typedef struct pcb /進(jìn)程管理塊char name10;/ 進(jìn)程名字char state;/ 進(jìn)程狀態(tài)int queue; / 進(jìn)程所在的隊(duì)列int ntime;/進(jìn)程需要運(yùn)行的時(shí)間int rtime;/進(jìn)程已經(jīng)運(yùn)行的時(shí)間int
6、 etime;/進(jìn)程在本隊(duì)列可運(yùn)行的時(shí)間片struct pcb *link;/* 就 緒隊(duì)PCB;PCB *ready = NULL, *pinsert = NULL, *pfend = NULL,*p =NULL;列,進(jìn)程插入位置的變量 */int geti() / 使用戶僅能輸入整數(shù)char ch;int i = 0;fflush(stdin);ch = getchar();while(ch = n)printf(tf 輸入不能為空 . 請(qǐng)重新輸入 n); fflush(stdin);ch = getchar();while(ch != n)if(ch 9 | ch link | (ps-
7、 link-queue - ps-queue) 1) pinsert = ps;elsewhile (ps-link & ps -link-queue != (pfend -queue +2) ps = ps-link;插入進(jìn)程pinsert = ps;oid insert()/if(!ready )第一隊(duì)列存在ready = p; pfend = p; pinsert = p;else if(ready -queue = 1) / p-link = pfend-link;pfend-link = p;pfend = p;findpos();Elsep-link = ready; ready
8、= p; findpos();oid input()/*建立進(jìn)程控制塊函數(shù) */ int i,num;printf(n 請(qǐng)輸入進(jìn)程的個(gè)數(shù): ); num = geti();for(i=0; i name);printf(n 輸入進(jìn)程運(yùn)行時(shí)間 :);p -ntime = geti();printf(n); p-rtime=0; p-state=w;p-queue =1;p-etime = TIME;p-link=NULL;insert();/* 調(diào)用 insert 函數(shù) */oid disp(PCB *pr)/* 建立進(jìn)程現(xiàn)實(shí)函數(shù),用于顯示當(dāng)前進(jìn)程 */printf(nnamet statet
9、queuet ntimet rtimetprintf(|%st,pr-name);printf( |%ct,pr-state);printf( |%dt,pr-queue);printf( |%dt,pr-ntime);printf( |%dt,pr-rtime);printf( |%dt,pr-etime);printf(n);oid check()/* 建立進(jìn)程查看函數(shù) */PCB *pr;printf(n *程*/disp(ready); pr= ready -link; printf(n*在隊(duì)列可停留時(shí)間 t n)當(dāng)前正在運(yùn)行的進(jìn)程是 :%s,ready-name);/* 顯示當(dāng)前運(yùn)行
10、的進(jìn)當(dāng)前就緒隊(duì)列狀態(tài)為 :n);/* 顯示就緒隊(duì)列狀態(tài) */while(pr!=NULL)disp(pr);pr=pr-link;oid sort()/ 調(diào)整進(jìn)程隊(duì)列if(!ready-link |ready-queue link-queue) return; p = ready -link;ready -link = pinsert -link; pinsert -link = ready; pinsert = ready;ready = p;if (ready & ready - queue = pinsert -queue) findpos();oid addnew()/ 添加新的進(jìn)程i
11、f(ready -queue != 1)(ready - queue)+; ready-etime *= 2;ready - state=w;sort();/* 調(diào)用 sort 函數(shù) */ input();elseinput();oid destroy()/* 建立進(jìn)程撤銷函數(shù) ( 進(jìn)程運(yùn)行結(jié)束,撤銷進(jìn)程 )*/printf(n 進(jìn)程%s 已完成.n,ready-name); p = ready;ready = ready-link;free(p);if (ready & ready - queue = pinsert -queue) findpos();oid running()/* 建立進(jìn)
12、程就緒函數(shù) ( 進(jìn)程運(yùn)行時(shí)間到,置就緒狀態(tài) )*/(ready - rtime)+; ready -etime -; if(ready-rtime = ready-ntime)return;else if(ready -etime = 0)int time = 2;(ready - queue)+;for(int i = 2; i != ready-queue; +i)time *= 2;ready-etime = time;ready - state=w;sort();/* 調(diào)用 sort 函數(shù) */ oid main()char ch;input();while(ready != NULL
13、)printf(nThe execute name:%sn,ready -name);ready -state = R; check();running();printf(n 按 i 鍵添加新進(jìn)程 按其他任意鍵繼續(xù)運(yùn)行 .);fflush(stdin);ch = getchar();if (ch = i| ch=I)addnew();進(jìn)程已經(jīng)完成 n);getchar();運(yùn)行結(jié)果如下: 根據(jù)題意輸入五個(gè)進(jìn)程按任意鍵繼續(xù)XHC;UserspcDesktopDebugjj.exe按i鍵添加新進(jìn)程援其他任意鍵繼續(xù)運(yùn)行eThe execute name:cc*當(dāng)前正在運(yùn)行的進(jìn)程是:cc ntine:
14、5rt ine :0在隊(duì)列可停留時(shí)間 :2nane :ccstate :Rqueue :1當(dāng)前就緒隊(duì)列狀態(tài)為*nanequeuentinert ine在隊(duì)列可停留時(shí)間:dd!vi!7:0:2nanestatequeuentinei*t ine在隊(duì)列可停留時(shí)間See:VJ:1:9:0:2panestatequeuentinert ime在隊(duì)列可停留時(shí)間!aa!vi:2!12:2:2name1statequeuentinertine在隊(duì)列可停留時(shí)間:hhiVI:2:10:2:2按i鍵添加新進(jìn)程.按其他任意鍵繼續(xù)運(yùn)行IW宀 4、丄_按i鍵添加新進(jìn)程 . 按其他任意鍵繼續(xù)運(yùn)行eTheexecute n
15、ane:dd*當(dāng)前正在運(yùn)行的進(jìn)程是:dd在隊(duì)列可亭留時(shí)間namestatequeuentiner-t ineIdd!R!1!7!0!2XX MX當(dāng)前就緒隊(duì)列狀態(tài)為:namestatequeuentinei*t ine在隊(duì)列可亭留時(shí)間Seei w59:0:2namestatequeuentiner-t ine在隊(duì)列可亭留時(shí)間:aai w:2!12:2:2namestatequeuentiner-t ine在隊(duì)列可亭留時(shí)間IbbSw:2:10;2;2namestatequeuentinept ine在隊(duì)列可寧留時(shí)間See:w!2:5:2:2按違lai奎添加新進(jìn)程. 丄Li 宀-kOw .、丄、1按其他任意鍵繼續(xù)運(yùn)行,-C:UserspcDesktopDebugjj.exe四、實(shí)驗(yàn)問(wèn)題及原因(1)本次試驗(yàn),思路設(shè)計(jì)不難 在這個(gè)多級(jí)反饋的實(shí)驗(yàn)中,我采取 了用一條實(shí)際上的鏈表隊(duì)列來(lái)模擬多個(gè)邏輯上的隊(duì) 列,通過(guò)維護(hù)幾個(gè)鏈表的狀態(tài)信息來(lái)找到每個(gè)進(jìn)程運(yùn) 行完后應(yīng)該插入的地方,還有一個(gè)標(biāo)志位 Fend 用來(lái) 表明新插入的隊(duì)列的位置。(2) 在建立優(yōu)先數(shù)就緒隊(duì)列時(shí)主要運(yùn)用,鏈表插入模型
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑公司內(nèi)部掛靠鋼結(jié)構(gòu)工程承包合同范本
- 2025年度裝配式建筑及室內(nèi)裝修施工總承包合同
- 2025年度光纖網(wǎng)絡(luò)優(yōu)化工程光纜采購(gòu)及項(xiàng)目驗(yàn)收合同
- 2025-2030年古典園林仿真模型行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025年度城市軌道交通施工臨時(shí)承包合同示范文本
- 2025-2030年國(guó)際認(rèn)證咨詢與輔導(dǎo)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年數(shù)控機(jī)床預(yù)防性維護(hù)方案行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年口腔負(fù)壓吸引系統(tǒng)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年原產(chǎn)地花椒直供企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025年度國(guó)際文化產(chǎn)品采購(gòu)及市場(chǎng)推廣協(xié)議
- 【化學(xué)】高中化學(xué)手寫筆記
- 中國(guó)高血壓防治指南-解讀全篇
- 2024年監(jiān)控安裝合同范文6篇
- 2024年山東省高考政治試卷真題(含答案逐題解析)
- 煙葉復(fù)烤能源管理
- 應(yīng)收賬款管理
- 食品安全管理員考試題庫(kù)298題(含標(biāo)準(zhǔn)答案)
- 執(zhí)業(yè)醫(yī)師資格考試《臨床執(zhí)業(yè)醫(yī)師》 考前 押題試卷絕密1 答案
- 非ST段抬高型急性冠脈綜合征診斷和治療指南(2024)解讀
- 2024年山東濟(jì)寧初中學(xué)業(yè)水平考試地理試卷真題(含答案詳解)
- 社會(huì)保險(xiǎn)課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論