对于任务调度器来说,在发生调度时需要决定选择某个进程调度到哪个CPU执行,同时还需要基于系统当前的负载,实时的调整CPU运行的频率。Linux进程调度器为了适配各种不同场景的设备,如服务器,嵌入式设备,通常需要在多个性能目标上进行权衡取舍:
- 需要确保调度尽可能公平,保证每个任务都有机会得到执行
- 快速响应用户请求,比如对于交互式的用户任务,需要降低调度延迟,快速调度任务执行
- 实现更高的系统吞吐量,可以满足更多的任务并发执行
- 同时尽可能降低系统功耗,在系统空闲或者负载降低时尽可能减小工作频率,减少能耗