資源簡介
Linux進程調度(基于優先級時間片調度算法)
代碼片段和文件信息
#include
#define?MAX?10
typedef?struct?task_struct
{
????char?name[10];???????????/*進程名稱*/
????int?number;??????????????/*進程編號*/
????float?come_time;?????????/*到達時間*/
????float?run_begin_time;?????/*開始運行時間*/
????float?run_time;??????????/*運行時間*/
????float?run_end_time;??????/*運行結束時間*/
????int?priority;???????????/*優先級*/
????int?run_flag;??????????/*調度標志*/
????int?start_flag;?????//是否為第一次開始調度
}?tasks;
task_struct?IN[MAX]PCB[MAX][MAX];
int?P[6];
int?temp=0;
int?counter;?/*實際進程個數*/
int?time_counter=0;
int?poutput();?/*調度結果輸出*/
int?time();
int?pinput();//判斷是否所有的進程都被執行過
int?main()
{
????pinput();
????printf(“時間片輪轉算法。\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];//對進程的初始化信息備份
}
????}
time_temp=PCB[1][1].come_time;
for(int?i=1;i<=temp;i++)
{
while?(PCB[i][
- 上一篇:linux內核驅動之DHT11
- 下一篇:簡單驅動程序
評論
共有 條評論