上交os lec6 操作系统调度
6.1 进程/线程调度
- 进程/线程调度线性执行不太行
- 调度就是协调请求对于资源的使用
- 调度在不同场景下的目标是不一致的对于超级计算机,需要高吞吐,对于移动端关注低功耗
- 调度难在其多目标性由于多目标性,所以调度器需要不停的优化
- 调度的挑战
- Linux调度策略CFS与RT,每种对应多个调度策略
- 而CFS的调度机制是CFS Run Queue
- RT的调度机制RT Run Queue
6.2 经典调度
- FCFS
- sjf
- 抢占式调度,rr时间片短,切换时间过多,时间片长,退化为fcfs
6.3 优先级调度
- 调度优先级
- 多层队列一般数字越低优先级越高
- 阅读秘籍就是I/O操作也就是对于I/O密集型任务,赋予高优先级
- 优先级反转因为??的问题产生的优先级反转问题C可以继承A的优先级,那么C就可以更快的释放锁
- 多级队列中队列的策略可以选择RR或者FIFO
6.4 公平共享调度
- 使用权重计算用户使用资源
- 彩票调度,也就是权重调度比如抽取到51,就是选取到了B1
- Ticket tansfer,比如客户端将自己的ticket传递给服务端,使得服务端可以尽可能快的完成服务
- 权重和优先级的异同
- Stride scheduling是一个确定性的lottery scheduling一个进程每次执行完,增加一次stride
- linux CFS采用类似Stride Schduling的公平共享调度策略