Process 处理器在什么时间间隔比较SRTF算法中的进程及其突发时间?

Process 处理器在什么时间间隔比较SRTF算法中的进程及其突发时间?,process,operating-system,job-scheduling,Process,Operating System,Job Scheduling,我在学习操作系统,一直在学习调度算法。我正在经历最短剩余时间优先(SRTF)算法(SJF的抢占版),对此有点怀疑。大多数例子都能够解释分配和抢占发生的过程,我已经得到了这一部分。但是,我还没有弄清楚,处理器实际上是在什么时间间隔检查/比较进程的。就像在现实中一样。是每秒钟吗?如果是的话,这不是效率很低吗?请帮我弄清楚这个概念。这是个好问题。实际上,您遇到了一个主要的痛点,这是许多最近的操作系统研究所探索的 正如你所说的,如果算法每秒进行一次检查,那么算法将不会非常有效。如果算法检查过于频繁(例如

我在学习操作系统,一直在学习调度算法。我正在经历最短剩余时间优先(SRTF)算法(SJF的抢占版),对此有点怀疑。大多数例子都能够解释分配和抢占发生的过程,我已经得到了这一部分。但是,我还没有弄清楚,处理器实际上是在什么时间间隔检查/比较进程的。就像在现实中一样。是每秒钟吗?如果是的话,这不是效率很低吗?请帮我弄清楚这个概念。

这是个好问题。实际上,您遇到了一个主要的痛点,这是许多最近的操作系统研究所探索的

正如你所说的,如果算法每秒进行一次检查,那么算法将不会非常有效。如果算法检查过于频繁(例如,每隔几微秒),算法可能会浪费大量时间进行检查,而这段时间可以用来运行进程

对于标准内核调度器(例如Linux CFS),检查通常发生在以下两点:

  • 每当一个正在运行的进程产生、阻塞、死亡等,就会调用调度程序
  • 每当接收到计时器中断时。时间段是可配置的,但人们通常将时间段设置为几毫秒

  • 实现SRTF算法的内核可能也会在这些点进行检查。

    谢谢您的输入。我猜情况会是这样,否则操作系统根本就没有效率。但再次感谢,这说明了这一点。当I/O完成中断发生时会怎样?@MartinJames是的,有很多地方。