操作系统第五章:死锁

1 思索地概念和产生原因

1.1 死锁的基本概念

1.所谓死锁,是指一组并发执行的进程彼此等待对方释放资源,而在没有得到对方占有的资源之前不释放自己占有的资源,导致彼此都不能向前推进,称该组进程发生了死锁。
2.死锁产生后,在无外力干预下,陷入死锁的各个进程都永远不能向前推进,导致这些进程不能正常结束。同时,要求共享使用死锁进程所占资源的其他进程、或者需要与死锁进行某种合作的其他进程也会受到牵连,不能正常结束。最终可能导致系统瘫痪,给系统和用户带来极大损失。因此,操作系统设计者必须对死锁现象给予充分重视。
在这里插入图片描述
通过上面介绍的例子可以发现,死锁具有以下特点:
① 陷入死锁的进程是系统并发进程中的一部分,且至少要有2个进程,单个进程不能形成死锁。
② 陷入死锁的进程彼此都在等待对方释放资源,形成一个循环等待链。
③ 死锁形成后,在没有外力干预下,陷入死锁的进程不能自己解除死锁,死锁进程无法正常结束。
④ 如不及时解除死锁,死锁进程占有的资源不能被其他进程所使用,导致系统中更多进程阻塞,造成资源利用率下降

1.2 产生死锁的原因

  1. 资源竞争
    死锁产生的根本原因是资源竞争其分配不当。因为多道程序并发执行,造成多个进程在执行中所需的资源数远远大于系统能提供的资源数
    计算机系统中有很多种资源,按照占用方式来分,可分为可剥夺资源与不可剥夺资源。
    (1)可剥夺资源
    某进程在获得这类资源后,即使该进程没有使用完,该类资源也可以被其他进程剥夺使用。例如:CPU、内存、磁盘等
    (2)不可剥夺资源
    当系统把这类资源分配给某进程后,不能强行收回,只能在进程使用完后自行释放,然后其他进程才能使用。这类资源众多,例如:打印机、刻录机、CD-ROM驱动器等

  2. 推进顺序不当
    并发执行的诸进程在运行中存在异步性,彼此间相对执行速度不定,存在着多种推进顺序。并发进程间推进顺序不当时会引起死锁。
    不可剥夺资源少未必一定产生死锁。死锁在一种很巧合的推进顺序中才会发生。在不能增加不可剥夺资源数量的前提下,我们要采取各种措施,尽量避免产生死锁的不合理推进顺序出现.
    在这里插入图片描述
    在这里插入图片描述

由以上分析我们得出以下两个结论:
(1)用户编写应用程序时或操作系统进行资源分配时应采取相应措施,避免导致死锁发生的进程间的推进顺序出现。
为避免死锁现象的产生,用户在编写应用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值