目录
什么是调度
进程调度的时机、切换、过程与方式
调度器/调度程序
调度算法
先来先服务算法
短作业优先算法
高响应比优先算法
时间片轮转算法
优先级调度算法
多级反馈队列调度算法
什么是调度
调度的三个层次
高级调度
中级调度
低级调度
总结如下:
进程调度的时机、切换、过程与方式
进程调度的时机
注意区分普通临界区和操作系统内核程序临界区
根据主动和被动放弃处理机,可分为抢占式和非抢占式调度
进程切换过程
调度器/调度程序
有了新进程,调度程序要出来看看是不是需要上处理机;进程退出或者进程阻塞,处理机就会空闲下来,也要出来看看接下来应该让谁上处理机。
如果线程是基本的调度单位,道理也是一样的
另外,如果没有任何需要调度的程序,那么,CPU就会运行闲逛程序,也就是说,CPU是永远都不会停下来的。
闲逛指令的末尾可以周期性地唤醒调度程序来看看有没有其他程序需要进行调度,如果有,则闲逛程序下处理机,其他程序上处理机。
调度算法
调度算法的评价指标
CPU利用率
系统的吞吐量
周转时间
有一个问题需要思考下
比如,排队等待上厕所的过程,等了10分钟,然后用了1分钟;和等了1分钟,用了10分钟。
这两者给人的感觉,显然后者更让人满意。
作业的周转时间同样如此
带权周转时间就是用来评价用户满意度的指标。
比如,我想打印1张文件,却要等10分钟,这样显然让人很不满意。
但是如果我想打100张纸,却只等了1分钟,这样就让人感到很满意。
等待时间
响应时间
总结如下:
先概览一下
先来先服务算法
短作业优先算法
非抢占式短作业优先
抢占式短作业优先(又叫最短剩余时间优先算法)
注意:
高响应比优先算法
上述三种调度算法总结如下:
时间片轮转算法
举例:时间片大小为2
举例:时间片大小为5
这里如果换成先到先服务算法
优先级调度算法
非抢占式优先级调度
抢占式优先级调度
静态优先级和动态优先级
对上述几种算法的思考
多级反馈队列调度算法
总结如下: