一、死锁
(1) 死锁是指多个进程之间相互等待对方的资源,而在得到对方资源之前又不释放自己的资源,这样,造成循环等待的一种现象。如果所有进程都在等待一个不可能发生的事,则进程就死锁了。
(2)死锁产生的必要条件:
互斥条件
进程对资源进行排它性使用,即在一段时间内某资源仅为一个进程所占用。
请求和保持条件
当进程因请求资源而阻塞时,对已获得的资源保持不放。
不可剥夺条件
进程已获得的资源在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
环路等待条件
各个进程组成封闭的环形链,每个进程都等待下一个进程所占用的资源
(3)防止死锁的办法
资源一次性分配:(破坏请求和保持条件)
可剥夺资源:(破坏不可剥夺条件)
资源有序分配法:(破坏循环等待条件)
(4)死锁避免