计算机操作系统第5章死锁

计算机操作系统第5章死锁

ID:43519995

大小:491.50 KB

页数:34页

时间:2019-10-09

计算机操作系统第5章死锁_第1页
计算机操作系统第5章死锁_第2页
计算机操作系统第5章死锁_第3页
计算机操作系统第5章死锁_第4页
计算机操作系统第5章死锁_第5页
资源描述:

《计算机操作系统第5章死锁》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机操作系统第5章死锁从进程同步的概念可以知道,当并发进程需要竞争使用资源或需要相互协作向前推进时,如果不采取同步措施,或同步措施不恰当,则很容易导致并发进程不能向前推进而陷入僵局,即死锁现象。死锁是发生在一组相互竞争或协作的进程与线程之间的一个非正常现象。死锁是所有操作系统都面临着的潜在问题,操作系统除了需要预防死锁、避免死锁外,还需要能够检测死锁,并从死锁中进行恢复。本章的主要内容如下:死锁的产生;死锁的预防;死锁的避免;死锁的检测和解除;线程死锁。5.1死锁的产生5.1.1死锁产生的原因竞争资源引起死锁在多道程序系统,多个进程共享系统

2、的资源。系统资源分为二类,一类是不可抢占的资源,如打印机、磁带机等。当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自动释放。另一类是可抢占的资源,如CPU、内存等。由于系统拥有的不可抢占的资源有限,多个进程共享竞争不可抢占的资源就可能引起死锁。进程推进顺序不当引起死锁在多道程序系统中,并发执行的进程推进序列不可予测,有些推进顺序,进程可以顺利完成,这些推进顺序是合法的;而有的推进顺序会引起进程无限期地等待永远不会发生的条件而不能向前推进,造成了死锁。5.1.1死锁产生的原因(续)进程推进顺序不当引起死锁例:进程P和Q并发执行

3、,进程P和Q程序如下:ProcessPProcessQ....GetAGetB....GetBGetA....ReleaseAReleaseB....ReleaseBReleaseA....5.1.1死锁产生的原因(续)PAQB当P、Q按如下次序执行时:P:GETAQ:GETBP:GETBQ:GETAABCS2S1S3哲学家吃面的问题A:P(S1)P(S3)EatingV(S3)V(S1)B:P(S2)P(S1)EatingV(S1)V(S2)C:P(S3)P(S2)EatingV(S2)V(S3)A:P(S1),B:P(S2),C:P(S3

4、)A:P(S3):阻塞B:P(S1):阻塞C:P(S2):阻塞AS1CS3S2B5.1.2死锁产生的条件1.产生死锁的必要条件(ConditionsforDeadlock)互斥(Mutualexclusion)条件:一个资源一次只能被一个进程所使用,即是排它性使用。不可抢占(Nopreemption)条件:一个资源仅能被占有它的进程所释放,而不能被别的进程强占。请求和保持(Hold-and-wait)条件:进程已经保持了至少一个资源,但又提出了新的资源要求,而该资源又已被其它进程占有,此时请求进程阻塞,但又对已经获得的其它资源保持不放。环路等

5、待(Circularwait)条件:当每类资源只有一个时,在发生死锁时,必然存在一个进程-资源的环形链。如一系统状态的资源分配图所示,P1正在等待一个P2占用的资源R2,P2正在等待一个P1占用的资源R1。5.1.2死锁产生的条件(续)2.资源分配图由结点和边组成。结点有二类,一类是进程结点,用园圈表示;另一类是资源结点,用小方框表示一类资源,用方框中的小圈表示资源数。边也有二类,一类是分配边,它由资源结点指向进程结点,另一类是申请边,它由进程结点指向资源结点。返回○R1R2○P1P25.1.2死锁产生的条件(续)3.处理死锁的基本方法a.死

6、锁的预防静态方法:在进程执行前采取的措施,通过设置某些限制条件,去破坏产生死锁的四个必要条件之一,防止发生死锁。B.死锁的避免动态的方法:在进程执行过程中采取的措施,不需事先采取限制措施破坏产生死锁的必要条件,而是在进程申请资源时用某种方法去防止系统进入不安全状态,从而避免发生死锁。C.死锁的检测和解除这种方法预先并不采用任何限制措施,允许系统在运行过程中发生死锁,但可通过系统设置的检测机构及时检测死锁的发生,如检测到死锁,则采用撤消进程等死锁解除方法使系统正常工作。5.2死锁预防(DeadlockPrevention)预防死锁的方法是破坏四

7、个产生死锁的必要条件之一。1。破坏互斥条件互斥使用是资源本身特征所决定的。使用硬软件结合可改变资源本身特性,例如采用SPOOLing技术可将“独享”打印机改变为“共享”的打印机。2。破坏不可抢占条件抢占式调度法主要用于处理机和存贮器资源调度,它们的状态容易保存和恢复。但此法对外部设备和私存数据不宜使用。5.2死锁预防(DeadlockPrevention)-13。破坏请求和保持条件系统可采用资源静态予分配方式来破坏请求保持条件。系统要求所有进程一次性地申请在整个运行过程中全部资源,若系统有足够资源满足给进程,则在运行前,一次性将其所需要的所有

8、资源分配给该进程。这样该进程在整个运行期间,便不再提出资源要求,从而摒弃了请求条件。这种预防死锁的方法,优点是简单、易予实现且很安全,但其资源利用率很低,进程也延迟

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

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

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