孙钟秀操作系统第三章同步、通信与死锁2

孙钟秀操作系统第三章同步、通信与死锁2

ID:46042297

大小:371.50 KB

页数:33页

时间:2019-11-20

孙钟秀操作系统第三章同步、通信与死锁2_第1页
孙钟秀操作系统第三章同步、通信与死锁2_第2页
孙钟秀操作系统第三章同步、通信与死锁2_第3页
孙钟秀操作系统第三章同步、通信与死锁2_第4页
孙钟秀操作系统第三章同步、通信与死锁2_第5页
资源描述:

《孙钟秀操作系统第三章同步、通信与死锁2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.5死锁在多道程序系统中,多个进程并发执行可改善系统资源利用率,提高系统的吞吐量,但也有可能发生一种危险---死锁。一、死锁的概念例1:两个小孩在一起玩耍,一个在玩皮球,另一个玩自动步枪,如果这两个小孩都要对方手中的玩具,而又不肯先放掉自己拿着的玩具,这时就发生了僵持局面。1例2:系统有一台打印机和一台扫描仪,进程P1、P2并发执行,在执行过程中均需使用打印机和扫描仪。CobeginProcessP1()ProcessP2(){……{……Request(打印机)Request(扫描仪)…………Request(扫描仪)Request(打印机)…………}Coe

2、nd当P1、P2并发执行时,可能出现如下序列:P1占用打印机,P2占用扫描仪。在以后某时刻P1又要申请扫描仪,但由于扫描仪被P2占用,P1只有等待;P2又申请打印机,但由于打印机被P1占用,P2只有等待。如此两进程均不能执行而处于永远等待状态,这种现象称为死锁。21.死锁的定义在一组进程中,每个进程都等待被该组进程中其他进程所占有的资源,从而无限期陷入僵持的局面,这种现象称为死锁。如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃。2.产生死锁的原因竞争资源进程间推进顺序不当33.产生死锁的必要条件1971年Coffman总结了系统产生死锁的四个必要条件:互

3、斥条件:系统中存在临界资源,进程应互斥地使用这些资源。占有和等待条件:进程在请求资源得不到满足而等待时,不释放已占有的资源。不剥夺条件:进程已占有的资源只能由属主释放,不能强行剥夺。循环等待条件:存在循环等待链,链中的每一个进程都在等待下一进程所持有的资源。44.处理死锁的基本方法(1)死锁防止(deadlockprevention)通过设置某些限制条件,去破坏死锁四个必要条件中的一个或多个,来防止死锁。较易实现,广泛使用,但由于所施加的限制往往太严格,可能导致系统资源利用率和系统吞吐量的降低。5(2)死锁避免不事先采取限制措施去破坏产生死锁的条件,而是在资

4、源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免死锁的发生。只需事先施加较弱的限制条件,可获得较高的资源利用率和系统吞吐量,但在实现上有一定难度。在较完善的系统中常用此方法。6(3)检测死锁事先并不采取任何限制,允许死锁发生,但可通过检测机构及时检测出死锁的发生,并精确确定与死锁有关的进程和资源。(4)解除死锁与检测死锁相配套,当检测到发生死锁时,采用一定的方法解除死锁。实现难度大,但可获得较好的资源利用率和系统吞吐量。7二、死锁防止设法破坏产生死锁的四个必要条件之一。条件1(互斥条件)是由设备的固有特性所决定的,不仅不能改变,还应加以保证。

5、8破坏条件2(占有和等待条件)采用资源的静态分配策略。静态分配是指进程必须在执行前一次性地申请所需的全部资源,若系统有足够资源则完全分配。若分配时只要有一种资源不能满足,则不分配任何资源,而让进程等待。优点:简单、易于实现且安全。缺点:资源严重浪费,严重降低资源的利用率;使进程延迟运行。9破坏条件3(不剥夺条件)采用剥夺式调度方法。占有资源的进程,再提出新资源请求时,若有则分配,否则剥夺此进程已占有的所有的资源,并让进城进入等待状态,资源充足后再唤醒它重新申请所需资源。实现复杂、要付出很大的代价。10破坏条件4(循环等待条件)资源按序分配:把系统中的所有资源

6、编号,所有分配请求必须以序号上升的次序进行。例如:系统中有下列设备:输入机(1),打印机(2),穿孔机(3),磁带机(4),磁盘(5)。有一进程要先后使用输入机、磁盘、打印机,则它申请设备时要按输入机、打印机、磁盘的顺序申请。优点:同前两法相比,其资源利用率和系统吞吐量有较明显的改善。缺点:进程实际需要资源的顺序不一定与资源的编号一致,因此仍会造成资源浪费。11三、死锁避免各种死锁防止方法能够防止死锁发生,但由于所加限制条件太严格,会导致系统资源利用率和系统吞吐量的降低。另一种解决死锁问题的方法称为避免死锁。避免死锁基本思想:把系统状态分为安全状态和不安全状

7、态,只要系统一直处于安全状态即可避免死锁的发生。121.系统状态(1)安全状态如果系统能按某种进程顺序(如P1,P2,…,Pn)为每个进程分配其所需的资源,直至所有进程都能运行完成,此时称系统处于安全状态。进程序列称为安全序列。(2)不安全状态若不存在这样一个安全序列称系统处于不安全状态。系统进入不安全状态后,就有可能进而进入死锁状态,反之,只要系统处于安全状态,便可避免进入死锁状态。不安全状态安全状态死锁13例:有三个进程p1,p2,p3,有12台磁带机。P1共要求10台,P2共要求4台,P3共要求9台。T0时刻:p1,p2,p

8、3分别获得5、2、2台,尚有3台空闲。系统状态见下图

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。