CPU调度
基本概念
操作系统按照一定的策略从就绪队列中选择一个进程,将CPU的使用全交给它;
调度的资源有CPU的使用权和时间片,调度对象是进程或线程;
进程调度就是CPU调度;
进程切换过程和开销:
非抢占式调度:进程任务完成或者阻塞而主动让出CPU;
抢占式调度:操作系统强制暂停正在运行的进程,时间片到了或者出现优先级更高的进程;
CPU约束性程序以计算为主,有较多的CPU区间,有长的CPU区间;IO约束型程序以IO为主,会有大量短的CPU区间
调度准则
算法
先到先服务FCFS
调度的顺寻是任务到达就绪队列的顺序 公平简单,非抢占,不适合交互式,响应时间较长
最短作业优先SJF
CPU区间长度最小的作业先调度 对于同时达到的作业,SJF可以保证平均等待时间最短;因此可以保证平均周转时间最短,因为周转时间=等待时间+作业所需时间;
SRJF最短剩余作业调度 是SJF的可抢占版本,每一时刻根据各任务的剩余时间调度;比SJF好,但是需要直到CPU区间;
优先级调度
每个任务关联一个优先权,调度优先级最高的作业
轮询法调度RR
按时间片来轮转调度 定时响应,响应时间短,上下文切换次数多; 时间片太大,响应时间长,时间片太小,上下文切换次数多,吞吐量变小,周转时间变长;
多级反馈队列MLFQ
前面算法需要进行o(n)的搜索,将任务按照优先级分为多个队列,每次从优先级最高的队列取。
彩票算法
优化
编译器常用优化
用加法代替乘法
王道题目
IO时间占比大的优先级高