資源簡介
1、設計一個程序實現基于優先數的時間片輪轉調度算法調度處理器。
2、假定系統有5個進程,每個進程用一個進程控制塊PCB開代表
3、每次運行所設計的處理器調度程序調度進程之前,為每個進程任意確定它的要求運行時間。
4、此程序是模擬處理器調度,因此,被選中的進程并不實際啟動運行,而是執行
已運行時間+1
來模擬進程的一次運行,表示進程已經運行過一個單位時間。
.5、在所設計的程序中應有顯示或打印語句,能顯示或打印每次被選中的進程名以及運行一次后進程隊列的變化。
6、為進程任意確定要求運行時間,運行所設計的處理器調度程序,顯示或打印逐次被選中進程的進程名以及進程控制塊的動態變化過程。
7、設有一個就
代碼片段和文件信息
#include?
using?namespace?std;
#define?NULL?0
typedef?struct?PCB
{
char?name;
struct?PCB?*next;
double?begin;
double?need;
double?dTime;
int?prio;
char?condition;
}PCB*linkList;
?typedef?struct?Queue
?{
linkList?front;
linkList?rear;
?}queueList;
void?initQueue(queueList?&q)
{
linkList?p;
p?=?(linkList)malloc(sizeof(PCB));
q.front?=?q.rear?=?p;
}
void?creatPCB(linkList?*Waitint?n)
{
cout<<“請輸入進程名、優先數、到達時間、要求運行時間“< for(int?i?=?0;i? {
cin?>>Wait[i]->name>>Wait[i]->prio>>Wait[i]->begin>>Wait[i]->need;
Wait[i]->condition?=?‘d‘;//表示還未加入就緒隊列的標志
Wait[i]->dTime?=?0;
}
}
int?Comepare(linkList?*Waitint?n)
{
int?flag1?=?1;
for(int?i?=?0;i? {
if(Wait[i]->condition?!=?‘f‘)
{
評論
共有 條評論