阿龙的学习笔记---《操作系统 - 精髓与设计原理》笔记---第六章:并发性:死锁和饥饿

本文探讨了死锁的原理、预防、避免和检测,介绍了哲学家就餐问题的解决方案。此外,还详细讲解了Linux并发机制,如管道、信号、信号量、消息队列、共享内存和自旋锁。
摘要由CSDN通过智能技术生成

1. 死锁原理

  • 死锁是一组进程,在互相竞争资源或者互相通信时,发生的永久性阻塞。每个进程都占用某个资源,并且在等待另一个资源。
  • 死锁的条件
    • 互斥:一次只有一个进程能够占有一个资源。
    • 占有且等待:在等待资源时,继续占有资源。
    • 不可抢占:不能抢占其他进程以持有的资源。
    • 循环等待:存在闭合的进程链。每个进程至少占有下一个进程的所需资源。

2. 死锁预防

  • 破坏四个条件之一,则死锁无法出现。
    • 互斥:无法破坏。
    • 占有且等待:一次性申请所有资源。
    • 不可抢占:变为可抢占资源。
    • 循环等待:给资源排序,只能按照一个顺序申请资源,则不会形成环。

3. 死锁避免

  • 进程启动拒绝算法:若一个进程的请求会产生死锁,则不启动改进程。事先要知道每个进程需要的资源及个数,如果一个进程需要比剩下的资源更多的资源时,则拒绝启动。
  • 资源分配拒绝——银行家算法:若一个进程增加的资源请求会导致死锁,则不允许这个资源分配。他是预测死锁的可能性以确保不出现死锁。即资源分配之后,剩余的资源总数要能够使得某一个进程完全运行结束。这是安全状态。
  • 死锁避免比死锁预防限制较小&#x
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值