考虑下面的基于动态改变优先级的可抢占式优先权调度算法。大的优先权数代表高优先级。当一个进程在等待CPU时(在就绪队列中,但未执行),优先权以α速率改变;当它运行时,优先权以β速率改变所有的进程在进入就绪队列被给定优先权数为0。参数α和β可以设定给许多不同的

admin2019-12-10  39

问题 考虑下面的基于动态改变优先级的可抢占式优先权调度算法。大的优先权数代表高优先级。当一个进程在等待CPU时(在就绪队列中,但未执行),优先权以α速率改变;当它运行时,优先权以β速率改变所有的进程在进入就绪队列被给定优先权数为0。参数α和β可以设定给许多不同的调度算法。下列(    )设定可以实现进程FIFO(First In First Out)。

选项 A、β>α>0
B、α>β>0
C、β<α<0
D、α<β<0

答案B

解析 假设进程M先于进程N进入就绪队列。PM和PN分别表示M和N的优先权数。
    在β>α>0设定下,在就绪队列中,PM>PN,原因是α>0,则越早进入就绪队列,优先数就越大,所以是FCFS(First Come First Service)。又因为β>α,所以在M运行时,PM增长速度大于PN的增长速度,则PM>PN,从而保证了M进程先于N进程完成,即FIFO(First In FirstOut)。
    在α>β>0设定下,还是FCFS,原因跟β>α>0一样。但由于α>β,所以在M运行时,无法保证PM仍然大于PN,即无法保证FIFO。
    在β<α<0设定下,在就绪队列中,PM<PN,原因是α<,则越早进入就绪队列,优先数就越小,所以是LCFS(Last Come First Service)。又因为β<α,所以在N运行时,PN下降速度大于PM的下降速度,有可能出现PM>PN的情况,此时CPU就有可能被M抢占,无法保证LIFO(Last In First Out)。
    在α<β<0设定下,还是LCFS,原因跟β<α<0一样。但由于α<β,在N运行时,PN的下降速度变慢了,从而保证了PN始终大于PM,导致N进程先于M进程完成,即LIFO。
    所以本题的答案选A。本题通过对α、β的设置实现更多的调度方式,有兴趣的同学可以再思考下,比如α<0<β的情况等。
转载请注明原文地址:https://jikaoti.com/ti/5TDjFFFM
0

相关试题推荐
最新回复(0)