调度
overview
1.FCFS 可以利用好cache缓存,减少上下文切换。
2.很直观,贪心,可以减少平均的响应时间
3
4.
5.等待调度的时间是平均的
6.优先级翻转,和优先级捐赠
解决
cfs中的调度
死锁
四个必要不充分条件
银行家算法:
后面可以不会死锁,也就是说都是处于一种safe状态。max_node要求最多的线程 <= 可用 + 已分配的(完成后可用增加的)。处于一种安全状态。
https://www.cnblogs.com/wkfvawl/p/11929508.html
一句话+一张图说清楚——银行家算法_土豆洋芋山药蛋的博客-CSDN博客
流程
(c)变化后的各种变量能否满足上面安全的状态
才能真的分配
为什么要是序列,也就是都完成呢?不能一个完成呢?
因为想象一下这个情况
总资源为10
t1 max为5 t2 max为8 t3 为1
如果线程t1 requst 3, t2 request 6, 存在t3可以完成,但是死锁了。
就餐问题就是个例子