在操作系統(tǒng)時間片輪轉(zhuǎn)算法中,為每個進程指定的執(zhí)行時間片越小。例如,第二個隊列的時間片是第一個隊列的兩倍長,當新進程到達時,它取決于它是被插入就緒隊列的頭部還是尾部...如果是一級,如果不是一級就復(fù)雜了,比如我在網(wǎng)上看到一個問題:設(shè)置一個,它們的到達時間和服務(wù)時間如下表所示,忽略I/O和其他開銷時間,如果分別是先來先服務(wù)(FCFS),非搶占式短進程優(yōu)先級(SPF),高響應(yīng)比優(yōu)先級(HRRN),時間片輪轉(zhuǎn)(RR,時間片1),多級反饋隊列(FB,I級隊列的時間片2i1。請給出每個流程的完成時間,周轉(zhuǎn)時間,平均周轉(zhuǎn)時間,加權(quán)周轉(zhuǎn)時間,平均加權(quán)周轉(zhuǎn)時間,服務(wù)時間A03B26C44D65E82具體流程:時間片一級為,二級為,三級為...優(yōu)先級1 > 2 > 3...首先A進入第一關(guān)持續(xù)1s,然后進入第二關(guān),因為此時B也。
# include " stdio . h " # define running 1//用running表示進程處于運行狀態(tài)# define ready 2//用aready表示進程處于就緒狀態(tài)#defineblocking3//用blocking表示進程處于阻塞狀態(tài)#definesometime5//用time表示時間片大小# define 10//假設(shè)系統(tǒng)允許的進程數(shù)為nstruct { intname//進程標識符intstatus//進程狀態(tài)intax,
cx,dx;//進程字段信息,通用寄存器內(nèi)容intpc//進程字段信息,程序計數(shù)器內(nèi)容intpsw//處理站點信息,程序狀態(tài)字內(nèi)容intnext//下一個進程控制塊}pcbarea的位置取決于發(fā)生了什么。如果是第1級,它將進入隊列的末尾。如果不是一級,那就復(fù)雜了。比如我在網(wǎng)上看到一個問題:假設(shè)一個系統(tǒng)有五個進程,它們的到達時間和服務(wù)時間如下表所示,忽略I/O等開銷時間。如果CPU分別按照先來先服務(wù)(FCFS)、非搶占式短進程優(yōu)先級(SPF)、高響應(yīng)比優(yōu)先級(HRRN)、時間片輪轉(zhuǎn)(RR,時間片1)和多級反饋隊列(FB,I級隊列的時間片2i1)進行調(diào)度,請給出每個進程的完成時間、周轉(zhuǎn)時間、平均周轉(zhuǎn)時間、加權(quán)周轉(zhuǎn)時間和平均加權(quán)周轉(zhuǎn)時間。服務(wù)時間A03B26C44D65E82具體流程:時間片一級為,二級為,三級為...優(yōu)先級1 > 2 > 3...首先A進入第一關(guān)持續(xù)1s,然后進入第二關(guān),因為此時B也。
時間片級別1 1s、級別2 2s、級別3 4s...優(yōu)先級1 > 2 > 3...首先A進入第一關(guān)執(zhí)行1s,然后進入第二關(guān)。由于B還沒到,A在第二關(guān)執(zhí)行2s,也就是第三關(guān)。b已經(jīng)在2s內(nèi)進入第一關(guān)。這時又回到第一級。b執(zhí)行1s,進入第二關(guān)。4s時,C進入第一關(guān),C執(zhí)行1s進入第二關(guān),在B后面..這時是5S,D還沒到,第一關(guān)沒有進程,所以第二關(guān)B執(zhí)行2S進入第三關(guān),這時是7S,D已經(jīng)進入第一關(guān),D執(zhí)行一個S,然后移動到第二關(guān)排在C后面,8S和E進入第一關(guān),執(zhí)行一個S,然后進入第二關(guān)排在D后面..
多級反饋隊列調(diào)度算法(1)設(shè)置多個就緒隊列,給每個隊列分配不同的優(yōu)先級。第一隊列的優(yōu)先級最高,其次是第二隊列,其他隊列的優(yōu)先級依次降低。該算法為每個隊列分配不同大小的進程執(zhí)行時間片:在優(yōu)先級較高的隊列中,為每個進程指定的執(zhí)行時間片越小。例如,第二個隊列的時間片是第一個隊列的兩倍,第i 1個隊列的時間片是第I個隊列的兩倍。(2)當一個新進程進入內(nèi)存時,
根據(jù)FCFS原則排隊調(diào)度。當輪到進程執(zhí)行時,如果它可以在時間片內(nèi)完成,它就可以準備離開系統(tǒng)。如果在一個時間片的末尾沒有完成,調(diào)度器會把進程轉(zhuǎn)移到第二隊列的末尾,根據(jù)FCFS原則等待調(diào)度的執(zhí)行;如果在第二個隊列中運行一個時間片后沒有完成,則依次放入第三個隊列,以此類推,當一個長作業(yè)(進程)依次從第一個隊列放到第n個隊列時,
4、時間片 輪轉(zhuǎn)調(diào)度算法用C實現(xiàn)# includesdio . h # includestdlib . h # includestring . htypedefstructnode { charname[10];/*進程標識符*/int prio;/*進程優(yōu)先級*/intround;/*進程時間輪轉(zhuǎn)時間片*/intcputime;/*進程占用的CPU時間*/intneedtime;/*完成該過程所需的時間*/int count;/* counter */charstate;/*進程的狀態(tài)*/struct node * next;/*鏈指針*/} PCB;PCB *表面處理,
*尾,*跑;/*隊列指針*/intN;/*進程數(shù)*/*將就緒隊列中的第一個進程投入運行*/first in(){ run ready;/*就緒隊列頭指針被分配給運行頭指針*/run >狀態(tài)‘r’;/*進程狀態(tài)變?yōu)檫\行狀態(tài)*/ready ready > next;/*準備將列頭指針移動到下一個進程*/}/*標題輸出函數(shù)*/void PRT 1(chara){ if(toupper(a) p )。