1、进程的调度
单个CPU一次只能执行一个进程。虽然Linux系统可能通过多任务处理同时运行多个进程,但当多
个进程在单个CPU上并发运行时,它是通过交错执行这些进程。
内核使用进程调度器来确定在任何给定的时间点运行哪个进程。进程调度器必须平衡几个选项,基
于以下标准:
- 快速决定哪个进程进入下一个cpu使用周期。
- 进程可以获得公平的CPU时间份额,但是允许高优先级进程获得更大的份额,并抢占低优先级进程。
- 响应式受益交互应用。
- 在各种工作条件下保持可预测性和可扩展性。
2、进程优先级简介
在Linux中,调度器根据分配给每个线程或进程的"调度策略"和"调度优先级"控制执行顺序。调度策略分为非实时策略组和实时策略组。
1. 静态优先级
静态优先级是在新进程创建时设置的默认优先级,不能更改。使用"实时策略"的进程优先级的值在
1(最低)到99(最高)之间,被称为"实时优先级"。调度程序在一个自平衡的二叉搜索树中维护一个可运行进程列表。要确定哪些进程下一个获得CPU时间,调度器查找具有最高静态优先级或实时优先级的进程。调度策略只确定具有相同静态优先级的进程在运行队列中的顺序。使用非实时策略的进程不使用静态优先级,静态优先级设置为0。
2. 动态优先级