РJfcfspro(&M)先来先服务作业调度Р{Р当磁带机足够并且DisProce(M)分配到主存,就把Jwait里符合要求的作业添加到Jexe队列里,分配所需资源,否则把M的首元素删除Р作业调度模块Р当Al1进程队列长度小于作业队列Q的作业数时,说明有新作业加入。则为新作业创建进程并把新进程添加到Al1的队尾РPfcfsInput(&Al1,&Q) 先来先服务РPsjfInput(&Al1,&Q) 短进程优先Р当Al1进程队列长度小于作业队列Q的作业数时,说明有新作业加入。Р建立进程,若新进程的运行时间比正在运行的进程剩余运行时间还要短,则把新进程添加到Al1队首;否则,利用插入排序法把新进程插入到合适的位置,确保Al1进程对列是按运行时间从小到大排列Р进程调度模块Р若果Al1进程队列非空,则执行。Al1.front->next->base.ntime --进程队列首元素正在执行,若果РAl1.front->next->base.ntime == 0Р说明进程已完成,把进程从Al1队首删掉,并标记Jexe首作业完成:Jexe[0].done = true,记录该作业在主存分配队列Qproce中的作业信息rtime=0(此时该作业将要被从内存中释放)。РPRun(&Al1)Р进程队列运行模块Р当Jexe非空,若果Jexe[0]已完成:Jexe[0].done == true,把它添加到完成作业队列Jdone中,释放磁带机和主存。РJFinjob()?//完成作业处理模块Р(5)程序运行情况;Р 本次课程设计采用可视化界面,便于观察与操作。Р.系统已预设好5个作业供模拟。需要添加作业时,请按时间到达的先后添加,那相当于作业信息。开始时可以设定开始时间、磁带机数和内存Р运行速度滑动条设定模拟运行的CPU速度,时间间隔最快为0.1s,最慢为1.2s。注意,调整速度时请先暂停运行。