MIT JOS # Round-Robin Scheduling#
下面是MIT JOS里 round-robin调度策略的实现.
在 kern/sched.c里面
下面的截图来自<<Modern Operating system>> (以前搬过的砖也是有好处的哇~)
结合代码就能够很形象的理解Round-robin.
每当我们调用sched_yeild()的时候,我们就打算让当前进程让出CPU了.
于是把 idle = thiscpu->cpu_env;
我们每次都让出当前进程,然后让队列中离当前进程"最近"的进程运行,使用CPU
这里我提到的所谓的队列也不是什么优先队列,round robin里面把所有的进程都考虑成同样重要,没有权重之分.
只是所有的env结构体都是连续结构体的.能够利用索引查找他们.
此外还有其他的各种调度策略,可以去看看<<Modern Operating System>>
时间: 2024-10-10 03:19:05