六、处理机调度
处理机调度
处理机调度
- 根据算法和原则,对cpu资源再分配的过程称为处理机调度
- 调度发生的前提是进程/作业数远远大于处理机数
- 调度的目的是提高资源利用率
- 调度的要求:
- 满足特定系统用户的需求
- 考虑系统整体效率
- 考虑调整算法本身的开销
调度的层次
- 高级调度/作业调度:从磁盘中读取应用程序,创建进程
- 中级调度/内存调度:进程被挂起和激活
- 低级调度/进程调度:进程从就绪队列中取出分配给cpu执行
调度的方式
- 抢占式调度
- 立即暂停当前进程
- 分配处理机给另一个进程
- 原则:优先级/时间片原则/短进程优先
- 非抢占式调度
- 有进程请求执行,先等待
- 直到当前进程执行完成或阻塞
调度时机
- 时间片用完
- 进程运行完成
- 进程要求I/O操作
- 执行某种原语操作
- 高优先级进程申请执行(抢占式调度)
调度过程
- 保存镜像:记录进程线程信息
- 调度算法:确定分配cpu的原则
- 进程切换:分配cpu给其他进程
- cpu回收:从进程收回cpu资源
调度算法指标
- cpu利用率
- 系统吞吐量:完成作业数/总时间
- 响应时间
- 等待时间:作业等待执行的时间
- 周转时间:作业完成时间-提交时间,即作业完成花费的时间。cpu切换的时间也算在内
调度算法
先来先服务调度算法
- 从就绪队列中一次获取作业去执行
- 按照作业顺序去执行
- 调度方式:非抢占式调度
- 优点:有利于cpu繁忙性工作;缺点:不利于I/O繁忙性工作
短作业优先调度算法
- 所需时间最短的作用优先执行
- 从阻塞队列放到就绪队列的作用,可能之前执行过部分,所以按照剩余时间进行比较
- 调度方式:非抢占式调度
- 优点:平均周转时间最少;缺点:周转时间长的作业可能不会执行
高响应比优先调度算法
- 响应比:(等待时间+周转时间)/周转时间
- 综合考虑等待时间和周转时间计算响应比高的优先调度
- 调度方式:非抢占式调度
- 优点:系统响应速度快;缺点:当前进程放弃执行权时,需要重新计算所有进程响应比
优先级调度算法
- 按照作业/进程的优先级进行调度
- 调度方式:抢占/非抢占式
- 优先级设置原则:
- 静态优先级是在作业被创建出来时就决定了,并且不能改变
- 动态优先级是可能被修改的
- 系统作业>用户作业;交互性>非交互性;I/O型>计算型
- 缺点:低优先级进程可能不会被执行
时间片轮转调度
- 就绪队列的进程分配时间片,按照队列中顺序依次执行
- 调度方式:抢占式调度
- 优点:公平、响应快;缺点:时间片太多,就绪队列后面的进程容易饥饿,时间片太小,切换频繁
多级反馈队列调度
- 此调度算法有多个就绪队列,每个队列分配了优先级,而且优先级越高的队列中的进程,时间片分配的越小
- 一开始进程是放到最高优先级队列,并且分配较小的时间片。然后按照队列顺序执行进程,时间片执行完后,如果进程没有执行完,将此进程移动到优先级低一等级的队列尾部,并且分配时间片
- 只有高优先级的进程全部执行完成,低优先级队列中的进程才能执行