7.2 产生死锁的四个必要条件、解决死锁的常用方式(有序资源法和银行家算法)

目录

 

1 死锁的定义

2 死锁产生的四个必要条件

3 操作系统解决死锁的常用方式

3.1 有序资源法

3.2 银行家算法


1 死锁的定义

两个或者两个以上线程在执行过程中,因为竞争资源或者彼此通信而造成的一种阻塞现象,如果没有外力作用,他们都将无法进行下去。此时称系统处于死锁状态或者系统产生了死锁

2 死锁产生的四个必要条件

互斥条件

两个条件a和吧,两个线程都要得到这两个资源才能运行,

线程1获得了a等待获取b,线程2获取了b等待获取a,两个线程相互竞争、等待,产生死锁

请求和保持条件

1、线程已经保持至少一个资源,并保持这个资源不释放:保持不释放

2、线程要获取新的资源请求、但是该资源已经被别的线程占用:请求已占用

不剥夺条件保持的资源只能线程执行完了才能释放
环路等待条件即线程1在等待线程2释放资源,线程2在等待线程1释放资源,产生环路

3 操作系统解决死锁的常用方式

3.1 有序资源法

有个两个资源R1和R2,给R1和R2编号为1、2,让线程获取资源的顺序为1,2,从而避免死锁

线程1获取资源:R1,R2

线程2获取资源:R1,R2

3.2 银行家算法

参考这篇博客:避免死锁: 银行家算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值