轮转调度算法
基本原理
系统将所有就绪进程按FCFS策略排成一个就绪队列。系统可设置每隔一定时间便产生一个中断,去**调度程序进行调度,把CPU分配给队首进程,并令其执行一个时间片。当它运行完毕后,又把处理机分配给就绪队列中新的队首进程,也让它执行一个时间片。
进程切换时机
(1)正在运行的进程完成 应将其从就绪队列中删除,再调度就绪队列队首的进程运行,并启动一个新的时间片
(2)在一个时间片用完时,计时器中断处理程序被**。如果该进程尚未运行完毕,调度程序将它送往就绪队列的末尾。
时间片长度的确定
时间片长度变化的影响
过长 -> 退化为FCFS算法,进程在一个时间片内都执行完,响应时间过长。
过短 -> 用户的一次请求需要多个时间片才能处理完,上下文切换次数增加,响应时间过长。
时间片略大于一次典型的交互所需要的时间,使大多数进程在一个时间片内完成
应当使用户输入的80%以上的命令通常在一个时间片完成,否则使响应时间过长。
多级反馈队列算法
多级反馈队列算法是时间片轮转算法和优先级算法的综合和发展。
多级反馈队列调度算法不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要。
目前被公认较好的一种进程调度算法。