-
大小: 4.28KB文件類型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-02-23
- 標(biāo)簽: c++??
資源簡(jiǎn)介
Linux進(jìn)程調(diào)度(基于優(yōu)先級(jí)時(shí)間片調(diào)度算法)
代碼片段和文件信息
#include
#define?MAX?10
typedef?struct?task_struct
{
????char?name[10];???????????/*進(jìn)程名稱*/
????int?number;??????????????/*進(jìn)程編號(hào)*/
????float?come_time;?????????/*到達(dá)時(shí)間*/
????float?run_begin_time;?????/*開始運(yùn)行時(shí)間*/
????float?run_time;??????????/*運(yùn)行時(shí)間*/
????float?run_end_time;??????/*運(yùn)行結(jié)束時(shí)間*/
????int?priority;???????????/*優(yōu)先級(jí)*/
????int?run_flag;??????????/*調(diào)度標(biāo)志*/
????int?start_flag;?????//是否為第一次開始調(diào)度
}?tasks;
task_struct?IN[MAX]PCB[MAX][MAX];
int?P[6];
int?temp=0;
int?counter;?/*實(shí)際進(jìn)程個(gè)數(shù)*/
int?time_counter=0;
int?poutput();?/*調(diào)度結(jié)果輸出*/
int?time();
int?pinput();//判斷是否所有的進(jìn)程都被執(zhí)行過
int?main()
{
????pinput();
????printf(“時(shí)間片輪轉(zhuǎn)算法。\n\n“);
????time();
????poutput();
}
int?time()
{
????float?time_temp=0;
????struct?task_struct??copy_PCB[MAX][MAX];//備份
????for(int?v=1;?v<=temp;?v++)
????{
for(int?u=1;u<=P[v];u++)
{
copy_PCB[v][u]=PCB[v][u];//對(duì)進(jìn)程的初始化信息備份
}
????}
time_temp=PCB[1][1].come_time;
for(int?i=1;i<=temp;i++)
{
while?(PCB[i][
評(píng)論
共有 條評(píng)論