计算机操作系统 刘循 朱敏 文艺 第5章死锁

计算机操作系统 刘循 朱敏 文艺 第5章死锁

ID:43807410

大小:2.42 MB

页数:84页

时间:2019-10-14

计算机操作系统 刘循 朱敏 文艺 第5章死锁_第1页
计算机操作系统 刘循 朱敏 文艺 第5章死锁_第2页
计算机操作系统 刘循 朱敏 文艺 第5章死锁_第3页
计算机操作系统 刘循 朱敏 文艺 第5章死锁_第4页
计算机操作系统 刘循 朱敏 文艺 第5章死锁_第5页
资源描述:

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

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

2、成的一种僵局。如果没有外力的作用,这些进程将永远不能再向前推进。互斥共享资源是临界资源,在一段时间内只允许一个进程使用,只有当一个进程使用完并释放后,其他的进程才能使用。每一个进程使用临界资源都需要经历三个阶段:申请、使用、归还。5.1.1死锁产生的原因死锁产生的原因有两个:并发进程对临界资源的竞争和并发进程推进顺序不当。1.在进程并发环境下进程之间对资源的竞争生产者与消费者问题当缓冲区为空时,如果消费者进程进入了缓冲区;或者当缓冲区为满时,如果生产者进程进入了缓冲区,这两种情况都会发生死锁。哲学家进餐问题如果5个哲学家都同时去拿叉子,则每

3、个哲学家都只能拿到一把叉子,每个哲学家又都会等待另一把无法得到的叉子,这样的资源竞争引起了死锁。5.1.1死锁产生的原因(续)2.进程推进顺序不当如果系统中有三个进程P1、P2和P3,相互之间需要传递消息S1、S2、S3,即:进程P1发送消息S1给进程P2,进程P2发送消息S2给进程P3,进程P3发送消息S3给进程P1,如果每个进程都要发送消息和接收消息成功后才能向前推进,则可能有如下情况:P1:send(S1),receive(S3);P2:send(S2),receive(S1);P3:send(S3),receive(S2);则P1、

4、P2、P3能够顺利发送并得到所需信息,都能够向前推进。但是,如果P1:receive(S3),send(S1);P2:receive(S1),send(S2);P3:receive(S2),send(S3);则P1、P2、P3都需要先接收消息后才能发送消息。显然,在这种情况下,它们永远都不能接收到所需要的信息,不能向前推进,发生了死锁。进程对资源的竞争和进程推进顺序不当可能会发生死锁。5.1.1死锁产生的原因(续)5.1.2死锁产生的条件1971年,Coffman等人通过研究死锁,总结出死锁发生的四个必要条件。(1)互斥条件资源的使用是互斥

5、的。每个资源要么已经分配给进程,要么能够提供给进程。如果资源已经被一个进程占有,则再请求资源的进程只能等待,直到占有资源的进程用完后归还资源。(2)占有并请求条件一个进程得到资源并再请求资源时,请求的资源不能得到,已得到的资源也不会释放。(3)不剥夺条件当进程得到资源后,只能由进程自身主动释放。进程不能剥夺其他进程已经获得的资源。5.1.2死锁产生的条件(4)环路等待条件每个进程都在等待下一个进程已经获得的资源,所有等待的进程构成一个环路,形成永远等待。这四个条件是死锁发生的必要条件,必须同时具备这四个条件才会发生死锁。其中任意一条不满足,

6、都不会发生死锁。但这四个条件并不是死锁发生的充分条件,可能四个条件都成立,但系统中并无死锁。5.1.3处理死锁的基本方法处理死锁的基本方法可以归结为如下四种:1.预防死锁通过破坏死锁的四个必要条件中的一个或几个来防止死锁的发生,是一种在实际中比较现实的方法,已经被广泛采用。最常采用的破坏死锁的方法为消除“占有并请求条件”或“环路等待条件”。但是,这样破坏死锁会引起系统的资源利用率低。2.避免死锁指在资源的动态分配过程中,通过合理的调节各并发进程的资源分配和推进顺序,防止系统进入不安全状态,从而避免死锁的发生。目前,在较多系统中采用此方法来避

7、免死锁的发生。该方法存在的问题是需要预先安排进程的推进顺序。5.1.3处理死锁的基本方法(续)3.检测死锁不采取任何限制性措施,允许系统发生死锁。死锁发生后,通过系统设置的检测机构,及时地检测出死锁的发生,精确地确定与死锁相关的进程和资源情况。4.解除死锁解除死锁是检测死锁的目的。在已经检测到死锁的基础上,针对死锁,采取适当措施,从系统中将已经发生的死锁消除。解除死锁会影响并发进程的执行。5.1.4资源分配图为了精确地描述死锁,Holt在1974年用有向图表示资源分配情况,这种有向图被称为资源分配图。资源分配图用于描述进程已经分配的资源和正

8、在请求的资源。通过对资源分配图中各进程资源分配情况的分析,可以判别是否具备死锁发生的条件。资源分配图由一系列顶点和边组成。顶点由所有活动进程集合和所有资源类型集合构成。进程顶点用

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

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

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