首页 习题正文

46.(6分)某进程调度程序采用基干优先数(prioritv

46.(6分)某进程调度程序采用基干优先数(prioritv)的调度策略,即选择优先数最小的进程运行,进程创建时由用户指定一个nice作为静态优先数。为了动态调整优先数,引入运行时间cpuTime和等待时间waitTime,初值均为0。进程处于执行态时,cpuTime定时加1,且waitTime 置O;进程处于就绪态时,cpuTime置0,waitTime定时加1。请回答下列问题。 (1)若调度程序只将nice的值作为进程的优先数,即priority=nice,则可能会出现饥饿现象,为什么? (2)使用nice、cpuTime和waitTime设计一种动态优先数计算方法,以避免产生饥饿现象,并说明waitTime的作用。



【参考答案及解析】
(1)由于采用了静态优先数,当就绪队列中总有优先数较小的进程时,优先数较大的进程直没有机会运行,因而会出现饥饿现象。(2分) (2)优先数 priority 的计算公式为∶ priority=nice+k1×cpuTime-k2×waitTime,其中k1>0,k2>0,用来分别调整 cpuTime 和 waitTime 在 priority 中所占的比例。(3分)waitTime 可使长时间等待的进程优先数减小,从而避免出现饥饿现象。(1分) 【评分说明】①公式中包含 nice 给1分,利用cpuTime 增大优先数给1分,利用waitTime 减少优先数给1分;部分正确,酌情给分。②若考生给出包含 nice、cpuTime 和 waitTime 的其他合理的优先数计算方法,同样给分。

正在整理中,欢迎在文下评论区提供答案解析,谢谢!
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接:https://scpro.cn/v/0b2f3b10c39f4216.html