1死锁产生的四个必要条件
①互斥条件:必须至少有一个资源以非共享的方式被进程持有;更确切的说,同时只有一个进程可以使用该资源。如果另一个进程请求这个资源,那么该进程必须等待这个资源被释放。
②持有并等待条件:进程必须持有至少一个资源且等待获取另外的当前被其它进程持有的资源。
③不可抢占条件:不可以抢占资源;也就是说,资源的释放只可以是由持有它的进程完成工作后自动释放。
④循环等待条件:对一组等待进程
{P0, P1, …,
Pn
}
来说,必须:
P0
等待
P1
持有的资源,
P1
等待
P2
持有的资源,
…
,
Pn-1
等待
Pn
持有的资源,而
Pn
等待
P0
持有的资源。、、
2死锁的处理方法
①主要有三种方法可以处理死锁:
②
死锁预防和死锁避免:采用某种协议预防或避免死锁,确保系统不会进入死锁状态。
③死锁恢复:允许系统进入死锁状态,然后检测并恢复。
④完全忽视死锁并假设系统中不会发生死锁。包括
UNIX
在内的大多数操作系统采用了这种方法。