上交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的公平共享调度策略

线性执行不太行


对于超级计算机,需要高吞吐,对于移动端关注低功耗
由于多目标性,所以调度器需要不停的优化
CFS与RT,每种对应多个调度策略



时间片短,切换时间过多,时间片长,退化为fcfs
一般数字越低优先级越高
也就是对于I/O密集型任务,赋予高优先级

因为🔒的问题产生的优先级反转问题
C可以继承A的优先级,那么C就可以更快的释放锁
多级队列中队列的策略可以选择RR或者FIFO

比如抽取到51,就是选取到了B1


一个进程每次执行完,增加一次stride
linux CFS采用类似Stride Schduling的公平共享调度策略
浙公网安备 33010602011771号