进程调度是在可运行进程之间分配有限的处理器时间资源的内核子系统,原则是最大限度地利用处理器时间,工作是在一组处于可运行状态的进程中选择一个来执行。
多任务操作系统能同时并发地交互执行多个进程,分为抢占式多任务和非抢占式多任务。在抢占式多任务模式下,调度程序会强制挂起某个进程,该动作称为抢占。进程在抢占之前能够运行的时间是预 先设定好的,称为进程时间片。
linux进程调度发展历程
1991第一版—2.4版:简陋,无法胜任众多可运行进程或多处理器的环境
2.5版本:O(1)调度程序,引入静态时间片算法和针对每一处理器的运行队列 。(虽然对于大服务器的工作负载很理想,但在有很多交互程序要运行的系统上表现不佳)
2.6.23版本:完全公平调度算法CFS
________调度程序设计的基础
一、策略
1.I/O消耗型和处理器消耗型进程
I/O消耗型进程的大部分时间用来提交I/O请求或是等待I/O请求。处理器消耗型进程把时间大多用在执行代码上。
调度策略通常要在两个矛盾的目标中间寻找平衡:进程响应迅速(响应时间短)和最大系统利用率(高吞吐量)。