面试题答案
一键面试可能导致的问题
- 饥饿现象:长作业由于不断有更短作业进入系统,可能长时间得不到调度执行,从而产生饥饿。因为最短作业优先调度策略总是优先选择运行时间最短的作业,长作业可能一直无法获得CPU资源。
改进方法
- 加入老化机制:随着时间推移,逐渐提高长作业的优先级。例如,为每个作业设置一个优先级动态调整参数,每经过一定时间单位,长作业的优先级增加一定值,使得长作业随着等待时间的延长,其优先级能够逐渐提高,从而有机会被调度执行。
- 设置优先级上限:对于新进入系统的短作业,为其优先级设置上限。这样即便新作业运行时间短,但优先级不会无限高,使得长作业在一定程度上也能有机会竞争到CPU资源。
- 定期调度长作业:设定一个时间周期,每隔一定时间,强制调度队列中等待时间最长的长作业,保证长作业不会长时间得不到执行。