版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、操作系統(tǒng)課程綜合性實驗報告開課實驗室:2011年 05 月17 日實驗題目進程調(diào)度算法程序設(shè)計一、實驗?zāi)康耐ㄟ^對進程調(diào)度算法的模擬,進一步理解進程的基本概念,加深對進程運行狀 態(tài)和進程調(diào)度過程、調(diào)度算法的理解。二、設(shè)備與環(huán)境1. 硬件設(shè)備:PC機一臺2. 軟件環(huán)境:安裝 Windows操作系統(tǒng)或者Linux操作系統(tǒng),并安裝相關(guān)的程序開發(fā) 環(huán)境,如C C+Java等編程語言環(huán)境。三、實驗內(nèi)容(1) 用C語言(或其它語言,如 Java)實現(xiàn)對N個進程采用某種進程調(diào)度算法(如 動態(tài)優(yōu)先權(quán)調(diào)度)的調(diào)度。(2) 每個用來標識進程的進程控制塊PCB可用結(jié)構(gòu)來描述,包括以下字段:進程標識數(shù)ID。進程優(yōu)先數(shù)P
2、RIORITY,并規(guī)定優(yōu)先數(shù)越大的進程,其優(yōu)先權(quán)越高。進程已占用 CPU時間CPUTIME。進程還需占用的 CPU時間ALLTIME。當進程運行完畢時,ALLTIME變?yōu)?。進程的阻塞時間 STARTBLOCK,表示當進程再運行 STARTBLOCK個時間片后,進程將進入阻塞狀態(tài)。進程被阻塞的時間 BLOCKTIME,表示已阻塞的進程再等待BLOCKTIME 個時間片后,將轉(zhuǎn)換成就緒狀態(tài)。進程狀態(tài)STATE。隊列指針NEXT,用來將PCB排成隊列。(3)優(yōu)先數(shù)改變的原則:進程在就緒隊列中呆一個時間片,優(yōu)先數(shù)增加1。進程每運行一個時間片,優(yōu)先數(shù)減3。(4)為了清楚地觀察每個進程的調(diào)度過程,程序應(yīng)
3、將每個時間片內(nèi)的進程的情況顯 示出來,包括正在運行的進程,處于就緒隊列中的進程和處于阻塞隊列中的進程。(5)分析程序運行的結(jié)果,談一下自己的認識。蘭大信息學(xué)院計算機系綜合性實驗報告四、實驗結(jié)果及分析1.實驗設(shè)計說明本次實驗采用C語言模擬對N個進程采用先來先服務(wù)進程調(diào)度算法調(diào)度。每個用來標識進程的進程控制塊 PCB用結(jié)構(gòu)來描述,包括以下字段:進程標識數(shù)ID3、進程名name10、進程狀態(tài)state、進程到達時間 arrivetime、進程開始 執(zhí)行時間starttime、進程執(zhí)行結(jié)束時間 finishtime、服務(wù)時間servicetime、周轉(zhuǎn)時間turnaroundtime、 帶權(quán)周轉(zhuǎn)時間
4、weightedturnaroundtime、隊列指針 next用來將PCB排成隊列。主要程序流程圖(進程的執(zhí)行過程):開始P=HEAD ; i=04Y ! NP->STATE= ''P=q;P=P_>NEXT;P=P->NEXT;*FQ->STARTTIME=TIMEQ->STATE= 'T'Q->STARTTIME=ARRIVETIME Q->STATE=''+ i+;輸出執(zhí)行進程信息結(jié)束2.實驗代碼#i nclude"stdio.h"#i nclude"stdlib.h
5、"typedef struct PCB/定義進程控制塊char ID3;/進程號char n ame10;/進程名char state; /運行狀態(tài)int arrivetime;/ 到達時間int starttime;/進程開始時間int fini shtime;/進程結(jié)束時間int servicetime; / 服務(wù)時間float turnaroundtime;/ 周轉(zhuǎn)時間float weightedturnaroundtime;/ 帶權(quán)周轉(zhuǎn)時間struct PCB *n ext;指向下個進程pcb;int time; / 計時器int n;/進程個數(shù)pcb *head=NULL,
6、*p,*q; / 進程鏈表指針void run_fcfs(pcb *p1) /運行未完成的進程time = p1->arrivetime > time? p1->arrivetime:time;p1->starttime=time;printf("n 現(xiàn)在時間是 %d,開始運行作業(yè) %sn",time,p1->name); time+=p1->servicetime;p1->state='T'p1->fi ni shtime=time;p1->tur naroun dtime=p1->fi ni s
7、htime-p1->arrivetime;p1->weightedtur naroun dtime=p1->tur naroun dtime/p1->servicetime;prin tf("ID到達時間開始時間服務(wù)時間完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間n");prin tf(""%s%6d%10d%10d%8d%10.1f%10.2fn"",p1->ID,p1->arrivetime,p1->starttime,p1->servicetime,p1->fi nishtime,p1-&g
8、t;tur naroun dtime,p1->weightedtur naroun dtime);void fcfs() /找到當前未完成的進程int i,j;p=head;for(i=0;i <n ;i+)if(p_>state='F')q=p;II標記當前未完成的進程run _fcfs(q);p=p->n ext;void getl nfo()II獲得進程信息并創(chuàng)建進程int num;printf("n 作業(yè)個數(shù):");scan f("%d",&n);for(num=0;num<n;nu m+)p
9、=(pcb *)malloc(sizeof(pcb);printf("依次輸入:nID進程名到達時間服務(wù)時間n");sca nf("%st%st%dt%d",&p->ID,&p-> name, &p->arrivetime,&p->servicetime); if(head=NULL) head=p;q=p;time=p->arrivetime; if(p->arrivetime < time) time=p->arrivetime;q_>n ext=p;p->s
10、tarttime=0;p->fi ni shtime=0;p->tur naroun dtime=0;p->weightedtur naroun dtime=0;p-> next=NULL;p->state='F'q=p;void mai n()printf("先來先服務(wù)算法模擬");get In fo();p=head;fcfs();3. 實驗結(jié)果測試用例進程名到達時間服務(wù)時間A01B1100C21D3100先來九服務(wù)聲法模擬作業(yè)個數(shù):4 檢次輸入;ID避名到達時間服務(wù)時間01 ft01到達時間服務(wù)時間02 B110B依締人I
11、D灘名到達時間服務(wù)時間03 G21依次樹入;ID濫名到達時間服務(wù)時間04D3100 甘在噩霜苜鱸蒲鵝時間完成吋間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間01 6 0 1 1 1.0 1.00$在餵竊彗鱸膺鵝時間完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間H2 11130101100.01.00現(xiàn)在時間是丄町,開始運行信業(yè)CID到達吋間開始時間崩務(wù)時間完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)吋間03210111021B0.O10B .00眺在時間是102 開始運行佢業(yè)DB 到達時間開始時間服務(wù)時間完成時間周轉(zhuǎn)吋間帶權(quán)周轉(zhuǎn)時間043102100262199,01.99Pi*es amv key to copimue4. 實驗結(jié)果分析先來先服務(wù)算法顧名思義先到的先參與調(diào)度,本利中按照A、B、C、D的順序。因為只有非搶占方式,所以先到的進程必須執(zhí)行完來才能執(zhí)行下一個進程,下一個進程的開始時間也就取決于到達時間和上一個進程的結(jié)束時間中較晚的一個,如C進程的到達時間是 2,但是B進程的完成時間是101,所以C進程的開始時間為101。由實驗結(jié)果可以看出,短作業(yè)C的帶權(quán)周轉(zhuǎn)時間竟高達100,而長作業(yè)D的帶權(quán)周轉(zhuǎn)時間僅為1.99,據(jù)此可知,F(xiàn)CFS算法有利于CPU繁忙的作業(yè),而不利于I/O繁忙型的作業(yè)(進程)5. 實驗心得本次實驗設(shè)應(yīng)用鏈表結(jié)構(gòu)進行存儲并排序,條理清晰,易于理解,程序編寫完成以后,實
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版煤礦安全生產(chǎn)承包合同示范文本4篇
- 加油站的油品品牌選擇和質(zhì)量評估
- 2024年08月陜西2024渤海銀行西安分行秋季校園招考筆試歷年參考題庫附帶答案詳解
- 2025年度環(huán)保型鋁合金門窗生產(chǎn)安裝合同3篇
- 2025版明星代言形象維護合同范本4篇
- 氧化鋯陶瓷噴嘴行業(yè)深度研究報告
- 二零二五年度區(qū)塊鏈技術(shù)應(yīng)用合同2篇
- 黑河2024年黑龍江北安市第一人民醫(yī)院招聘37人筆試歷年參考題庫附帶答案詳解
- 供應(yīng)鏈運輸合作伙伴關(guān)系管理
- 不銹鋼的制備工藝
- 影視劇制作投資分紅協(xié)議
- 2024-2025學(xué)年成都青羊區(qū)九上數(shù)學(xué)期末考試試卷【含答案】
- 2025年競聘醫(yī)院內(nèi)科醫(yī)生崗位演講稿模版(3篇)
- 虛擬貨幣地址分析技術(shù)的研究-洞察分析
- 綠色供應(yīng)鏈管理制度內(nèi)容
- 心理學(xué)基礎(chǔ)知識考試參考題庫500題(含答案)
- 電力智慧檢修安全運行三維可視化管理平臺建設(shè)方案
- 一年級數(shù)學(xué)(上)計算題專項練習(xí)集錦
- 消防安全應(yīng)急預(yù)案下載
- 《北航空氣動力學(xué)》課件
- 附件:財政業(yè)務(wù)基礎(chǔ)數(shù)據(jù)規(guī)范(3.0版)
評論
0/150
提交評論