操作系统实验课(二)(2)短作业优先调度算法

# include 
# include 

typedef struct PCB{
	char name;        //进程名字 
	double ArriveTime;   //进程到达时间 
	double StartTime;    //进程开始时间 
	double ServiceTime;  //进程运行时间 
	double FinishTime;   //进程完成时间 
	double TotalTime;    //进程周转时间
	double WeightTime;//进程带权周转时间 
	bool x;			  //进程是否完成 
}pcb; 

void initPCB(pcb*a,int n);
void sjf(pcb*a,int n);
void sortService(pcb*a,int l,int r);
int wait(pcb*a,int n,double time);

int main(){
	int n;
	printf("输入要创建的进程数\n");
	scanf("%d",&n); 
	printf("请初始化进程\n"); 
	pcb a[n];
	initPCB(a,n);
	sjf(a,n);
	return 0;
}

void initPCB(pcb*a,int n){   //初始化进程池 
	
	int i;
	char name;
	double  ArriveTime;
	double  ServiceTime;
	for(i=0;ia[j+1].ServiceTime){
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t; 
			}
		}	
	}
} 

int wait(pcb*a,int n,double time){     //查看等待队列最后一个进程的位置 
	int i; 
	for(i=0;itime)
			break;
	}
	return i-1;
}

流程图

操作系统实验课(二)(2)短作业优先调度算法_第1张图片

 

你可能感兴趣的:(C/C++,操作系统)