操作系统作业调度习题,求大佬解答。。。
有一个单CPU的多道批处理系统(内存中可同时装入两道作业),作业调度采用“短作业优先”调度算法,进程调度采用“优先数抢占式”调度算法,且优先数越小优先级越高,系统拥有打印机一台,采用静态方法分配,忽略系统的调度开销。现有如下作业序列到达系统:
答案是
解析:J1最早进入到达系统,所以进入内存时间最早,为14:00,CPU运行时间为40分钟,运行到20分钟时,这时时间为14:20,此时J2到达系统,因为内存中可同时装入两道作业且J2优先级高,还有运行时间短(系统采用短作业优先调度),所以立即执行J2,J1等待。
J2执行30分钟后结束,是14:50,J2周转时间=等待时间+运行时间 = 30(分钟)。(也可以按到达时间至结束时间计算)。此时才运行J1剩下的20分钟。即15:10分,J1运行完成,J1周转时间等于到达时间至结束时间,即为14:00至15:10得出70分钟。
J3 14:30到达系统,此时J2 正在执行,需要等到14:50,而到了14:50,J4到达系统,J4作业短所以优先执行,J3继续等待,J4执行到15:00时,J5到达系统,因为优先级最高,且作业最短,所以J5优先执行,J4等待。,此时......
我写到这里觉得我的思路错了,但不知道错在哪,求大佬解答。。。欲哭无泪。。。 请问答案是怎么算出来的?
你存在弄错了作业调度和进程抢占的概念。
作业调度是没有作业运行的时候,内存中正好有两个作业等待运行,这时候适用作业调度策略
进程抢占是一个作业正在运行,这时候来了另一个作业,第二个作业是立即抢过来cpu的执行权,还是等到作业运行完,这种情况适用进程抢占策略。
你可以根据这个再试着分析一下