#include #include #include #include using namespace std; #define M 2 //时间片为2 #define L 3 //每运行一次进程优先数降低 L 个单位 typedef struct node{ char name[10]; /*进程标识符*/ int prio; /*进程优先数*/ int round; /*进程时间轮转时间片*/ int cputime; /*进程占用 CPU 时间*/ int needtime; /*进程到完成还要的时间*/ int count; /*计数器*/ char state; /*进程的状态*/ struct node *next; /*链指针*/ }PCB; /*进程控制快 PCB,用结构体说明*/ PCB *finish,*ready,*tail,*run; /*队列指针*/ int N; /*进程数*/ /*将就绪队列中的第一个进程投入运行*/ void firstin(){ run=ready; /*就绪队列头指针赋值给运行头指针*/ run->state='R'; /*进程状态变为运行态*/ ready=ready->next; /*就绪对列头指针后移到下一进程*/ } /*标题输出函数*/ void prthead(char a){ cout<<"********************************************************** "<name<cputime<needtime<prio <state<name<cputime<needtime<count <round<state<next; } p=finish; /*输出完成队列的PCB*/ while(p!=NULL){ prtpcb(algo,p); p=p->next; } cin.get(); /*压任意键继续*/ } /*优先数的插入算法,将一 Pcb 结点按照优先级插入已知的就绪队列当中*/ void insert1(PCB *q){ PCB *p1,*s,*r; int b; s=q; /*待插入的PCB 指针*/ p1=ready; /*就...