任务调度

现在已经实现了基本的任务,能够进行任务切换,接下来需要考虑一下如何进行调度了。

Wheel 大量参考了实时系统的设计,因此开发过程中,相对 Linux 这类 GPOS,也更加注重实时性。
然而,增强了实时性,可能会导致公平性下降。

CFS

Linux 下使用 CFS 策略进行调度,这个算法使用红黑树管理进程,每个 CPU 都有一个就绪队列,没有所谓的 global readyq。

由于没有一个全局队列,每创建一个新的任务,都要选择一个CPU,添加到它的就绪队列中,也就是将这个任务分配到一个 CPU。