如何避免死锁

如何避免死锁:

1.预防死锁–针对死锁的必要条件进行预防

破坏占有且等待条件,一次性申请进程所需要的所有资源。改进:允许进程只获得运行初期的资源,在运行过程中逐步释放使用完毕的资源,申请需要的资源。

破坏不可抢占条件:当一个进程申请需要的资源没有被满足时,释放掉所占有的所有资源。

破坏循环等待条件:给每个资源编号,当一个进程占有某个资源时,只能申请比这个编号大的资源

2.避免死锁–在分配资源之前判断是否会出现死锁

若一个进程的请求会导致死锁,则不启动。

若一个进程的增加资源会导致死锁,则不启动。

实现:银行家算法

需要记录可利用的资源向量,每个进程最大需求资源,已分配的资源,仍需要的资源。

当一个进程申请资源时,假设从可利用资源中分配给它申请的资源,看剩余的资源是否能满足某个进程执行完毕,若不能,则是不安全的,拒绝分配,若能,则假设可执行完毕的进程所占用的资源返还到可利用资源中,将其标记为可完成进程,继续判断其它进程,资源分配顺序则为安全序列。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值