第5章 CPU调度
- 介绍CPU调度
- 各种CPU调度的算法
- 选择何种CPU算法的评估
CPU调度的介绍
- 当CPU空闲的时候,需要从就绪队列中选择一个进程来执行,此时有短期调度程序(CPU调度程序)来执行
- 抢占式与非抢占式调度
- 分派程序
调度准则
- CPU使用率(CPU utilization):应保持40%(轻负荷系统)~90%(高负荷系统)
- 吞吐量(Throughput):一个时间单元内所完成进程的数量
- 周转时间(Turnaround time):进程提交到进程完成的时间段
- 等待时间(Waiting time):就绪队列中等到所花费的时间
- 响应时间(Response time):提交请求到产生第一响应的时间
一般来说,CPU使用率和吞吐量最大化,而周转时间、等待时间和响应时间最小化。
调度算法
先到先服务调度(FCFS)
- 先请求CPU分配的进程,将会先分配到CPU
- 非抢占式的
- 绝对公平,但是平均等待时间过长,调度效率较低
最短作业优先调度算法(SJF)
- 当CPU空闲时,赋给具有最短CPU区间的进程
- 抢占or非抢占
- 优点:减少平均等待时间
- 缺点:无法预测下一个CPU区间的长度,从而无法有效利用该调度算法
优先级调度算法(priority scheduling algorithm)
- 按照优先级的顺序一次调度
- 抢占or非抢占
- 无穷阻塞或饥饿:优先级低造成始终无法被调用
- 解决方法:老化,逐渐增加等待时间过长的进程的优先级
轮转法调度(RR)
- 首先要先定义一个时间片,然后按照FCFS的顺序,依次给每个进程分配一个不大于时间片的时间
- 平均等待时间会较长