我读到了一种名为 EDD 的调度算法,它总是在下一个截止日期前工作,而且是可行的。在每个时间窗口或切片内,在所有处理器或一组处理器的所有处理器上工作以保证所有处理器在某个特定时间窗口内完成一些工作是否也是可行的?这会是一个可行的调度程序吗?
答案1
我不明白为什么它不可行,尽管我不能说它是否存在于任何 *nix 操作系统上(它可能存在于更专业的操作系统上,例如QNX,但我对更通用的系统(如 OS X、FreeBSD 或 Linux)持怀疑态度。这提及最早到期日安排的维基百科文章没有引用任何来源,但有关实时操作系统的文章具体谈到最早截止日期优先安排这听起来很相似。
EDF 文章专门讨论了“每当调度事件发生时”。此类事件(例如:新进程或进程完成)不绑定到任何特定处理器,并且它将是一个特别愚蠢的调度程序实现,不利用系统的可用计算资源。
适当的 RTOS 可能在同步进程和线程互斥体以及其他互锁方面遇到问题,但无论使用哪种调度算法,这都将是一个问题,特别是当系统具有多个执行单元(CPU 核心)时。