時間片輪轉演算法

2022-07-28 05:36:15 字數 1558 閱讀 7446

**:

#include#include#include#include#include#include#includeusing namespace std;

//初始化程序池

//初始化就緒佇列

//rr演算法

struct pcb

pcb(string name, int atime, int rtime, char status, pcb* next=null)

//複製構造

pcb(const pcb& pcb)

void show()

}; bool cmp(pcb& a, pcb& b)

//列印佇列所有程序的情況

void show_status(pcb* q_head)

} //初始化程序池

void initpool(vector& pcbpool, string filename)

string name;

int atime; //到達時間

int rtime; //估計執行時間

char status; //程序狀態

//讀入檔案資料

while (infile >> name >> atime >> rtime >> status)

//按照到達時間進行公升序排序

sort(pcbpool.begin(), pcbpool.end(),cmp);

cout << "初始化成功!\n";

infile.close();

return;

} //頭結點移到尾部

void headtotail(pcb*& q_head, pcb*& q_tail)

} //刪除頭結點

void delhead(pcb*& q_head, pcb*& q_tail)

else

delete node;

} }//掃瞄並新增新程序

void scanandadd(pcb*& q_head,pcb*& q_tail, vector& pcbpool,int time)

else

} }//時間片輪轉演算法

void rr(pcb*& q_head, pcb*& q_tail, vector& pcbpool)

//還沒執行完

else

show_status(q_head);

}else if (q_head->status == 'w')

else if (q_head->status == 'c') }}

time++;

} } //生成隨機資料

void createdata(string filename, int n)

srand((int)time(0));

string name;

int atime; //到達時間

int rtime; //估計執行時間

char status='w'; //程序狀態

for (int i = 0; i < n; i++)

時間片輪轉演算法實現

include include define null 0 typedef struct quen 定義結構 char pname 8 int time1 int time2 char state struct quen next quen main 主程式 quen q,p,head,m char...

時間片輪轉演算法實現

程式設計實現時間片輪轉演算法,並求出每個作業的完成時間 周轉時間 帶權周轉時間,及平均周轉時間 平均帶權周轉時間。任選一種高階語言實現 選擇1 2種排程演算法 能夠輸入程序的基本資訊,如程序名 提交時間 預估執行時間等 根據選擇的排程演算法顯示程序排程順序 顯示完成排程後每個程序的開始時間 完成時間...

時間片輪轉

時間片輪轉排程演算法,這種演算法是將程序控制塊按照進入就緒佇列的先後次序排成佇列。關於就緒佇列的操作就是從隊頭摘下乙個程序控制塊和從隊尾掛入乙個程序控制塊。單處理器系統中程序控制塊分成乙個正在執行程序的程序控制塊 就緒程序的程序控制塊組織成的就緒佇列和等待程序的程序控制塊組成的等待佇列。由於實驗模擬...