采用两种调度器
- 通用任务调度采用:Complete Fair Scheduler (CFS)
- SCHED_OTHER
- SCHED_BATCH
- SCHED_IDLE
- 实时任务调度采用:Real-Time Scheduler (RT)
- SCHED_FIFO
- SCHED_RR
一共维护 140 个优先级:
- CFS 使用 40 个优先级
- RT 使用 100 个优先级
时钟中断(抢占式调度的基础)
- 系统中断的频率:
HZ- 在编译时静态确定,早期系统为 100,现在为 250 或 1000
- 每秒产生
HZ次时钟中断
HZ对系统的影响- 越大: 计时精度更高,时钟中断处理开销越大
- 例如,进程只剩余 2ms 的时间片,
若 HZ 为 100,则可能 10ms 后 才退出执行;
若 HZ 为 1000,则可精确在 2ms 后暂停执行。
jiffies: Linux中的全局变量- 标识系统启动至今的 tick 数量 (时钟中断)
- 每秒
jiffies增加HZ次 系统启动至今的时间(秒数) = (jiffies - 预设偏移) / HZ- 预设偏移
offset由内核在启动时设置
- 预设偏移