死锁的原因及处理方式

1379
0

苦求无bug 初学数据Lv2

发表于2018-9-29 09:50

楼主
死锁的原因?
死锁是指在俩个或多个并发的进程中,如果每个进程持有某种资源而又等待别的进程释放它们现保持着的资源,否则就不能向前推进。此时,每个进程都占用了一定的资源但是又不能向前推进,则称这一组进程产生了死锁。
简单的说:就是俩个或多个进程无止境的等候,永远不会成立的条件的一种系统状态。、
产生死锁的根本原因是系统能够提供的资源个数要求比该资源的进程数少,具体原因:系统资源不足,进程推进顺序非法。



死锁的四个必要条件:
  • 互斥条件:一个资源每次只能被一个进程使用。
  • 请求和保持条件:一个进程因请求而阻塞时,对以获得的资源保持不放
  • 不可剥夺条件:进程以获得的资源,在没有使用完之前,不能强行剥夺。
  • 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源的关系

死锁的处理方式?
  • 检测死锁并恢复。
  • 仔细对资源进行动态分配,以避免死锁。
  • 通过破坏死锁产生的四个必要条件之一,来防止死锁的产生。
  • 鸵鸟算法忽略该问题。

列举几种进程的同步机制?
同步机制有:原子操作,信号量机制,自旋锁,管程,会合,分布式系统。


临界资源和临界区一次只允许一个进程使用的共享资源称为临界资源,如打印机、公共变量等;而在并发进程中与共享变量有关的程序段称为临界区。对临界区的访问必须是互斥进行。进程进入临界区要满足一定的条件,以保证临界资源的安全使用,系统的正常运行,即对临界区的管理就遵循以下三个原则:
 (1)当有若干进程要求进入它们的临界区时,应在有限时间内使一进程进入临界区。换句话说,它们不应该相互等待而致使谁都不能进入。
 (2)每次最多有一个进程处于临界区内。
 (3)进程在临界区内逗留应在有限时间范围内。


本文来自CSDN  作者: zhaoxaun666  

最近看过此主题的会员

mn77bv77

cuihr

zengxq

abi_hl

挨踢妹

韦韬然

gorgerous

0个回答

只看楼主

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号