如何用Python实现作业调度算法?

0 投票
1 回答
4308 浏览
提问于 2025-04-16 06:21

我想测试一下哪个调度算法最适合我的应用,但不知道该怎么进行测试。我有一组任务需要执行,对于对称多处理(SMP)的执行,我使用了Parallel Python,但不知道怎么应用作业调度算法。

举个例子,如果我想实现最短作业优先(SJF)算法,我怎么知道我提交的任务是最短的呢?因为有可能后面提交的一个大任务,最终会比当时提交的一个小任务要短。

1 个回答

3

你只有在提前知道所有工作的运行时间的情况下,才能判断你提交的工作是否是最短的。这一点并不容易,因为你得先运行这些工作才能知道它们的时间。正因为这个原因,最短作业优先(SJF)很少被使用。使用先进先出(FIFO)调度就简单多了;你只需要把工作按顺序放进一个列表里(用 lst.append()),然后每当需要一个新工作时,就用 lst.pop(0) 从列表的开头取出一个。

撰写回答