int i=0;
cout<<\…
return p; }
void cpu_round(pcb *q){ //处理器的工作状态 q->cputime+=2; q->needtime-=2; …
q->process=execute; }
pcb * get_next(pcb * k,pcb * head){ pcb * t; t=k; … } return t; }
void set_state(pcb *p){ while(p){
if (p->needtime==0){ p->process=finish; }
if (p->process==execute){ p->process=ready; } p=p->next; } }
void display_round(pcb *p){
cout<<\ \\
\ \ \ …
p=p->next; } }
void round_cal(){ pcb * p; …
set_state(p); } }
void main(){ display_menu(); int k;
scanf(\ switch(k){
case 1:priority_cal();break; case 2:round_cal();break; case 3:break; display_menu(); scanf(\ } }
4.6 程序测试数据及结果
图 1程序测试数据
图 1运用循环轮转调度算法的执行结果1
图 2运用循环轮转调度算法的执行结果2
图 3运用循环轮转调度算法的执行结果3
图 4运用优先数调度算法的执行结果1
图5运用优先数调度算法的执行结果2
图 6运用优先数调度算法的执行结果3
五.设计总结
通过本次试验,我了解到优先数算法是一种以进程优先级作为参考来调度进
程的一种算法。这个算法的好处是能够让优先级高的进程得到更多的CPU占用时间,缺点是那些优先级低的进程可以永远得不到执行。对于轮转法是一种比较公平的算法,所有的进程都有机会得到执行。
六.附录.
#include