死锁

134 阅读1分钟

定义

是由多个进程之间互相竞争互斥资源,造成的一种互相等待的僵局,如果没有外力的作用,进程都将无法继续向前推进

死锁的四个条件

  1. 互斥

    一段时间内,某资源只能被一个进程使用,其他请求该资源的进程必须等待

  2. 请求与保持

    进程已经至少保持了一个资源,此时需要被其他进程占用的资源,则会请求阻塞。但对已获得的资源保持不放

  3. 不可剥夺

    获得的资源,在该进程未使用完成之前,不可由其他进程强行剥夺,只能主动释放。

  4. 循环等待

    若干进程之间形成首尾相接互相等待资源的关系

破坏死锁

  1. 破坏不可剥夺

    一个进程不能获取所需的全部资源时候,在等待的时候他所持有的资源将会被释放,加入到系统资源供其他进程使用

  2. 破坏循环等待

    资源有序分配,将系统中的资源按顺序编号,将紧缺的资源和稀少的资源用较大的编号,进程获取资源时,按照资源的编号进行。进程只有获取较小编号的资源时,才能申请大编号的资源

  3. 请求与保持

    -静态分配,进程在开始执行时,就获取所需的全部资源