操作系统学习-13.死锁的原因与必要条件

本文探讨了操作系统中死锁的概念,指出死锁是由于资源竞争和进程推进顺序不当引起的。文章列举了竞争非剥夺性资源和临时性资源可能导致的死锁示例,并详细阐述了产生死锁的四个必要条件:互斥、请求和保持、不剥夺、环路等待。最后,介绍了处理死锁的四种方法:预防、避免、检测和解除。
摘要由CSDN通过智能技术生成

写在前面:

在多道程序系统中,虽可借助于多个进程的并发执行来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险——死锁。死锁(Deadlock),是指多个进程在运行过程中因争夺资源而造成的一种僵局(DeadlyEmbrace)。在前面介绍把信号量作为同步工具时已提及到,若多个 wait 和 signal 操作顺序不当,会产生进程死锁,关于信号量的知识可参考: 操作系统学习-6. 信号量

死锁的原因:

产生死锁的原因有如下两点:

  1. 竞争资源。当系统中供多个进程共享的资源如打印机、公用队列等,其数目不足以满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。
  2. 进程间推进顺序非法。进程在运行过程中,请求和释放资源的顺序不当,也同样会导致产生进程死锁。

竞争资源引起进程死锁

(1)可剥夺和非剥夺性资源
可把系统中的资源分成两类:
一类是可剥夺性资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺。
一类是不可剥夺性资源,当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,如磁带机、打印机等。

可剥夺性资源如,优先权高的进程可以剥夺优先权低的进程的处理机。内存区可由存储器管理程序把一个进程从一个存储区移到另一个存储区,此即剥夺了该进程原来占有的存储区。注意:CPU和主存均属于可剥夺性资源。

(2)竞争

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值