综合题 某进程调度程序采用基于优先数(priority)的调度策略,即选择优先数最小的进程运行,进程创建时由用户指定一个nice作为静态优先数。为了动态调整优先数,引入运行时间cpuTime和等待时间waitTime,初值均为0。进程处于执行态时,cpuTime定时加1,且waitTime置0;进程处于就绪态时,cpuTime置0,waitTime定时加1。请回答下列问题。
问答题     若调度程序只将nice的值作为进程的优先数,即priority=nice,则可能会出现饥饿现象,为什么?
 
【正确答案】由于采用了静态优先数,当就绪队列中总有优先数较小的进程时,优先数较大的进程一直没有机会运行,因而会出现饥饿现象。
【答案解析】
问答题     使用nice、cpuTime和waitTime设计一种动态优先数计算方法,以避免产生饥饿现象,并说明waitTime的作用。
 
【正确答案】优先数priority的计算公式为: priority=nice+k1×cpuTime-k2×waitTime,其中k1>0,k2>0,用来分别调整cpuTime和waitTime在priority中所占的比例。waitTime可使长时间等待的进程优先数减小,从而避免出现饥饿现象。
【答案解析】