作用
响应和吞吐量的妥协,这种相悖的思想往往在不同地方见着
OS
先来先服务
公平队列
短作业优先
最少完成时间作业优先
最短完成作业优先
抢占版最少完成时间作业优先,比如忽然进来一个任务,预计时间更短于目前任务所需时间,直接抢占CPU
高响应比
优先级算法,权重为1+等待时间/服务时间,可见服务时间越长,就需要等越久,才能有高优先度
轮询时间片
轮流分配相同大小时间片,先完成或时间到重新等待CPU
多级反馈队列
重中之重,现代OS主流算法
分为多条队列,每条内部使用轮询,越上面时间片越小但优先级越高,优先级提高了短作业响应,长时间片提高了长作业吞吐量
一开始都位于最上级,如果规定时间没有完成,会放到下面队列
如果为了IO提前释放时间片,那么会暂时保留优先级,但会保持计时,如果时间总和超过规定,也会下放,这是为了防止程序在时间片结束前恶意进行IO而一直处于最高优先级
过一段时间会全部重新放回最高优先级,这是因为任务不是固定密集类型的,有可能这段时间是CPU密集,而后来又是IO密集了,这样会导致任务得不到应有待遇,除此之外,这也可以缓解饥饿。
负载均衡
随机
随机选择
顺序
类似先来先服务
hash
哈希计算