2010-03-09 202 views
8

我想知道旧的Linux调度算法SJF(最短作业优先)如何计算过程运行时?Linux内核调度

+0

公平的问题,但你确定Linux曾经使用SJF调度? – zdav 2010-03-09 06:04:07

+1

@zdav:我很确定早期版本的Linux 2.0有一个实验性的SJF调度程序,它的寿命很短。它会回到Redhat 4,大约在1996/1997左右。 IIRC,只有那些用GNU手动推出Linux的人才真的在测试它,RH没有提供它。 ICBW,这是前一段时间。 – 2010-03-09 09:46:03

回答

5

这个问题实际上是它在很少用于常见环境中的主要原因之一,因为SJF算法要求对所有进程的运行时间进行精确估计,这只在专用环境中给出。

在普通情况下,你只能得到估计和工艺运行时间,例如,通过记录之前的同一进程的CPU突发长度的不准确的长度,并用数学近似的方法来计算多长时间运行下一次。

1

如果你有一些带宽要烧,你可能能够找到实际的代码here。从2.0开始,我认为你会发现它是实验性的。

SJF是(IIRC)极其短命,确切的是reasons that ZelluX noted

我觉得你唯一的希望就是理解这个疯狂背后的方法生活在代码中。你可能能够建立它并让它在模拟器中启动。

编辑:

现在我不能完全确定,如果它曾经没有进入主线。如果你找不到它,不要责怪我:)