ZKX's LAB

进程调度模拟 先来先服务 求编程模拟进程调度算法,c语言版,要求用先来先服务。

2021-04-28知识2

求编程模拟进程调度算法,c语言版,要求用先来先服务。先来先服务:用队列来实现,至于是循环队列,链队还是顺序队列,那要看具体问题决定 进程调度:可以将要处理的任务集。

假设有a.b.c.d.e五个进程,其到达时间和服务时间由下表给出,计算在采用先来先服务调度算法和最短作业优先算法的平均周转时间和平均带权周转时间,并指出他们的调度顺序及。

操作系统进程调度算法模拟 这是主要算法:你可以参考一下public class PrivilegeProcess {public static void main(String[]args){MyQueue myqueue=new MyQueue();声明队列PCB[]pcb={new PCB(001,8,1),new PCB(002,7,9),new PCB(003,3,8),new PCB(004,1,7),new PCB(005,7,4)};PCB para=new PCB();for(int i=0;i;i+){/初始化后首先执行一次排序,这里使用的是选择排序,优先级高的先入队for(int j=i;j;j+){if(pcb[i].privilege[j].privilege){para=pcb[i];pcb[i]=pcb[j];pcb[j]=para;}}}System.out.println(\"初次入队后各进程的顺序:\");for(int i=0;i;i+){System.out.println(\"初次入队后#processname:\"+pcb[i].name+\"totaltime:\"+pcb[i].totaltime+\"privilege:\"+pcb[i].privilege);}System.out.println();myqueue.start(pcb);}}class MyQueue {int index=0;PCB[]pc=new PCB[5];PCB[]pc1=new PCB[4];PCB temp=new PCB();public void enQueue(PCB process){/入队算法if(index=5){System.out.println(\"out of bounds。return;}pc[index]=process;index+;}public PCB deQueue(){/出队算法if(index=0)return null;for(int i=0;i;i+){pc1[i]=pc[i+1];}index-;temp=pc[0];。

随机阅读

qrcode
访问手机版