理解处理机调度
一. 进程上下文切换
进程切换 -> 处理机调度(挑选就绪队列中的一个PCB) -> 调度程序 -包含->
1) 调度时机(什么时候挑?) -> 可抢占(时钟中断和优先级) 和 非抢占(退出和转等待)
2) 调度策略(如何挑?) -> 调度准则 调度算法
二. 调度准则
1. CPU使用率
2. 吞吐量 传输文件 -> 高带宽
3. 周转时间
4. 等待时间
5. 响应时间 游戏 -> 低延迟
三. 调度算法
1. FCFS算法
依据进程在就绪队列中的排队次序, 先来先提供服务.
举例: 三个进程的计算时间 p1=12, p2=3, p3=3
1) 任务到达顺序: p1 p2 p3
周转时间: (12 + 15 + 18) / 3 = 15
2) 任务到达顺序: p3 p2 p1
周转时间: (3 + 6 + 18) / 3 = 9
说明: 周转时间长, 进程等待时间就长.
2. SPN算法
短进程优先算法具有**最优平均周转时间**.
缺点: 可能导致饥饿.
3. HRRN算法
最高响应比优先算法
选择就绪队列中**响应比R值**最高的进程.
响应比R值 = (等待时间 + 执行时间) / 执行时间
规律: 等待时间越长, 优先级越高 -> SPN算法的改进
4. RR算法
时间片轮转算法
处理机分配的基本单位: 时间片
算法思想: 在FCFS算法基础上, 每个进程执行时间片n之后, 排回就绪队列尾部, 等待下次调度, 直到执行完毕...
5. MQ算法
多级队列调度算法
算法思想: 就绪队列被划分为多个独立的子队列, 每个队列有属于自己的调度算法. 需要考虑队列间的调度.
6. MLFQ算法
多级反馈队列算法
进程可在不同队列间移动.
7. FSS算法
公平共享调度算法
控制用户对系统资源的访问.
三. 实时调度和多处理机调度
任务