死锁的预防与避免

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

死锁的预防与避免

一.死锁

操作系统中的死锁被定义为系统中两个或者多个进程无限期地等待永远不会发生的条件,系统处于停滞状态,这就是死锁。产生死锁的原因主要是:1.系统资源不足,

2.进程运行推进的顺序不合适,

3.资源分配不当

如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。

产生死锁的四个必要条件:1)互斥条件:一个资源每次只能被一个进程使用。

(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。

(4)环路等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。

二.预防死锁:

该方法是通过设置某些限制条件,去破坏产生死锁的四个必要条

件的一个或多个条件,来预防发生死锁。易实现,被广泛使用,但由于所施加的限制条件往往太严格,因而可能导致系统资源利用率和吞吐量降低。

三.避免死锁

避免死锁是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免死锁,而不需事先采取各种限制措施去破坏产生死锁的四个必要条件。这种方法施加的限制条件较弱,但在实现上有一定的难度。

四.区别

死锁避免和死锁预防的区别在于,死锁预防是设法至少破坏产生死锁的四个必要条件之一,严格的防止死锁的出现,而死锁避免则不那么严格的限制产生死锁的必要条件的存在,因为即使死锁的必要条件存在,也不一定发生死锁.死锁避免是在系统运行过程中注意避免死锁的最终发生.

相关文档
最新文档