設(shè)計(jì)一個(gè)按優(yōu)先數(shù)調(diào)度算法實(shí)現(xiàn)處理器調(diào)度的程序.
設(shè)計(jì)一個(gè)按優(yōu)先數(shù)調(diào)度算法實(shí)現(xiàn)處理器調(diào)度的程序.
(1) 假定系統(tǒng)有五個(gè)進(jìn)程,每一個(gè)進(jìn)程用一個(gè)進(jìn)程控制塊PCB來(lái)代表,進(jìn)程控制塊的格式為:
進(jìn)程名
指針
要求運(yùn)行時(shí)間
優(yōu)先數(shù)
狀態(tài)
其中,進(jìn)程名——作為進(jìn)程的標(biāo)識(shí),假設(shè)五個(gè)進(jìn)程的進(jìn)程名分別為P1,P2,P3,P4,P5.
指針——按優(yōu)先數(shù)的大小把五個(gè)進(jìn)程連成隊(duì)列,用指針指出下一個(gè)進(jìn)程的進(jìn)程控制塊的首地址,最后一個(gè)進(jìn)程中的指針為“0”.
要求運(yùn)行時(shí)間——假設(shè)進(jìn)程需要運(yùn)行的單位時(shí)間數(shù).
優(yōu)先數(shù)——賦予進(jìn)程的優(yōu)先數(shù),調(diào)度時(shí)總是選取優(yōu)先數(shù)大的進(jìn)程先執(zhí)行.
狀態(tài)——可假設(shè)有兩種狀態(tài),“就緒”狀態(tài)和“結(jié)束”狀態(tài).五個(gè)進(jìn)程的初始狀態(tài)都為“就緒”,用“R”表示,當(dāng)一個(gè)進(jìn)程運(yùn)行結(jié)束后,它的狀態(tài)為“結(jié)束”,用“E”表示.
(2) 在每次運(yùn)行你所設(shè)計(jì)的處理器調(diào)度程序之前,為每個(gè)進(jìn)程任意確定它的“優(yōu)先數(shù)”和“要求運(yùn)行時(shí)間”.
(3) 為了調(diào)度方便,把五個(gè)進(jìn)程按給定的優(yōu)先數(shù)從大到小連成隊(duì)列.用一單元指出隊(duì)首進(jìn)程,用指針指出隊(duì)列的連接情況.例:
隊(duì)首標(biāo)志
K2
K1 P1 K2 P2 K3 P3 K4 P4 K5 P5
0 K4 K5 K3 K1
2 3 1 2 4
1 5 3 4 2
R R R R R
PCB1 PCB2 PCB3 PCB4 PCB5
(4) 處理器調(diào)度總是選隊(duì)首進(jìn)程運(yùn)行.采用動(dòng)態(tài)改變優(yōu)先數(shù)的辦法,進(jìn)程每運(yùn)行一次優(yōu)先數(shù)就減“1”.由于本實(shí)驗(yàn)是模擬處理器調(diào)度,所以,對(duì)被選中的進(jìn)程并不實(shí)際的啟動(dòng)運(yùn)行,而是執(zhí)行:
優(yōu)先數(shù)-1
要求運(yùn)行時(shí)間-1
來(lái)模擬進(jìn)程的一次運(yùn)行.
提醒注意的是:在實(shí)際的系統(tǒng)中,當(dāng)一個(gè)進(jìn)程被選中運(yùn)行時(shí),必須恢復(fù)進(jìn)程的現(xiàn)場(chǎng),讓它占有處理器運(yùn)行,直到出現(xiàn)等待事件或運(yùn)行結(jié)束.在這里省去了這些工作.
(5) 進(jìn)程運(yùn)行一次后,若要求運(yùn)行時(shí)間¹0,則再將它加入隊(duì)列(按優(yōu)先數(shù)大小插入,且置隊(duì)首標(biāo)志);若要求運(yùn)行時(shí)間=0,則把它的狀態(tài)修改成“結(jié)束”(E),且退出隊(duì)列.
(6) 若“就緒”狀態(tài)的進(jìn)程隊(duì)列不為空,則重復(fù)上面(4)和(5)的步驟,直到所有進(jìn)程都成為“結(jié)束”狀態(tài).
(7) 在所設(shè)計(jì)的程序中應(yīng)有顯示或打印語(yǔ)句,能顯示或打印每次被選中進(jìn)程的進(jìn)程名以及運(yùn)行一次后進(jìn)程隊(duì)列的變化.
(8) 為五個(gè)進(jìn)程任意確定一組“優(yōu)先數(shù)”和“要求運(yùn)行時(shí)間”,啟動(dòng)所設(shè)計(jì)的處理器調(diào)度程序,顯示或打印逐次被選中進(jìn)程的進(jìn)程名以及進(jìn)程控制塊的動(dòng)態(tài)變化過(guò)程.
(1) 假定系統(tǒng)有五個(gè)進(jìn)程,每一個(gè)進(jìn)程用一個(gè)進(jìn)程控制塊PCB來(lái)代表,進(jìn)程控制塊的格式為:
進(jìn)程名
指針
要求運(yùn)行時(shí)間
優(yōu)先數(shù)
狀態(tài)
其中,進(jìn)程名——作為進(jìn)程的標(biāo)識(shí),假設(shè)五個(gè)進(jìn)程的進(jìn)程名分別為P1,P2,P3,P4,P5.
指針——按優(yōu)先數(shù)的大小把五個(gè)進(jìn)程連成隊(duì)列,用指針指出下一個(gè)進(jìn)程的進(jìn)程控制塊的首地址,最后一個(gè)進(jìn)程中的指針為“0”.
要求運(yùn)行時(shí)間——假設(shè)進(jìn)程需要運(yùn)行的單位時(shí)間數(shù).
優(yōu)先數(shù)——賦予進(jìn)程的優(yōu)先數(shù),調(diào)度時(shí)總是選取優(yōu)先數(shù)大的進(jìn)程先執(zhí)行.
狀態(tài)——可假設(shè)有兩種狀態(tài),“就緒”狀態(tài)和“結(jié)束”狀態(tài).五個(gè)進(jìn)程的初始狀態(tài)都為“就緒”,用“R”表示,當(dāng)一個(gè)進(jìn)程運(yùn)行結(jié)束后,它的狀態(tài)為“結(jié)束”,用“E”表示.
(2) 在每次運(yùn)行你所設(shè)計(jì)的處理器調(diào)度程序之前,為每個(gè)進(jìn)程任意確定它的“優(yōu)先數(shù)”和“要求運(yùn)行時(shí)間”.
(3) 為了調(diào)度方便,把五個(gè)進(jìn)程按給定的優(yōu)先數(shù)從大到小連成隊(duì)列.用一單元指出隊(duì)首進(jìn)程,用指針指出隊(duì)列的連接情況.例:
隊(duì)首標(biāo)志
K2
K1 P1 K2 P2 K3 P3 K4 P4 K5 P5
0 K4 K5 K3 K1
2 3 1 2 4
1 5 3 4 2
R R R R R
PCB1 PCB2 PCB3 PCB4 PCB5
(4) 處理器調(diào)度總是選隊(duì)首進(jìn)程運(yùn)行.采用動(dòng)態(tài)改變優(yōu)先數(shù)的辦法,進(jìn)程每運(yùn)行一次優(yōu)先數(shù)就減“1”.由于本實(shí)驗(yàn)是模擬處理器調(diào)度,所以,對(duì)被選中的進(jìn)程并不實(shí)際的啟動(dòng)運(yùn)行,而是執(zhí)行:
優(yōu)先數(shù)-1
要求運(yùn)行時(shí)間-1
來(lái)模擬進(jìn)程的一次運(yùn)行.
提醒注意的是:在實(shí)際的系統(tǒng)中,當(dāng)一個(gè)進(jìn)程被選中運(yùn)行時(shí),必須恢復(fù)進(jìn)程的現(xiàn)場(chǎng),讓它占有處理器運(yùn)行,直到出現(xiàn)等待事件或運(yùn)行結(jié)束.在這里省去了這些工作.
(5) 進(jìn)程運(yùn)行一次后,若要求運(yùn)行時(shí)間¹0,則再將它加入隊(duì)列(按優(yōu)先數(shù)大小插入,且置隊(duì)首標(biāo)志);若要求運(yùn)行時(shí)間=0,則把它的狀態(tài)修改成“結(jié)束”(E),且退出隊(duì)列.
(6) 若“就緒”狀態(tài)的進(jìn)程隊(duì)列不為空,則重復(fù)上面(4)和(5)的步驟,直到所有進(jìn)程都成為“結(jié)束”狀態(tài).
(7) 在所設(shè)計(jì)的程序中應(yīng)有顯示或打印語(yǔ)句,能顯示或打印每次被選中進(jìn)程的進(jìn)程名以及運(yùn)行一次后進(jìn)程隊(duì)列的變化.
(8) 為五個(gè)進(jìn)程任意確定一組“優(yōu)先數(shù)”和“要求運(yùn)行時(shí)間”,啟動(dòng)所設(shè)計(jì)的處理器調(diào)度程序,顯示或打印逐次被選中進(jìn)程的進(jìn)程名以及進(jìn)程控制塊的動(dòng)態(tài)變化過(guò)程.
其他人氣:191 ℃時(shí)間:2020-09-17 02:05:36
優(yōu)質(zhì)解答
#include #include//提供atoi()函數(shù) #include//提供clrscr()函數(shù) #define M 10 //字符串大小常量 #define N 3 //進(jìn)程數(shù)常量 #define SLOT 2typedef struct node{ char name[M]; int prio; //優(yōu)先級(jí)int round...
我來(lái)回答
類似推薦
- 一、實(shí)驗(yàn)?zāi)康?/a>
- 明明過(guò)生日時(shí)時(shí)請(qǐng)好朋友們吃飯,買了4瓶橙汁,每瓶0.75升,每杯可倒3/10升,這些橙汁可倒多少杯?
- 花兒推開了春天的大門;雷電推開了夏天的大門仿著再寫4個(gè)句子!
- 隔一條長(zhǎng)而寬的河如何測(cè)出松樹的高?
- 一個(gè)三位數(shù)除以一個(gè)二位數(shù),商最大是( )位數(shù),最小是( )位數(shù)
- 已知函數(shù)f(x)(x不等于0),對(duì)于任意非零實(shí)數(shù)x,y,滿足f(xy)=f(x)+f(y).
- 根號(hào)18/根號(hào)8*根號(hào)27/2
- sorry to break your walkman 翻譯成中文
- 誰(shuí)有和還有的題目(注意,是練習(xí)題!)阿!現(xiàn)在要!求啊...
- 大氣層密度不均勻,所以人眼所看到的日落的太陽(yáng)在實(shí)際位置的哪個(gè)位置
- 誰(shuí)能給我一段100字以上描寫春雨的美文
- 如圖所示電路中,電源電壓保持不變,燈L電壓為12V時(shí)能正常發(fā)光,燈的電阻為12Ω,當(dāng)S1、S2都閉合時(shí),電流表示數(shù)為1.2A,這時(shí)燈L正常發(fā)光(不計(jì)溫度對(duì)電阻的影響).
猜你喜歡
- 1人類的視覺(jué)是什么視覺(jué),是真正看見嗎?
- 2為什么漢語(yǔ)拼音與英文字母一樣?
- 3英語(yǔ)高手可以幫我看一篇文章有什么語(yǔ)法或詞匯錯(cuò)誤嗎?還能添加點(diǎn)什么嗎?
- 4在家庭電路中,以下情況會(huì)引起保險(xiǎn)絲熔斷的是( ) A.用測(cè)電筆接觸火線 B.連接電路時(shí)誤將火線與零線接通 C.將開關(guān)用導(dǎo)線接通 D.電路中用電器總功率過(guò)大
- 5理想,在饑餓面前,它是糧食……仿寫句子兩句?
- 6焰色反應(yīng)是一種化學(xué)反應(yīng)嗎?
- 7This ruler is green.同意句
- 8某年的10月份有5個(gè)星期二,4個(gè)星期三,這年的國(guó)慶節(jié)是星期幾
- 9用一根鐵絲圍成一個(gè)邊長(zhǎng)是8分米的正方形,如果把它拉成平行四邊形,面積減少了16平方分米,這個(gè)平行四邊形的高是多少分米?
- 10They arrived at teh small village_____(safe)at last
- 11分?jǐn)?shù)應(yīng)用題一批稻谷放在甲,乙兩個(gè)糧庫(kù)中,甲庫(kù)所存的稻谷數(shù)量是乙?guī)斓陌朔种?后來(lái)從甲庫(kù)取出42噸,乙?guī)?/a>
- 12You'll never marry her-She's much too good for you