程序排程演算法

2021-08-21 08:57:46 字數 1416 閱讀 8334

#include#include#include#include//#include//#include#define r "run"  //執行中 

#define f "finish"  //已完成 

#define w "waite"  //等待中 

#define t "taken"  //未提交 

#define max 5

struct pcb;

int currenttime;//當前時間 

int finish;//已完成數量 

char c; //演算法選擇 

int visit[max]; //標記是否存在佇列 

//建立pcb  

void createpcb(struct pcb* pcb); //程序名

int subtime[5]=; //提交時間

int runtime[5]=; //執行時間

int youxianji[5]=;

printf("作業號 優先順序 到達時間 需要執行時間\n");

for(int i=0;ifront=(node *)malloc(sizeof(node));

if(q->front!=null)

}/*入隊操作。*/

void enqueue(queue *q,int x)

}/*出隊操作。*/

int dequeue(queue *q)

//列印 

void display(struct pcb* pcb)

if(pcb[i].cputime==pcb[i].need&&strcmp(pcb[i].status,w)==0)

}  }//取就緒佇列中執行時間最短的程序下標 

int shortindex(struct pcb* pcb)p[5];  //宣告5個程序

void init();

void processschedule();

void printpcb(pcb p);

int arr[10];  //佇列存放可以執行但是沒有被排程的程序

int size = 0; //佇列的長度

int runningp = -1; //當前執行程序編號

void sort(int a,int size);

int main()

for(int j=0;j0)

}if(runningp != -1)

p[runningp].finishtime = all;

p[runningp].alltime = all - p[runningp].reachtime;//計算該程序周轉時間

runningp = -1;//重新標記沒有程序在執行

break;//跳出while}}

}}

}*/

程序排程演算法(程序排程策略)

程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...

程序排程演算法

排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短作業 程序 由此...

程序排程演算法

先來先服務 first come first service,fcfs 排程演算法按照程序進入就緒佇列的先後順序選擇可以占用處理器的程序。這是一種不可搶占方式的排程演算法,優點是實現簡單,缺點是後來的程序等待cpu的時間較長。它現今主要用作輔助排程法 例如結合在優先順序排程演算法中使用,當有兩個最高...