https://api.vvhan.com/api/avatar/boy

技术博客分享

操作系统中死锁的定义产生原因必要条件死锁的处理策略死锁预防和避免死锁的检测和解除

操作系统中死锁的定义、产生原因、必要条件、死锁的处理策略(死锁预防和避免、死锁的检测和解除)

死锁定义

  • 死锁(deadlock) :如果一组进程中每个进程都在等待一个事件,而这个事件只有该集合中的另一个进程才能引起,那么该集合就是死锁的。(都占有资源,然后互相等待)
  • 或者两个或以上的进程因为争夺资源而造成互相等待的现象,并且若无外力作用,它们都将无法继续推进下去

死锁产生的原因

  1. 系统资源不足
  2. 进程运行时推进测顺序不合适
  3. 资源分配不当

死锁产生的四个必要条件

  • 互斥条件 :进程对分配到的资源进行排他使用,即在一段时间内某资源只能被一个进程占用,其他请求该资源的进程进行等待,直到该资源释放。
  • 请求和保持条件 :一个进程因为请求资源而阻塞等待时,对自己已经获得的资源保持不放。
  • 不可抢占(剥夺)条件 :进程已经获得的资源,在未使用完之前不能被强行剥夺。
  • 循环等待条件 :若干进程之间形成一种环形的等待资源关系。

死锁的处理策略

  1. 采用某个协议类预防或避免死锁,确保系统永远不会进入死锁状态。
  2. 允许系统进入死锁状态,但是会检测它,然后解除。
  3. 完全忽略这个问题,并假设系统永远不会出现死锁

第一种策略死锁预防和避免

死锁预防
破坏请求保持条件

OS要做到:当一个进程在请求资源时,不能持有不可抢占资源。通过以下两个协议来实现: