原题:实验一 进程调度-代码阅读并调试实验
1.阅读下面源代码,完善程序中填空处内容。
2.阅读代码,写出调度算法、算法流程图和程序功能。
3.解释数据结构PCB的定义和作用。
4.为main()写出每行的注释。
5.调试并运行代码,写出结果。
答题内容略,本文仅逐段解析实验代码,以及在文章最后附上算法流程图。
逐段解析代码:
头文件和自定义数据结构
#include<stdio.h>
#include<stdlib.h>
#define getpcb(type) (type*)malloc(sizeof(type))
struct pcb { /*定义进程控制块PCB*/
char name[10];//进程名或进程标识符
char state;//进程状态:w即wait,R即Running
int super;//进程优先数
int ntime;//运行时间
int rtime;//已消耗处理机时间
struct pcb* link;//指向就绪队列下一个进程的PCB
}*ready=NULL,*p;//指向队首、当前进程PCB
typedef struct pcb PCB;
用于给进程排队的函数
void sort()/*对进程进行优先级排序函数*/
{
PCB *first, *second;
int insert=0;//表示插入状态