#include #include #include typedef struct node
pcb;
pcb *ready=null,*run=null,*finish=null; /*定義三個佇列,就緒佇列,執行佇列和完成佇列*/
int num;
void getfirst(); /*從就緒佇列取得第乙個節點*/
void output(); /*輸出佇列資訊*/
void insertprio(pcb *in); /*建立優先順序佇列,規定優先數越小,優先順序越高*/
void inserttime(pcb *in); /*時間片佇列*/
void insertfinish(pcb *in); /*時間片佇列*/
void priocreate(); /*優先順序輸入函式*/
void timecreate(); /*時間片輸入函式*/
void priority(); /*按照優先順序排程*/
void roundrun(); /*時間片輪轉排程*/
int main(void)
output();
return 0;
}
void getfirst() /*取得第乙個就緒佇列節點*/
}
void output() /*輸出佇列資訊*/
p = finish;
while(p!=null)
p = run;
while(p!=null)
}
void insertprio(pcb *in) /*建立優先順序佇列,規定優先數越小,優先順序越低*/
else /*查到合適的位置進行插入*/
else
if(fst ->next == null) /*已經搜尋到隊尾,則其優先級數最小,將其插入到隊尾即可*/
else /*插入到佇列中*/
}
}
}
void inserttime(pcb *in) /*將程序插入到就緒佇列尾部*/
else
in ->next = fst ->next;
fst ->next = in;
}
}
void insertfinish(pcb *in) /*將程序插入到完成佇列尾部*/
else
in ->next = fst ->next;
fst ->next = in;
}
}
void priocreate() /*優先順序排程輸入函式*/
scanf("%s",tmp->name);
getchar(); /*吸收回車符號*/
scanf("%d",&(tmp->needtime));
tmp ->cputime = 0;
tmp ->state ='w';
tmp ->prio = 50 - tmp->needtime; /*設定其優先順序,需要的時間越多,優先順序越低*/
tmp ->round = 0;
tmp ->count = 0;
insertprio(tmp); /*按照優先順序從高到低,插入到就緒佇列*/
}
}
void timecreate() /*時間片輸入函式*/
scanf("%s",tmp->name);
getchar();
scanf("%d",&(tmp->needtime));
tmp ->cputime = 0;
tmp ->state ='w';
tmp ->prio = 0;
tmp ->round = 2; /*假設每個程序所分配的時間片是2*/
tmp ->count = 0;
inserttime(tmp);
}
}
void priority() /*按照優先順序排程,每次執行乙個時間片*/
else /*將程序狀態置為w,入就緒佇列*/
}
flag = 1;
getfirst(); /*繼續取就緒佇列隊頭程序進入執行佇列*/
}
}
void roundrun() /*時間片輪轉排程演算法*/
else if(run->count == run->round)/*時間片用完*/
}
flag = 1;
getfirst();
}
}
程序排程演算法(程序排程策略)
程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...
程序排程演算法
排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短作業 程序 由此...
程序排程演算法
先來先服務 first come first service,fcfs 排程演算法按照程序進入就緒佇列的先後順序選擇可以占用處理器的程序。這是一種不可搶占方式的排程演算法,優點是實現簡單,缺點是後來的程序等待cpu的時間較長。它現今主要用作輔助排程法 例如結合在優先順序排程演算法中使用,當有兩個最高...