动态优先级调度算法的实现
学校的一个处理机调度实验,可能有的细节做的不是很好,但能运行出想要的结果,希望能够帮助有需要的人。
#include<stdio.h>
#include<stdlib.h>
typedef struct PCB
{
/*定义进程控制块PCB*/
int PID; //进程名
char state; //进程状态
int priority; //进程优先级
int runTime; //进程需要运行的时间
int arrivalTime; //到达时间
int workTime; //进程剩余的时间
int finishTime; //完成时间
int wholeTime; //周转时间
int weightWholeTime; //带权周转时间
struct PCB *next;
}*process,ptr;
PCB *ready=NULL,*p;
int num;
void PCBsort()
{
/*建立对进程进行优先级排列函数*/
PCB *first,*second;
int flag=0;
if((ready==NULL)||((p->priority)<(ready->priority))) //优先级最大者,插入队首
{
p->next=ready;
ready = p;
}
else //进程比较优先级,插入适当的位置中
{
first=ready;
second=first->next;
while(second!=NULL)
{
if(