操作系统之死锁

前面所介绍的进程管理 内存管理 文件管理 IO管理都是操作系统的必要组成条件,而死锁确实操作系统的病症。死锁出现后 会导致程序无法运行,可以比喻为系统的病症导致程序的罢工。

死锁病症出现的条件:
  互斥,即每个资源只能供一个线程使用
  占有且等待,即已占有资源的线程不会释放资源
  不可抢占,即不可抢占已被其他线程占有资源

  循环等待,即存在一个封闭的资源环路,互不释放、互相追求

死锁的解决:
  引入第三方来整体上管控资源的分配
  给资源分级

原理:
  死锁的三种解决方式:预防、避免、检测并修复
    预防:
      即打破死锁形成的四个调价,只要四个条件不满足,就无法形成死锁。
    避免:
      操作系统知道整个资源的占有情况,当有新的资源请求发生的时候,操作系统会判断该请求是否会产生死锁,从而规避。
    检测:
      允许进程任意请求资源,操作系统会周期性检测 是否存在死锁病症,一旦存在 就强力消除死锁。必要时 会杀死进程。

 

https://www.jianshu.com/p/aca41133ba15

posted @ 2020-07-18 11:04  dami.white  阅读(76)  评论(0编辑  收藏  举报