需要从两个维度观察非实时进程的调度策略:
1.进程的静态优先级,静态优先级决定进程的基本时间片,一个高优先级进程一旦进入running状态,可以获得更长的执行时间片。
2.进程的动态优先级,对平均睡眠时间长的进程进行奖励,对高发的进程进行惩罚。交互式进程由于睡眠时间长而容易获得奖励。
系统通过公式bonus-5 >= 静态优先级/4-28来识别交互式进程。可以理解为同等优先级下进程睡眠时间较长的更像是交互进程。
为了避免进程饥饿,高优先级的进程时间片用完时,应该执行时间片还未用完的低优先级进程。具体来说系统将时间片用完的进程归入
过期进程队列,对未用完时间片的进程归入活动进程队列。调度程序总是先执行活动队列。