定义
是由多个进程之间互相竞争互斥资源,造成的一种互相等待的僵局,如果没有外力的作用,进程都将无法继续向前推进
死锁的四个条件
-
互斥
一段时间内,某资源只能被一个进程使用,其他请求该资源的进程必须等待
-
请求与保持
进程已经至少保持了一个资源,此时需要被其他进程占用的资源,则会请求阻塞。但对已获得的资源保持不放
-
不可剥夺
获得的资源,在该进程未使用完成之前,不可由其他进程强行剥夺,只能主动释放。
-
循环等待
若干进程之间形成首尾相接互相等待资源的关系
破坏死锁
-
破坏不可剥夺
一个进程不能获取所需的全部资源时候,在等待的时候他所持有的资源将会被释放,加入到系统资源供其他进程使用
-
破坏循环等待
资源有序分配,将系统中的资源按顺序编号,将紧缺的资源和稀少的资源用较大的编号,进程获取资源时,按照资源的编号进行。进程只有获取较小编号的资源时,才能申请大编号的资源
-
请求与保持
-静态分配,进程在开始执行时,就获取所需的全部资源