進(jìn)程調(diào)度課程設(shè)計(jì)報(bào)告_第1頁(yè)
進(jìn)程調(diào)度課程設(shè)計(jì)報(bào)告_第2頁(yè)
進(jìn)程調(diào)度課程設(shè)計(jì)報(bào)告_第3頁(yè)
進(jìn)程調(diào)度課程設(shè)計(jì)報(bào)告_第4頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.進(jìn)程調(diào)度課程設(shè)計(jì)2.1 實(shí)驗(yàn)?zāi)康挠酶呒?jí)語(yǔ)言編寫和調(diào)試一個(gè)有N 個(gè)進(jìn)程并行的進(jìn)程調(diào)度程序,以加深對(duì)進(jìn)程的概念及進(jìn)程調(diào)度算法的理解。2.2 實(shí)驗(yàn)設(shè)備PC 機(jī)、 windows2000操作系統(tǒng) 、 Turbo C 2.0 / VC+6.02.3 實(shí)驗(yàn)要求實(shí)驗(yàn)前應(yīng)復(fù)習(xí)實(shí)驗(yàn)中所涉及的理論知識(shí)和算法,針對(duì)實(shí)驗(yàn)要求完成基本代碼編寫、實(shí)驗(yàn)中認(rèn)真調(diào)試所編代碼并進(jìn)行必要的測(cè)試、記錄并分析實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)后認(rèn)真書(shū)寫符合規(guī)范格式的實(shí)驗(yàn)報(bào)告,按時(shí)上交 。2.4 實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)有N 個(gè)進(jìn)程并行的進(jìn)程調(diào)度程序。進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法(即把處理機(jī)分配給優(yōu)先數(shù)最高的進(jìn)程)和先來(lái)先服務(wù)算法。具體描述如下:每

2、個(gè)進(jìn)程有一個(gè)進(jìn)程控制塊( PCB)表示 。 進(jìn)程控制塊可以包含如下信息:進(jìn)程名 、優(yōu)先數(shù) 、到達(dá)時(shí)間 、需要運(yùn)行時(shí)間、已用 CPU 時(shí)間 、進(jìn)程狀態(tài)等等。分析 :進(jìn)程的優(yōu)先數(shù)及需要的運(yùn)行時(shí)間可以事先人為地指定(也可以由隨機(jī)數(shù)產(chǎn)生)。 進(jìn)程的到達(dá)時(shí)間為進(jìn)程輸入的時(shí)間。進(jìn)程的運(yùn)行時(shí)間以時(shí)間片為單位進(jìn)行計(jì)算。每個(gè)進(jìn)程的狀態(tài)可以是就緒W ( Wait )、運(yùn)行 R( Run )、 或完成 F( Finish )三種狀態(tài)之一 。就緒進(jìn)程獲得CPU 后都只能運(yùn)行一個(gè)時(shí)間片。用已占用CPU 時(shí)間加 1 來(lái)表示 。如果運(yùn)行一個(gè)時(shí)間片后,進(jìn)程的已占用CPU 時(shí)間已達(dá)到所需要的運(yùn)行時(shí)間,則撤消該進(jìn)程 ,如果運(yùn)行一

3、個(gè)時(shí)間片后進(jìn)程的已占用CPU 時(shí)間還未達(dá)所需要的運(yùn)行時(shí)間,也就是進(jìn)程還需要繼續(xù)運(yùn)行,此時(shí)應(yīng)將進(jìn)程的優(yōu)先數(shù)減1 (即降低一級(jí) ), 然后按照優(yōu)先數(shù)的大小把它插入就緒隊(duì)列等待CPU。每進(jìn)行一次調(diào)度程序都打印一次運(yùn)行進(jìn)程、就緒隊(duì)列 、以及各個(gè)進(jìn)程的PCB,以便進(jìn)行檢查 。重復(fù)以上過(guò)程,直到所要進(jìn)程都完成為止。調(diào)度算法的參考流程圖如下:專業(yè) .專注.2.5實(shí)驗(yàn)結(jié)果及分析實(shí)驗(yàn)代碼 :#include#includestruct pcbchar name2;char status;int priority;int need_time;int used_time;專業(yè) .專注.struct pcb *nex

4、t;typedef struct pcb *PCB;PCB Initpcb()PCB P;P=(PCB)malloc(sizeof(struct pcb);P-next=NULL;return P;void Sort(PCB P,struct pcb *p)struct pcb *s,*q;s=P-next;if(s=NULL)p-next=P-next;P-next=p;elseq=s-next;while(q!=NULL)if(p-prioritypriority&p-priorityq-priority)s-next=p;p-next=q;break;專業(yè) .專注.elses=q;q=q

5、-next;if(p-prioritypriority)s-next=p;p-next=q;elses=P-next;P-next=p;p-next=s;void Input(PCB P)int SIZE,i;struct pcb *p;printf(Please input the number of process:);scanf(%d,&SIZE);printf(Please input the processs name status priority need_time used_time:n );for(i=0;iname,&p-status,&p-priority,&p-need

6、_time,&p-used_time);printf(n);p-next=NULL;Sort(P,p);int QueueNull(PCB P)if(P-next=NULL)return 0;void Timeout(PCB P,int time)int t;t=P-next-need_time-P-next-used_time;if(ttime)P-next-used_time=P-next-used_time+time;elseP-next-used_time=P-next-used_time+t;P-next-priority=P-next-priority-1;void display

7、2(PCB P)int n=0;struct pcb *s,*t;s=t=P;s=P-next;while(s!=NULL)if(n=0)專業(yè) .專注.printf(Running process:n);printf(NameStatusPriorityNeed_TimeUsed_timen);s-status=R;printf(%6s%10c%11d%12d%12dn,s-name,s-status,s-priority+1,s-need_time,s-used_time-2);n=1;elseprintf(Waiting process:n);s-status=W;printf(NameS

8、tatusPriorityNeed_TimeUsed_timen);printf(%6s%10c%11d%12d%12dn,s-name,s-status,s-priority,s-need_time,s-used_time);t=s;s=t-next;printf(nn);void Deletepcb(PCB P)struct pcb * s,*q;s=P;q=P-next;P-next=q-next;free(q);void Sort2(PCB P)/該函數(shù)的作用是將頭結(jié)點(diǎn)的后一個(gè)節(jié)點(diǎn)在鏈表中重新排序?qū)I(yè) .專注.struct pcb * s,*q,*p;s=P-next;p=s;q=s-next;P-next=q;Sort(P,p);/ 排序函數(shù)main()int time;struct pcb * s,*q,*p;printf(Please input the size of time:);scanf(%d,&time);PCB P;s=P;P=Initpcb();Inpu

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論