资源简介
首先对优先数调度算法原理进行深刻的理解和掌握;
(2)选择C++程序语言来实现对N个进程进行设计优先数调度算法的描述和资源分配;
(3)根据优先数调度算法的要求设计相应的数据结构,如:代表进程的进程控制块PCB的结构,包括处于就绪状态的进程数量、指向就绪队列的指针、进程要求运行的时间、进程的优先数、进程当前状态,其中进程的个数N用户可以自行设定;
(4)进程运行要显示当前运行状态,要给出若干个进程控制块PCB的信息。
三、实验环境
代码片段和文件信息
#include
#include
#define Max 5
struct PCB{ //进程控制块
int name; //进程名
int needtime; //需要运行时间
int priority; //优先数
char state; //进程状态
struct PCB *next; //指针将进程按优先数大小连成队列指出下
//一个进程的进程控制块的首地址最后一个进程中的指针为空
};
int rt;
struct PCB *creatList()
{ //单循环链表建立进程控制块队列
struct PCB *H*p*q*s;
int i;
p=(struct PCB *)malloc(sizeof(struct PCB)); //头节点含有指向第一个进程的指针
H=q=p;
printf(“请输入%d个进程\n“Max);
p=(struct PCB *)malloc(sizeof(struct PCB)); //动态申请空间
printf(“请输入进程1名:“);
scanf(“%d“&p->name);
printf(“请输入要求运行时间:“);
scanf(“%d“&p->needtime);
printf(“请输入优先数:“);
scanf(“%d“&p->priority);
p->state=‘R‘; //进程的初始状态都为“就绪“状态
评论
共有 条评论