【操统5】第六章/第七章

6.18

readcount同步

保护?

 

哲学家吃饭问题

https://wenku.baidu.com/view/90e0bb7f1711cc7931b716f9.html

管程

 


 

死锁

Bridge Crossing Example

互为条件的进程发生的死锁/饿死现象

四个必要条件:

  • 占有和等待

死锁是两个/两个以上的进程之间的关系(注意可以两个以上)

必要条件都发生不一定导致死锁。

 

资源分配图是有向图,阐述了系统资源和进程状态情况,每个资源和进程使用情况。

 

什么时候会出现死锁:

  • 图中没有环,则没有发生死锁。
  • 一个实例,有环就死锁
  • 多个实例,有环不一定死锁

 

对待死锁的态度:

  1. 不允许出现死锁
  2. 允许进入死锁但可以恢复
  3. 忽略系统进入死锁的情况

(据说现在的操作系统都是ignore的,如果出现死锁就reset系统)

 

怎么防止死锁:

  1. 能共享则共享(但打印机,扫描机这种就不能共享)
  2. 全部占有或全部等待【非常低的资源利用率,有可能饿死】
    1. P1 1,2,3,4,5(要么全部拿走,要么全都不拿走,如果它没法全拿走,那就只能留着等待)
    2. P2
    3. P5
  3. 抢占(系统成本非常高/不稳定)
  4. 循环等待(低资源利用率)

 

注:内容渐渐复杂,要多看PPT和课本

 6/23

 

安全状态

 

 

确保每一次的系统切换不会进入非安全状态

如果会有环则不会分配

 

S1处于安全状态,可以找到这样的序列(定义)

所以不存在找不到的情况

 

7.5.3 银行家算法

 

成本最低

 

posted on 2020-06-18 11:43  中大网安维修师傅  阅读(181)  评论(0编辑  收藏  举报