freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

最新進程模擬調度算法課程設計(編輯修改稿)

2025-07-21 01:16 本頁面
 

【文章內容簡介】 runcputime=runcputime+1。 /*運行一次cpu占用時間加一*/ runneedtime=runneedtime1。 /*運行一次要求運行時間減一*/ runprio=runprio1。 /*運行一次優(yōu)先數減一*/ if(runneedtime==0) /*若要求運行時間為0時*/ { runnext=finish。 /*退出隊列*/ finish=run。 /*finish為結束進程的隊列 */ runstate=39。E39。 /*修改狀態(tài)為結束*/ run=NULL。 /*釋放run指針*/ if (ready!=NULL) /*創(chuàng)建新就緒隊列的頭指針*/ { run=ready。 runstate=39。R39。 ready=readynext。 } } else if((ready!=NULL)amp。amp。(runprioreadyprio)) /*隊首進程的優(yōu)先數比它下一個小,且下一個進程不為NULL時執(zhí)行*/ { runstate=39。W39。 runnext=NULL。 /*隊首進程退出進程隊列*/ insert(run)。 /*在進程隊列中重新插入原來的隊首進程*/ run=ready。 /*重新置就緒隊列的頭指針*/ runstate=39。R39。 ready=readynext。 } prt()。 } }void main(){ printf(Please enter the total number of PCB:\n)。 scanf(%d,amp。N)。 create()。 /*模擬創(chuàng)建進程,并輸入相關信息*/ prio()。 } /*優(yōu)先數調度算法*/.測試結果及說明優(yōu)先級調度算法運行情況如圖1,圖2,圖3,圖4所示 、時間、優(yōu)先級 .時間片輪轉調度.算法思想 所有就緒進程按先來先服務的原則排成一個隊列,將新來的進程加到就緒對列的末尾,每當執(zhí)行進程調度時,總是把處理機分配給隊首的進程,各進程占用CPU的時間片相同。也就是說CPU的處理時間劃分成一個個相同的時間片,就緒隊列的所有進程輪流運行一個時間片。當一個時間片結束時,如果運行進程用完它的時間片后還未完成,就強迫運行進程讓出CPU,就把它送回到就緒隊列的末尾,等待下一次調度。同時,進程調度又去選擇就緒隊列中的隊首進程,分配給它一時間片,以投入運行。直至所有的進程運行完畢。.算法流程圖.程序代碼include include include typedef struct node{ char name[10]。 /*進程名*/ int count。 /*計數器,判斷是否=時間片的大小*/ int cputime。 /*占用cpu時間*/ int needtime。 /*要求運行時間*/ char state。 /*狀態(tài)*/ struct node *next。 /*指針*/}PCB。PCB *ready,*run,*finish,*tail。 /*就緒 執(zhí)行 結束 尾指針*/int N,round。void prt() /*輸出函數,可以方便看到進程執(zhí)行的演示*/{ PCB *p。 printf( NAME CPUTIME NEEDTIME STATUS\n)。 if(run!=NULL) printf( %10s%10d%10d %c\n,runname,runcputime,runneedtime,runstate)。 /*輸出執(zhí)行的進程的信息*/ p=ready。 while(p!=NULL) { printf( %10s%10d%10d %c\n,pname,pcputime,pneedtime,pstate)。 /*輸出就緒進程的信息*/ p=pnext。 } p=finish。 while(p!=NULL) { printf( %10s%10d%10d %c\n,pname,pcputime,pneedtime,pstate)。 /*輸出結束隊列的信息*/ p=pnext。 } getchar()。 }void insert(PCB *q) /*在隊尾插入新的進程*/{ PCB *p。 p=ready。 while(pnext!=NULL) { p=readynext。 } tail=p。 tailnext=q。 qnext=NULL。 }void create() { PCB *p。 int i。 ready=NULL。 run=NULL。 finish=NULL。 printf(Please enter the name and time of PCB:\n)。 /*輸入進程名、和*/ for(i=0。iN。i++) { p=(PCB *)malloc(sizeof(PCB))。 /*為新進程開辟空間*/ scanf(%s,pname)。 /*輸入進程名*/ scanf(%d,amp。pneedtime)。 /*輸入進程要求運行時間*/ pcputime=0。 pstate=39。W39。 /*表示就緒隊列中未在隊首先執(zhí)行,但也是就緒狀態(tài)*/ if (ready!=NULL) insert(p)。 /*就緒隊首不為NULL,插入新進程*/ else { pnext=ready。 ready=p。 tail=p。 } } printf( Display is going to start: \n)。 printf(***********************************************\n)。 prt()。 getchar()。 run=ready。 /*隊列排好,run指向就緒隊列隊首*/ ready=readynext。 /*ready指向下一個進程*/ runstate=39。R39。 } /*隊首進程的狀態(tài)為就緒*/void count(){ while(run!=NULL) { runcputime=runcputime+1。 /*運行一次cpu占用時間加一*/ runneedtime=runneedtime1。 /*運行一次要求運行時間減一*/ runcount=runcount+1。 /*運行一次計數器加一*/ if(runneedtime==0) /*若要求運行時間為0時*/ { runnext=finish。 /*退出隊列*/ finish=run。 /*finish為結束進程的隊列
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1