死锁相关知识

一,什么是死锁?
死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,
此时若无外力作用,它们都将无法再向前推进。
例如:线程A,先锁a再获得锁b的顺序获得锁,
           线程B,先锁b再获得锁a的顺序获得锁。
===============================================
二,产生死锁的原因?
1.竞争资源。
2.进程间推进顺序非法。
系统中的资源可以分为两类:可剥夺资源,不可剥夺资源。
可剥夺资源:CPU和内存。
不可剥夺资源:磁带机、打印机。
===============================================
三,死锁产生的4个必要条件?
1.互斥条件:
进程要求对所分配的资源进行排它性控制,即在一段时间内,
某资源仅为一进程所占用。
2.请求和保持条件:
当进程因请求资源而阻塞时,对已获得的资源保持不放。
3.不剥夺条件:
进程的资源在未使用完之前不能剥夺,只能在使用完时自己释放。
4.环路等待条件:
在发生死锁时,必然存在一个进程--资源的环形链。
===============================================
四,解决死锁的基本方法。
预防死锁:
1、以确定的顺序获得锁。
2、超时放弃。
避免死锁:银行家算法。
检测死锁:
1.首先为每个进程和每个资源指定一个唯一的号码;
2.然后建立资源分配表和进程等待表。
解除死锁:
1.剥夺资源。
2.撤消进程。
===============================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值