操作系统——CPU Scheduling
211复习资料
1. Basic Concepts
- multiprogramming最大化利用CPU,CPU-I/O Cycle(CPU burst-I/O burst)
- CPU burst曲线称指数形式,I/O约束程序有短CPU burst,CPU约束程序有长CPU burst
- CPU scheduler
- CPU进程选择由short term或CPU scheduler进行。
- preemtive: 抢占调度
- Dispatcher
- 切换上下文
- 切换到user model
- 调到用户程序的合适位置,以重新启动程序
- 要快!dispatch latency是dispatcher要花的时间
- Scheduling Criteria:
- CPU使用率:40%~90%
- Throughput吞吐量:一个时间单元完成的进程数量。
- Turnaround time周转时间:运行改进程要花多长时间。包括等待进入内存,waiting,CPU和I/O上的时间
- Waiting time等待时间:CPU调度算法之影响等待时间。即进程在就绪队列所花时间之和
- Response time响应时间:从提交请求到产生第一响应的时间。受设备影响。
Scheduling Algorithm: FCFS: first come, first served(FCFS) : non-preemptive
- 用FIFO队列实现。进程进入就绪队列,PCB连接队列的尾部。CPU分配给队列头的进程。
- 实现简单,平均等待时间长。
- eg.
进程 区间时间 P1 24 P2 3 P3 3 -
P1 (0-24) P2(3) P3(3) - P1等待0ms, P2等24ms,P3等27ms.
- 平均等待时间(24+27)/3 = 17ms
-
P2(0-3) P3 (3-6) P1(6-30) - 平均等待时间(6+3)/3 = 3ms
- convoy effect会导致CPU和设备使用效率降低
- SJF: shortest-job-first scheduling algorithm:
- 赋值给最短下一个CPU区间,长度相同时为FCFS
- eg.
进程 区间时间 P1 6 P2 8 P3 7 P4 3 -
P4 (0-3) P1 (3-9) P3 (9-16) P2 (17-24) - 平均等待时间:(3+16+9+0)/4 = 7ms
- 平均等待时间最小。Longterm调度。难以确定下一个CPU区间的长度。对于批处理系统的长期调度,将提交作业时制定的进程时间极限作为长度。
- 不能用于short term调度上实现,因为难以预测下一个CPU长度,但可以预测下一个CPU区间的进程。
- 有抢占/非抢占两种:抢占SJF调度称为shortest-remaining-time-first scheduling
-
进程 到达时间 区间时间 P1 0 8 P2 1 4 P3 2 9 P4 3 5 - P1先执行1个时间单位,然后P1剩下7个时间单位,P2 P4 P1 P3
- 平均等待时间:注意arrival time
- length of next CPU burst
- ζn+1 = αtn+(1-α)ζn α--加权
- example
- Priority Scheduling algorithm
- 最高优先级分配给CPU,相同优先级FCFS。
- 小数字表示高优先级
-
进程 区间时间 优先级 P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 - 8.2ms
- indefinite blocking无限阻塞/starvation饥饿:可运行但缺乏CPU,永远等待CPU
- 解决方法aging:每隔一段时间递减进程的优先级
- RR(round-robin)
- time sharing system.
- 一个单位的时间:time quantum or time slice,10-100ms。ready queue时环形队列
- 新进程在队列尾端,CPU从头开始取。设置timer在1个时间量后中断。
- 如果进程小于1个时间量,CPU提前释放/如果进程大于1个时间量,中断,执行context switch,将该进程移到队列尾部。
- 等待时间长。
-
进程 区间时间 P1 24 P2 3 P3 3
-
- time quantum is 4ms
- 如果队列中有n个进程,时间单元为q,则每个进程有1/n的CPU时间,长度小于q的时间单元
- 如果时间单位足够大,和FCFS相同,如果小,会有大量的context switch。因此time quantum应适当的大。
- 如果context switch时间是10%的time quantum,
- Thrnaround time由time quantum决定
- Multilevel Queue
- froeground(interactive)-RR /80%
- background(batch)-FCFS /20%
- 队列间通常采用固定优先级抢占调度。
- 系统进程/交互进程/交互编辑进程/批处理进程/学生进程
- 也可以在队列见划分time unit,每个队列有一定的CPU时间,可用于调度队列内的进程。
- 不够灵活,低调度开销,队列间不能交换
- Muiltilevel feedback queue
- 允许队列间移动
- 如果进程使用过多CPU时间,它会被转移到更低优先级队列。低优先级中等待时间长的进程会被转移到更高优先级队列
- 给CPU区间低的进程最高优先级。
- Real time CPU scheduling
- Software: 不知道critical real-time process什么时候执行。
- Hardware: deadline Latency: interrupt latency:
- dispatch latency: Conflict phase: preemption of any process running in kernel mode. 低优先度的资源释放资源
- Priority based scheduling
- 必须preemptive。软件上real time
- periodic ones require CPU at constant intervals.
- Rate Monotonic Scheduling
- shorter periods有高有夏季
- missed deadlines
- earliest deadline first scheduling(EDF)

浙公网安备 33010602011771号