资源简介
1.进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)。
2.每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。
3.进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。
4.进程的运行时间以时间片为单位进行计算。
5.每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。
6.就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。如果运行一个
代码片段和文件信息
#include “stdio.h“
#include
#include
#define getpch(type) (type*)malloc(sizeof(type))
#define NULL 0
struct pcb { /* 定义进程控制块PCB */
char name[10];
char state;
int super;
int ntime;
int rtime;
struct pcb* link;
}*ready=NULL*p;
typedef struct pcb PCB;
void sort() /* 建立对进程进行优先级排列函数*/
{
PCB *first *second;
int insert=0;
if((ready==NULL)||((p->super)>(ready->super))) /*优先级最大者插入队首*/
{
p->link=ready;
ready=p;
}
else /* 进程比较优先级插入适当的位置中*/
{
first=ready;
second=first->link;
while(second!=NULL)
{
if((p->super)>(second->super)) /*若插入进程比当前进程优先数大*/
{ /*插入到当前进程前面*/
p->link=second;
first->link=p;
second=NULL;
insert=1;
}
else /
评论
共有 条评论