dispatcher: gives control of the CPU to the process selected by the short-term scheduler;
dispatch latency
scheduling criteria
-
CPU utilization,
-
throughput:
单位时间完成进程数量
-
turnaround time:
submission to completion
-
waiting time:
sum of time spent in the ready queue就绪队列
-
response time:
submission to first response(time it takes to start responding, not the time it takes to output the response)
scheduling algorithm
-
FCFS first-come, first-served
non-preemptive
等待时间较长
convoy effect(短进程跟在长进程后面)
-
SJF shortest-job-first
shortest next CPU burst
常用于长期调度,短期调度可预测next CPU burst
-
exponential average
preemptive/non-preemptive
preemptive SJF : shortest-remaining-time-first scheduling
-
-
priority scheduling algorithm
SJF is a special case of it
priority can be defined internally or externally
preemptive/non-preemptive(非抢占优先级调度只是将优先级高的新进程加到ready queue的头部)
主要问题是indefinite blocking/starvation
低优先级无穷等待问题解决方法: aging(逐渐增加等待很久进程的优先级)
-
RR round-robin
especially for time-sharing system
时间片(time quantum/time slice)
所需时间小,自动释放CPU,所需时间大,时间片到timer会产生中断
平均等待时间较长
preemptive
时间片很大:FCFS;时间片很小:processor sharing(仿佛都有自己的处理器,速度为1/n)
时间片应比context-switch time大,也不应太大
-
multilevel queue scheduling algorithm
foreground(interactive); background(batch) 前台进程更高优先级。前台可能RR,后台可能FCFS
ready queue划分成多个队列,一个进程被永久分配到一个队列,每个队列有自己的调度算法
队列间常采用fixed-priority preemptive scheduling, 或在队列间划分时间片,每个队列有一定CPU时间
-
multilevel feedback queue schedling algorithm
允许进程在队列之间移动
使用过多CPU时间,移到低优先级队列。所以IO bound & interactive processes(使用CPU时间少)会被留在高优先级队列
较低优先级队列等待时间过长的进程也会被转移到更高优先级队列,prevent starvation
看例子P172最通用的CPU调度算法
-
HRRN highest response-ratio next 高响应比优先
non-preemptive
PPT P51
multi-processor scheduling
非对称多处理(asymmetric multiprocessing),一个处理器处理调度,IO,其他系统活动;其余处理器处理用户代码
SMP symmetric multiprocessing 对称多处理:每个处理器自我调度,许多OS支持SMP
processor affinity: 使缓存无效或重构的代价太高,所以尽量使一个进程在同一个处理器上允许。不能保证进程不移动:soft affinity,否则hard affinity
load balancing: 将工作负载平均地分配到SMP所有处理器上。load balancing只对拥有自己私有可执行进程的处理器必要(大部分时候都有私有)
push migration: a specific task周期检查每个处理器上的负载,如果不平衡,push processes from overloaded to idle processor
pull migration: an idle processor pulls a waiting task from a busy processor
multicore processors: PPT P61
SMT: symmetric multithreading 提供多个逻辑处理器实现多线程并发 hyperthreading. 每个逻辑处理器负责自己的中断处理。
thread scheduling
对在内核级支持线程的系统而言,系统调度的是内核线程而不是进程。用户线程由线程库管理。
PCS: process-contention-scope 线程库调度用户级线程到一个有效的LWP上(CPU竞争发生在属于相同进程的线程之间) ,local scheduling
SCS: system-contention-scope 调度哪个内核线程到CPU(CPU竞争发生在系统的所有线程中)。一对一模型只用使用SCS ,global scheduling
实例 书P178
algorithm evaluation
analytic evaluation: 产生一个公式或数字
deterministic evaluation: 计算在给定负荷下算法的性能
queueing-network-analysis:
simulation模拟 trace tape
最后修改于 2020-02-28