#include#definetrue1;#definefalse0;#defineERROR0;#defineOK1;structPCB_type{intpid;//進程名intsta">
時間片的輪轉(zhuǎn)算法

時間片的輪轉(zhuǎn)算法

ID:39927115

大小:86.00 KB

頁數(shù):4頁

時間:2019-07-15

時間片的輪轉(zhuǎn)算法_第1頁
時間片的輪轉(zhuǎn)算法_第2頁
時間片的輪轉(zhuǎn)算法_第3頁
時間片的輪轉(zhuǎn)算法_第4頁
資源描述:

《時間片的輪轉(zhuǎn)算法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、#include#include#definetrue1;#definefalse0;#defineERROR0;#defineOK1;structPCB_type{intpid;//進程名intstate;//進程狀態(tài)2--表示"執(zhí)行"狀態(tài)1--表示"就緒"狀態(tài)0--表示"阻塞"狀態(tài)intcpu_time;//運行需要的CPU時間)};typedefstructQNode{PCB_typedata;structQNode*next;}QNode,*QueueP

2、tr;typedefstruct{QueuePtrfront;QueuePtrrear;}LinkQueue;intInitQueue(LinkQueue&Q){Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));if(!Q.front)exit(-2);Q.front->next=NULL;return1;}intQueueEmpty(LinkQueueQ){intisempty=false;if(Q.front==Q.rear)isempty=true;

3、returnisempty;}intEnQueue(LinkQueue*Q,PCB_typee){/*插入元素e為Q的新的隊尾元素*/QueuePtrp=(QueuePtr)malloc(sizeof(QNode));if(!p)/*存儲分配失敗*/exit(-2);p->data=e;p->next=NULL;(*Q).rear->next=p;(*Q).rear=p;returnOK;}intDeQueue(LinkQueue*Q,PCB_type*e){/*若隊列不空,刪除Q的隊頭元素,用e返

4、回其值,并返回OK,否則返回ERROR*/QueuePtrp;if((*Q).front==(*Q).rear)returnERROR;p=(*Q).front->next;*e=p->data;(*Q).front->next=p->next;if((*Q).rear==p)(*Q).rear=(*Q).front;free(p);returnOK;}voidmain(){PCB_typee,k,h;inti,m,n,t,time;intuse_cpu=0;intx=0;intunuse_cpu=

5、0;printf("ttt**************");printf("ttt*模擬進程調(diào)度*");printf("t進程狀態(tài)2--表示執(zhí)行狀態(tài)1--表示就緒狀態(tài)0--表示阻塞狀態(tài)");printf("tt請輸入時間片大小(以1為單位時間片大小為3表示一個時間片運行3秒):");scanf("%d",&time);printf("請輸入隔幾個時間片釋放系統(tǒng)資源:");scanf("%d",&t);LinkQueueReadyQueue,BlockQueu

6、e;InitQueue(ReadyQueue);InitQueue(BlockQueue);printf("請輸入就緒隊列的個數(shù):");scanf("%d",&m);for(i=1;i<=m;i++){printf("請分別輸入第%d進程的信息",i);printf("pid:");scanf("%d",&e.pid);e.state=1;printf("cpu_time:");scanf("%d",&e.cpu_time);EnQueue(&ReadyQueue,e);}printf("請輸入

7、堵塞隊列的個數(shù):");scanf("%d",&n);for(i=1;i<=n;i++){printf("請分別輸入第%d進程的信息",i);printf("pid:");scanf("%d",&e.pid);e.state=0;printf("cpu_time:");scanf("%d",&e.cpu_time);EnQueue(&BlockQueue,e);}printf("進程cputime狀態(tài)");while(!QueueEmpty(ReadyQueue)){DeQueue(&Read

8、yQueue,&k);if(k.cpu_time<=time){use_cpu+=k.cpu_time;unuse_cpu-=k.cpu_time;k.state=2;x++;printf("%4d%4d%4d",k.pid,k.cpu_time,k.state);}else{k.cpu_time-=time;k.state=2;use_cpu+=time;EnQueue(&ReadyQueue,k);printf("%4d%4d%4d",k.pid,time

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。