CS162 11-12 调度与死锁

调度

overview

CS162 11-12 调度与死锁_第1张图片

1.FCFS 可以利用好cache缓存,减少上下文切换。

2.很直观,贪心,可以减少平均的响应时间

3CS162 11-12 调度与死锁_第2张图片

4.CS162 11-12 调度与死锁_第3张图片

CS162 11-12 调度与死锁_第4张图片

5.等待调度的时间是平均的

6.优先级翻转,和优先级捐赠

CS162 11-12 调度与死锁_第5张图片

 CS162 11-12 调度与死锁_第6张图片

解决

CS162 11-12 调度与死锁_第7张图片

cfs中的调度

CS162 11-12 调度与死锁_第8张图片

死锁

四个必要不充分条件

CS162 11-12 调度与死锁_第9张图片

CS162 11-12 调度与死锁_第10张图片

CS162 11-12 调度与死锁_第11张图片 CS162 11-12 调度与死锁_第12张图片

CS162 11-12 调度与死锁_第13张图片 CS162 11-12 调度与死锁_第14张图片

CS162 11-12 调度与死锁_第15张图片

CS162 11-12 调度与死锁_第16张图片

 银行家算法:

后面可以不会死锁,也就是说都是处于一种safe状态。max_node要求最多的线程 <= 可用 + 已分配的(完成后可用增加的)。处于一种安全状态。

https://www.cnblogs.com/wkfvawl/p/11929508.html
一句话+一张图说清楚——银行家算法_土豆洋芋山药蛋的博客-CSDN博客

CS162 11-12 调度与死锁_第17张图片 

流程

 

(c)变化后的各种变量能否满足上面安全的状态 

才能真的分配

为什么要是序列,也就是都完成呢?不能一个完成呢?

因为想象一下这个情况

总资源为10

t1 max为5 t2 max为8 t3 为1

如果线程t1 requst 3, t2 request 6, 存在t3可以完成,但是死锁了。

 

就餐问题就是个例子

CS162 11-12 调度与死锁_第18张图片

你可能感兴趣的:(cs162,系统架构)