![操作系統(tǒng)實(shí)驗(yàn)處理機(jī)調(diào)度C語言實(shí)現(xiàn)_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/26/aadfd323-9ce1-4e8a-aff5-238c2f02704a/aadfd323-9ce1-4e8a-aff5-238c2f02704a1.gif)
![操作系統(tǒng)實(shí)驗(yàn)處理機(jī)調(diào)度C語言實(shí)現(xiàn)_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/26/aadfd323-9ce1-4e8a-aff5-238c2f02704a/aadfd323-9ce1-4e8a-aff5-238c2f02704a2.gif)
![操作系統(tǒng)實(shí)驗(yàn)處理機(jī)調(diào)度C語言實(shí)現(xiàn)_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/26/aadfd323-9ce1-4e8a-aff5-238c2f02704a/aadfd323-9ce1-4e8a-aff5-238c2f02704a3.gif)
![操作系統(tǒng)實(shí)驗(yàn)處理機(jī)調(diào)度C語言實(shí)現(xiàn)_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/26/aadfd323-9ce1-4e8a-aff5-238c2f02704a/aadfd323-9ce1-4e8a-aff5-238c2f02704a4.gif)
![操作系統(tǒng)實(shí)驗(yàn)處理機(jī)調(diào)度C語言實(shí)現(xiàn)_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/26/aadfd323-9ce1-4e8a-aff5-238c2f02704a/aadfd323-9ce1-4e8a-aff5-238c2f02704a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.#include#include#include #include#define N 20#define MAX 100typedef struct PCB /pcb進(jìn)程控制塊定義 int numN; /進(jìn)程序號(hào) char name10; /進(jìn)程名 char state; /進(jìn)程狀態(tài) int tijiaotime; /進(jìn)程到達(dá)時(shí)間 int runtime; /進(jìn)程開始時(shí)間 int finishtime; /進(jìn)程結(jié)束時(shí)間 int needtime; /服務(wù)時(shí)間 int pro;/進(jìn)程優(yōu)先級(jí) struct PCB *next; /鏈接指針 指向下個(gè)作業(yè)的pcb;struct PCB *head_
2、input;struct PCB *head_run;struct PCB *head_run_pre;unsigned long current; /記錄系統(tǒng)當(dāng)前時(shí)間的變量int time=10000,n; /計(jì)時(shí)器 pcb *head=NULL,*p,*q;void getInfo() /創(chuàng)建進(jìn)程 int num; printf(n請輸入要建立的進(jìn)程個(gè)數(shù):); scanf(%d,&n); for(num=0;numnum,&p-name,&p-tijiaotime,&p-needtime); if(p-tijiaotime tijiaotime; q-next=p; p-runtime=0
3、; p-finishtime=0; p-next=NULL; p-state=W; q=p; / *1.先來先服務(wù)調(diào)度算法*void run_fcfo(pcb *p1)/定義先來先到服務(wù)的算法 time = p1-tijiaotime time? p1-tijiaotime:time; p1-runtime=time; printf(n現(xiàn)在時(shí)間是%d,開始運(yùn)行進(jìn)程%sn,time,p1-name); time+=p1-needtime; p1-state=F; p1-finishtime=time; printf(進(jìn)程名 開始時(shí)間 所需時(shí)間 結(jié)束時(shí)間n); printf(%s %d %d %d
4、 ,p1-name,p1-runtime,p1-needtime,p1-finishtime);void fcfo()/定義運(yùn)行進(jìn)程函數(shù) int i,j,t; for(j=0;jn;j+) p=head; t=10000; for(i=0;itijiaotimestate=W) t=p-tijiaotime; q=p; /標(biāo)記當(dāng)前未完成的進(jìn)程 p=p-next; run_fcfo(q); / *2.優(yōu)先級(jí)調(diào)度服務(wù)算法*int readydata() /建立就緒隊(duì)列 if(head_input-next=NULL) return 0; struct PCB *p1=head_input-next
5、,*pmax,*p2; int maxpro=0xffff; pmax=p1; p2=head_input; while(p1!=NULL) if(p1-propro; head_run_pre=p2;pmax=p1; p2=p1; p1=p1-next; head_run=pmax; head_run_pre-next=head_run-next; return 1;void runprocess() /運(yùn)行進(jìn)程函數(shù) head_run-runtime-=10; head_run-pro+; struct PCB *p1,*p2; printf(時(shí)間片的大小 %d,current); curr
6、ent+=10; printf( %s 開始n,head_run-name); printf(時(shí)間片的大小 %d,current); printf( %s 結(jié)束n,head_run-name); if(head_run-runtimenext; p1-next=head_run; head_run-next=p2; int readyprocess() while(1) if(readydata()=0) return 0; else runprocess(); void Init() head_input=new PCB; head_input-next=NULL; current=0; i
7、nt numpro; printf(請重新輸入要建立的進(jìn)程個(gè)數(shù):); scanf(%d,&numpro); printf(請依次輸入 進(jìn)程名 運(yùn)行時(shí)間 優(yōu)先級(jí)n); for(int i=0;iname); scanf(%d,&p1-runtime); scanf(%d,&p1-pro); p1-state=C; p1-next=NULL; struct PCB *p2=head_input-next; head_input-next=p1; p1-next=p2; / *3.時(shí)間片輪轉(zhuǎn)調(diào)度服務(wù)算法*void shijianpian()int b,i,X,t,k;int aMAX;/存放進(jìn)程的剩
8、余時(shí)間int cntMAX;/存放進(jìn)程調(diào)度次數(shù)printf(請輸入進(jìn)程數(shù):);scanf(%d,&X);printf(n請輸入時(shí)間片t大小:);scanf(%d,&t);printf(n請依次輸入各個(gè)進(jìn)程的服務(wù)時(shí)間);for(i=0;iX;i+)scanf(%d,&ai);cnti=0;printf(被調(diào)度進(jìn)程t進(jìn)程調(diào)度次數(shù) t本次運(yùn)行時(shí)間結(jié)果t剩余時(shí)間n);k=1;while(k)for(i=0;i=t) ai-=t; b+=t; cnti=cnti+1; printf(nt%dtt%dtt%dtt%d,i+1,cnti,b,ai); else b=b+ai; cnti=cnti+1; ai=0; printf(nt%dtt%dtt%dtt%d,i+1,cnti,b,ai);else continue;for(i=0;i=X) k=0;void main() printf( *); printf(n 1. 按先來先到服務(wù)調(diào)度的算法模擬n); printf( *); getInfo(); fcfo(); printf(n *); printf(n 2.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國可吸收三氯生涂層抗菌縫合線行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國超寬帶雷達(dá)傳感器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球阻燃聚乙烯膜行業(yè)調(diào)研及趨勢分析報(bào)告
- 飯店房屋租賃合同范文
- 建筑工程掛靠內(nèi)部協(xié)議合同
- 2025佳兆業(yè)集團(tuán)年度低壓柜設(shè)備戰(zhàn)略采購合同
- 虛擬股合伙協(xié)議合同范本
- 2025工程建設(shè)招標(biāo)設(shè)標(biāo)合同條件第1部分
- 直播帶貨商家簽約的合同范本
- 2025房地產(chǎn)委托開發(fā)合同酬金
- 【七上HK數(shù)學(xué)】安徽省蚌埠市固鎮(zhèn)縣2024-2025學(xué)年七年級(jí)上學(xué)期1月期末試卷數(shù)學(xué)試題
- 電信網(wǎng)和互聯(lián)網(wǎng)圖像篡改檢測技術(shù)要求與測試方法
- 2025屆江蘇省南京市鹽城市高三一??荚囌Z文試題 課件
- 《水稻生長進(jìn)程》課件
- 2024版企業(yè)高管職務(wù)任命書3篇
- 中國版梅尼埃病診斷指南解讀
- 創(chuàng)業(yè)投資管理知到章節(jié)答案智慧樹2023年武漢科技大學(xué)
- 暨南大學(xué)《經(jīng)濟(jì)學(xué)》考博歷年真題詳解(宏觀經(jīng)濟(jì)學(xué)部分)
- GB/T 8014.1-2005鋁及鋁合金陽極氧化氧化膜厚度的測量方法第1部分:測量原則
- eNSP簡介及操作課件
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第七章運(yùn)動(dòng)技能的協(xié)調(diào)控制
評(píng)論
0/150
提交評(píng)論