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

正文內(nèi)容

最新進(jìn)程模擬調(diào)度算法課程設(shè)計(jì)(編輯修改稿)

2025-07-21 01:16 本頁面
 

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