一:先来先服务(first-come first-severd / FCFS)

所有调度算法中,最简单的就是非抢占式的先来先服务算法。

FCFS调度算法,使进程按照它们请求CPU的顺序使用CPU。在此算法中,一个单链表记录所有就绪进程。选择运行一个程序,该队列的头部移走一个进程;添加一个新进程或者阻塞一个进程,将该作业或进程连接在队列末尾。

优点  缺点

易于理解

便于在程序中运用

不利于短作业

不利于I/O繁忙型作业

短作业如果不是排在队列靠前的位置,则需要等待大量的时间,而它本身的运行时间又极短。I/O繁忙型作业由于等待I/O而频繁进入等待状态,因而需要多次的入队出队操作。此两种作业,就作业本身而言,完成效率极低。

二:最短作业优先(shortest job first / SJF)

使用于运行时间可以预知的非抢占式批处理调度算法。

【OS】批处理系统中的调度

左边是顺序占用CPU队列,右边为按照最短作业优先占用CPU的队。最短作业优先的调度算法可以减少平均周转时间,整体上每个程序的平均运行时间减少。但是对于长时间的作业来说,长作业可能永远也得不到执行。另外,只有在所有作业都可以运行的情况下,最短作业优先才是最优化的。

三:最短剩余时间优先(shortest remaining time next / SRTN)

最短剩余时间优先就是最短作业优先的抢占式版本。调度程序总是选择剩余运行时间最少的进程运行。

有关的运行时间必须提前掌握。当一个新的作业到达,整个运行时间和当前运行进程的剩余时间相比较,如果新作业的总时间比当前运行程序的剩余运行时间少,则选择运行新程序。

这种方式可以使新的短作业获得良好的服务。

相关文章:

  • 2021-09-26
  • 2021-12-02
  • 2021-07-10
  • 2022-12-23
  • 2021-09-03
  • 2021-10-30
  • 2021-10-10
猜你喜欢
  • 2021-10-29
  • 2021-10-27
  • 2021-05-25
  • 2022-12-23
  • 2022-12-23
  • 2021-10-21
相关资源
相似解决方案