Scheduling Classes

Concept

在 Linux 中 kernel 進行 scheduling 有兩個層次:

  1. CFS 先依據 scheduling class 排程
  2. 接下來被選中的 scheduling class 在用自己內部的 scheduling algorithm 去選擇實際上要跑的 process 或 thread

Scheduling Class 總而言之就是為 Linux Kernel 的 scheduling 提供一個模組化抽象,它給予每個 class 一個 priority(像是 real-time class 就有高優先級而 normal class 優先級就較低)並且讓其內部自行根據其中 process 的性質選擇最佳的 scheduling algorithm

Scheduling Classes

1. Real-time Class

使用 FIFO 或 Round-Robin 實作

2. Fair Class

就是一般使用者 process 所在的 class,使用 CFS

Linux kernel 實際上共五個 class 但這裡先只講兩種