进程调度
进程调度概述
- 进程调度是指计算机通过决策决定哪个就绪进程可以获得CPU的使用权
- 进程调度会有两个步骤,分别是
- 保留旧进程的运行信息,请出旧进程
- 选择新进程,准备运行环境并分配CPU
- 为了实现进程调度以上的两个步骤,就需要了解以下三种重要的机制
- 就绪队列的排队机制:将就绪进程按照一定的方式排成队列,以便调度程序可以最快找到就绪进程
- 选择运行进程的委派机制:调度程序以一定的策略选择就绪进程,将CPU资源分配给它
- 新老进程的上下文切换机制:保存当前进程的上下文信息,装入被委派执行进程的运行上下文
- 进程调度会有两个步骤,分别是
-
如果在进程调度过程中,老的进程还没有执行完该怎么办呢?首先将进程分为以下两大类,然后按业务划分来确定具体的方案
- 非抢占式的调度
- 处理器一旦分配给某个进程,就让该进程一直使用下去
- 调度程序不以任何原因抢占正在被使用的处理器
- 直到进程完成工作或因为IO阻塞才会让出处理器
- 抢占式的调度
- 允许调度程序以一定的策略暂停当前运行的进程
- 保存好旧进程的上下文信息,分配处理器给新进程
- 非抢占式的调度
-
抢占式调度与非抢占式调度的区别
抢占式调度 | 非抢占式调度 | |
---|---|---|
系统开销 | 频繁切换,开销大 | 切换次数少,开销小 |
公平性 | 相对公平 | 不公平 |
应用 | 通用系统 | 专用系统 |
进程调度算法
- 先来先服务算法
- 从就绪队列中将最先进入队列的进程进行依次顺序执行
- 短进程优先调度算法
- 调度程序优先选择就绪队列中预估运行时间最短的进程
- 短进程优先调度算法不利于长作业进程的执行
- 高优先权优先调度算法
- 进程附带优先权,调度程序优先选择权重高的程序
- 高优先权优先调度算法是的紧迫的任务可以优先处理
- 时间片轮转调度算法
- 按先来先服务的原则排列就绪进程
- 每次从队列头部取出待执行进程,分配一个时间片执行,把这个时间片执行完了不管这个进程是否执行完毕,都将会重新插入到队列的尾部,重新轮转执行
- 是相对公平的调度算法,但是不能保证及时响应用户