应用概述
该应用程序由 3 个主要组件组成:任务、资源和调度程序。
任务的生命周期:
调度程序将所有任务分为三组之一:准备运行、等待依赖项或无法运行
调度程序维护全局“时钟”。 在每个滴答声中,它查看就绪队列并分派所有准备运行的任务。 它还“勾选”其控制下的每个资源的执行计数器。
调度程序将每个任务与具有足够可用内核来处理任务的资源相匹配。
任务完成后,任务会通知调度程序和任何观察者。 观察者是等待当前任务完成的其他任务。
当新任务变为“就绪”(意味着满足所有依赖项)时,它们将被移动到调度程序的就绪队列中并在下一个滴答声中处理。
处理完所有任务后,调度程序将关闭。
增强功能和潜在问题
这个调度器还有很多可以做得更好的地方,包括:
更好地验证文件(即检查重复的任务名称、循环引用)
资源的优先级 - 例如,在查看计算 2 之前填写计算 1。 现在该算法是“第一个可用的”
任务
1