首页 > 试题广场 >

下列进程调度算法中会导致饥饿的是( )

[不定项选择题]
下列进程调度算法中会导致饥饿的是(      )
  • FCFS
  • SJF
  • SPF
  • HRRN
​选项分析: ​A. FCFS (First-Come, First-Served / 先来先服务) ​原理:按照进程到达就绪队列的先后顺序进行调度。 ​分析:这是一种非常公平的策略。每个进程只要进入了队列,就一定会按照顺序得到处理,不会被无限期地推迟。因此,FCFS算法不会导致饥饿。 ​B. SJF (Shortest Job First / 短作业优先) 和 C. SPF (Shortest Process First / 短进程优先) ​原理:这两个其实是同一种算法的不同叫法,都指优先选择当前就绪队列中执行时间最短的进程来运行。 ​分析:这种算法的优点是平均等待时间短。但其缺点也十分明显:如果系统中持续有新的、执行时间很短的进程到来,那么那些已经就绪但执行时间较长的进程,其调度顺序会不断被新来的短进程插队,导致它们一直得不到CPU资源。在极端情况下,长进程可能会永远等待下去,这就是典型的“饥饿”现象。因此,SJF/SPF算***导致饥饿。 ​D. HRRN (Highest Response Ratio Next / 高响应比优先) ​原理:这是一种对SJF算法的改进,它在选择进程时不仅考虑了执行时间,还考虑了等待时间。其优先级的计算公式为: 响应比 = (等待时间 + 要求服务时间) / 要求服务时间 ​分析:从公式可以看出: ​如果进程的等待时间相同,那么要求服务时间越短,响应比越高,类似于SJF。 ​如果要求服务时间相同,那么等待时间越长,响应比越高。 ​这意味着,一个长作业即使服务时间很长,但只要它等待的时间足够久,其响应比就会越来越大,最终必然会获得CPU。这个机制有效地避免了饥饿现象的发生。 ​结论: ​综上所述,SJF(短作业优先) 和 SPF(短进程优先) 算法因为总是优先处理短进程,有可能使长进程永远得不到调度,从而导致饥饿。而FCFS和HRRN算法的设计机制可以保证每个进程最终都能被调度。 ​因此,正确答案是 B 和 C。
发表于 2025-08-25 20:23:46 回复(0)