调度器 cpu时间片管理 | 上下文切换 内核中存储/重建进程状态 | 1,选择就绪态程序执行 | 抢占式调度器 |
2,打断执行中状态进程,变成就绪态 |
调度器分类:
o1 | 140个队列 | 进程优先级 | 分类 | 细化分类 | 类型特点 | 创建角色 | |||||||||||||||||||||||||||||||
0 - 99 | 实时进程 | 内核创建 | |||||||||||||||||||||||||||||||||||
100 - 139 | 普通进程 | 互动进程
| 图形界面,事件触发 | 用户创建 | 默认优先级120 | 内核命令修改优先级 nice -n -20 ./app 修改范围-20至19
| |||||||||||||||||||||||||||||||
批量进程
| 后台运行 | 静态优先级 | 动态优先级 | ||||||||||||||||||||||||||||||||||
进程 | 优先级 | 运行时间片长度 | 时间片计算公式 | 优化 |
A | 100 | 800 | (140 - p)×20 | 调度器根据平均休眠时间动态调整进程优先级 |
B | 110 | 600 | ||
C | 120 | 100 | ||
D | 130 | 50 | (140 - p)×5 | |
E | 139 | 5 | ||
CFS 完全公开调度器 2.6.23 | 红黑树 | 虚拟运行时 | A/1000 | A/1000 + 250ms | E/1000 |
B/1200 | E/1000 | B/1200 | |||
C/1300 | B/1200 | A/1250 | |||
D/1400 | C/1300 | C/1300 | |||
D/1400 | D/1400 | ||||