操作系统实验之进程管理
纯C语言实现,仅作记录学习用途,欢迎大家改良。 操作系统是软件工程的学生的必修课之一,实验课因为对JAVA语言的熟悉程度不足,采用较为熟悉的C语言实现。 题目如下: 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的格式为:
进程名要求运行时间优先数状态
其中,进程名——作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。 要求运行时间——假设进程需要运行的单位时间数。 优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。 状态——可假设有两种状态,“就绪”状态和“结束”状态。五个进程的初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态为“结束”,用“E”表示。**
#include
#include
#include
#include
typedef struct
{
int name;//进程名
int worktime;//要求运行时间
int prinum;//优先级数
char state;//状态
} PCB;
void initpcb(PCB pcb[],int n)//初始化五个进程,
{
int i;
srand((unsigned)time(NULL));
for(i=0; i |