![進程調(diào)度(C語言實現(xiàn))_第1頁](http://file4.renrendoc.com/view/b2a2d8f992018919d0ae2c9f9218d81f/b2a2d8f992018919d0ae2c9f9218d81f1.gif)
![進程調(diào)度(C語言實現(xiàn))_第2頁](http://file4.renrendoc.com/view/b2a2d8f992018919d0ae2c9f9218d81f/b2a2d8f992018919d0ae2c9f9218d81f2.gif)
![進程調(diào)度(C語言實現(xiàn))_第3頁](http://file4.renrendoc.com/view/b2a2d8f992018919d0ae2c9f9218d81f/b2a2d8f992018919d0ae2c9f9218d81f3.gif)
![進程調(diào)度(C語言實現(xiàn))_第4頁](http://file4.renrendoc.com/view/b2a2d8f992018919d0ae2c9f9218d81f/b2a2d8f992018919d0ae2c9f9218d81f4.gif)
![進程調(diào)度(C語言實現(xiàn))_第5頁](http://file4.renrendoc.com/view/b2a2d8f992018919d0ae2c9f9218d81f/b2a2d8f992018919d0ae2c9f9218d81f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、#include#include#includetypedefstructProcessNode/進程結(jié)點的基本結(jié)構(gòu)charname;/進程名intservice_time;/服務(wù)時間intarrive_time;/到達時間intpriority;/優(yōu)先級structFCFS_time/先到先服務(wù)intfinish_time;/完成時間intturnaround_time;/周轉(zhuǎn)時間floatweigtharound_time;/帶權(quán)周轉(zhuǎn)時間FCFS_time;structSJF_time/短作業(yè)優(yōu)先intfinish_time;intturnaround_time;floatweigthar
2、ound_time;intflag;SJF_time;structRR_time/時間片輪轉(zhuǎn)的結(jié)點intfinish_time;intturnaround_time;floatweigtharound_time;intflag_time;/賦值為進程的服務(wù)時間,為0則進程完成RR_time;structPri_time/優(yōu)先權(quán)非搶占式intfinish_time;intturnaround_time;floatweigtharound_time;Pri_time;structProcessNode*next;ProcessNode,*Linklist;voidmain()intchoice;L
3、inklistp,head;Linklistread_information();LinklistFCFS_scheduling(Linklisthead);LinklistSJF_scheduling(Linklisthead);LinklistRR_scheduling(Linklisthead);LinklistPri_scheduling(Linklisthead);head=read_information();/讀入進程的基本信息dop=head-next;printf(n);printf(*進程初始信息輸出*n);/輸出初始化后的進程基本信息printf(n); TOC o 1-
4、5 h z printf(進程名稱);printf(到達時間);printf(服務(wù)時間);printf(優(yōu)先級);printf(n);while(p)printf(%c,p-name);printf(%d,p-arrive_time);printf(%d,p-service_time);printf(%d,p-priority);printf(n);p=p-next;printf(n);printf(*n);/輸出進程的調(diào)用選擇項printf(n); TOC o 1-5 h z printf(1、FCFS-先到先服務(wù)-n);printf(2、SJF短作業(yè)優(yōu)先n);printf(3、RR時間片輪
5、轉(zhuǎn)n);printf(4、Pri優(yōu)先權(quán)調(diào)度n);printf(5、退出n);printf(n);printf(*n);printf(n);printf(請在15之間選擇:);scanf(%d,&choice);printf(n);printf(n);switch(choice)FCFS_scheduling(head);break;SJF_scheduling(head);break;RR_scheduling(head);break;Pri_scheduling(head);break;/case5:exit();while(choice!=5);Linklistread_informati
6、on()/進程讀入函數(shù)inti;intnum;/ProcessNode;Linklistpro;Linklistp;Linklisthead;printf(n);printf(*進程調(diào)度算法* n);printf(n);printf( 請輸入進程的個數(shù):);scanf(%d,&num);printf(n);printf(*初始化信息* n);printf(n);head=(Linklist)malloc(sizeof(ProcessNode);/頭結(jié)點head-next=NULL;p=head;for(i=1;iname); TOC o 1-5 h z printf(到達時間:);scanf(
7、%d,&pro-arrive_time);printf(服務(wù)時間:);scanf(%d,&pro-service_time);printf(優(yōu)先級T:);scanf(%d,&pro-priority);/pro-next=head-next;head-next=pro;/逆序建鏈p-next=pro;p=pro;/順序建鏈/p+;pro-next=NULL;printf(n);returnhead;LinklistFCFS_scheduling(Linklisthead)/先到先服務(wù)算法函數(shù)Linklistp;Linklistq;/指向前一進程p=head-next;while(p)/初始化進
8、程的完成時間、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,初值均賦為p-=0;p-=0;p-=0;p=p-next;p=q=head-next;p-=p-arrive_time;/避免第一個進程到達時間不為0while(p)if(p-arrive_time/下一進程已到達,在等待中p-=(p-service_time)+(q-;/服務(wù)時間p-=(p-(p-arrive_time);/周轉(zhuǎn)時間p-=(float)(p-/(p-service_time);/帶權(quán)周轉(zhuǎn)時間elsep-=p-service_time+p-arrive_time;/服務(wù)時間p-=(p-(p-arrive_time);/周轉(zhuǎn)時間p-=(flo
9、at)(p-/(p-service_time);/帶權(quán)周轉(zhuǎn)時間q=p;p=p-next;p=head-next;到先服務(wù)調(diào)度后的進程信息printf(*FCFS*n);/輸出先printf(n); TOC o 1-5 h z printf(進程名稱);printf(到達時間);printf(服務(wù)時間);printf(優(yōu)先級);printf(完成時間);printf(周轉(zhuǎn)時間);printf(帶權(quán)周轉(zhuǎn)時間);printf(n);while(p)printf(%c,p-name);printf(%d,p-arrive_time);printf(%d,p-service_time);printf(%
10、d,p-priority);printf(%d,p-;printf(%d,p-;printf(%,p-;printf(n);p=p-next;printf(n);printf(*n);printf(n);returnhead;LinklistSJF_scheduling(Linklisthead)/短作業(yè)優(yōu)先算法Linklistp,r;Linklistq;/指向前一進程結(jié)點intnum=0;/記錄進程個數(shù)intadd_flag=0;/進程完成服務(wù)個數(shù)intservice_time_min;intarrive_time;intk;p=head-next;/首元結(jié)點while(p)/初始化進程的完
11、成時間、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,初值均賦為0p-=0;p-=0;p-=0;p-=0;+num;q=p;p=p-next;q-next=head-next;/將創(chuàng)建的進程隊列變?yōu)檠h(huán)隊列p=head-next;q=p;p-=p-arrive_time+p-service_time;p-=(p-(p-arrive_time);/周轉(zhuǎn)時間p-=(float)(p-/(p-service_time);/帶權(quán)周轉(zhuǎn)時間q-=p-;p-=1;add_flag=1;p=p-next;doif(p-=1)p=p-next;elseif(p-arrive_time)(q-)service_time_min=p-s
12、ervice_time;arrive_time=p-arrive_time;while(p-arrive_time=arrive_time&p-=0)/尋找最短的作業(yè)if(p-next-service_time)service_time)service_time_min=p-next-service_time;p=p-next;elsep=p-next;p=q-next;r=q;while(p-service_time!=service_time_min)p=p-next;/指針指向最短作業(yè)p-=p-arrive_time+p-service_time;p-=1;+add_flag;p-=(p
13、-(p-arrive_time);/周轉(zhuǎn)時間p-=(float)(p-/(p-service_time);/帶權(quán)周轉(zhuǎn)時間q=p;p=r-next;elsek=0;service_time_min=p-service_time;while(p-arrive_time)&k=1)p=p-next;+k;elseif(p-!=1)&(p-service_time)service_time;p=p-next;+k;elsep=p-next;+k;p=q-next;r=q;while(p-service_time!=service_time_min)p=p-next;/指針指向最短作業(yè)p-=q-+p-s
14、ervice_time;p-=(p-(p-arrive_time);/周轉(zhuǎn)時間p-=(float)(p-/(p-service_time);/帶權(quán)周轉(zhuǎn)時間p-=1;+add_flag;/q=p;p=p-next;q=p;p=r-next;while(add_flag!=num);for(p=head-next;num0;num-)/斷開循環(huán)隊列q=p;p=p-next;q-next=NULL;p=head-next;/指向鏈首,輸出短作業(yè)調(diào)度后的進程信息printf(n);printf(*SJF*n);printf(n); TOC o 1-5 h z printf(進程名稱);printf(到
15、達時間);printf(服務(wù)時間);printf(優(yōu)先級);printf(完成時間);printf(周轉(zhuǎn)時間);printf(帶權(quán)周轉(zhuǎn)時間);printf(n);while(p)printf(%c,p-name);printf(%d,p-arrive_time);printf(%d,p-service_time);printf(%d,p-priority);printf(%d,p-;printf(%d,p-;printf(%,p-;printf(n);p=p-next;printf(n);printf(*n);printf(n);returnhead;LinklistRR_scheduling
16、(Linklisthead)/時間片輪轉(zhuǎn)算法Linklistq;/指向前一進程結(jié)點Linklistp;intq_time;/時間片大小intnum=0;/記錄進程個數(shù)intadd_flag=0;/進程完成服務(wù)個數(shù)printf(請輸入時間片的大小:);scanf(%d,&q_time);p=head-next;while(p)/初始化進程的完成時間、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,初值均賦為p-=0;p-=0;p-=0;p-=p-service_time;q=p;+num;p=p-next;q-next=head-next;/將創(chuàng)建的進程隊列變?yōu)檠h(huán)隊列p=head-next;q-=p-arrive_t
17、ime;do/*printf(n);printf(*n);printf(%c,p-name);printf(%d,p-arrive_time);printf(%d,p-service_time);printf(%d,p-priority);printf(%d,p-;printf(n);*/if(p-(q_time)/服務(wù)時間大于時間片p-=(q-+(q_time);/累加完成時間p-=(p-(q_time);if(p-next-arrive_time)/有進程等待q=p;p=p-next;else/當前進程未完成,無進程等待,指針不向后移q=p;elseif(p-=0)/進程已經(jīng)完成p=p-n
18、ext;elsep-=(q-+(p-;p-=0;+add_flag;p-=(p-(p-arrive_time);/周轉(zhuǎn)時間p-=(float)(p-/(p-service_time);/帶權(quán)周轉(zhuǎn)時間if(p-next-arrive_time)/有進程等待q=p;p=p-next;else/當前進程完成,無進程等待,指針向后移/q=p;q-=p-next-arrive_time;p=p-next;q=p;q-=p-arrive_time;while(add_flag!=num);/while(p-=0);for(p=head-next;num0;num-)/斷開循環(huán)隊列q=p;p=p-next;q-next=NULL;p=head-next;/指向鏈首,輸出時間片輪轉(zhuǎn)調(diào)度后的進程信息printf(n);printf(*RR*n);printf(n); TOC o 1-5 h z printf(進程名稱);printf(到達時間);printf(服務(wù)時間);printf(優(yōu)先級);printf(完成時間);printf(周轉(zhuǎn)時間);pr
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《普通股價值分析》課件
- 《高分子纖維素》課件
- 《班組員工培訓(xùn)》課件
- 《抽水試驗教程》課件
- 武漢大學(xué)分析化學(xué)下冊考研課件-電分析
- 《潛意識說服技巧》課件
- -2024年版高中數(shù)學(xué) 第3章 數(shù)系的擴充與復(fù)數(shù)的引入 3.3 復(fù)數(shù)的幾何意義說課稿 蘇教版選修1-2
- DB37-T 4390-2021 基于移動互聯(lián)網(wǎng)應(yīng)用程序的人力資源社會保障政務(wù)服務(wù)規(guī)范
- DB37-T 4420-2021 淺海模塊化地質(zhì)鉆探平臺安裝及驗收規(guī)范
- 《慧友門禁》課件
- GB/T 26189.2-2024工作場所照明第2部分:室外作業(yè)場所的安全保障照明要求
- 新教科版一年級科學(xué)下冊第一單元《身邊的物體》全部課件(共7課時)
- 2025年中國水解聚馬來酸酐市場調(diào)查研究報告
- 高考百日誓師動員大會
- 2024年北京東城社區(qū)工作者招聘筆試真題
- 2024新人教版初中英語單詞表默寫版(七~九年級)
- 七上 U2 過關(guān)單 (答案版)
- 2024年貴銀金融租賃公司招聘筆試參考題庫附帶答案詳解
- 新概念英語第二冊1-Lesson29(共127張PPT)課件
- 中考語文十大專題總復(fù)習(xí)資料
- 汽車駕駛員專業(yè)競賽實施方案
評論
0/150
提交評論