下载后可任意编辑Linux 内核分析之调度算法inux 调度算法在 2
32 中采纳调度类实现模块式的调度方式
这样,能够很好的加入新的调度算法
linux 调度器是以模块方式提供的,这样做的目的是允许不同类型的进程可以有针对性地选择调度算法
这种模块化结构被称为调度器类,他允许多种不 同哦可动态添加的调度算法并存,调度属于自己范畴的进程
每个调度器都有一个优先级,调度代码会根据优先级遍历调度类,拥有一个可执行进程的最高优先级的 调度器类胜出,去选择下面要执行的那个程序
linux 上主要有两大类调度算法,CFS(完全公平调度算法)和实时调度算法
宏 SCHED_NOMAL 主要用于 CFS 调度,而 SCHED_FIFO 和 SCHED_RR 主要用于实时调度
如下面的宏定义:1
* Scheduling policies 3
/*支援 Real-Time Task 的排程,包括有 SCHED_FIFO 與 SCHED_RR
/*(也稱為 SCHED_OTHER): 主要用以排程 8
一般目的的 Task
#define SCHED_NORMAL 0 10
#define SCHED_FIFO 1 11
/*task 預設的 Time Slice 長度為 100 msecs*/ 12
#define SCHED_RR 2 13
/*主要用以讓 Task 可以延長執行的時間 14
(Time Slice),減少被中斷發生 Task Context-Switch 15
藉此可以提高 Cache 的利用率 16
(每次 Context-Switch 都會導致 Cache-Flush)
較適合用在固定週期執行的 Batch Jobs 任 18
務主機上,而不適合用在需要使