Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1562388
  • 博文数量: 237
  • 博客积分: 5139
  • 博客等级: 大校
  • 技术积分: 2751
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 14:48
文章分类

全部博文(237)

文章存档

2016年(1)

2012年(4)

2011年(120)

2010年(36)

2009年(64)

2008年(12)

分类:

2011-03-26 11:11:27

死锁的概念:
两个或两个以上的进程在执行过程中,因争夺资源而造成的一种相互等待的现象, 若无外力作用,它们都将无法推进下去
 
产生死锁的重要原因:
(1) 系统资源不足
(2) 进程运行推进的顺序不合适
(3) 资源分配不当等
 
如果系统资源充足,进程的资源请求都能得到满足,死锁出现的可能性就很低,否则就会因为争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁,
 
死锁产生的必要条件有:
1.互斥条件(Mutual exclusion)
    存在临界资源, 必须互斥的使用资源
2.占有等待(Hold and wait)
    一个进程因请求资源而阻塞时,对已获得的资源保持不放
3.不可抢占(No preemption)
    进程已获得的资源,在未使用完之前,不能强行剥夺
4.循环等待
    两个及以上进程之间形成一种头尾相接的循环等待资源的关系
 
死锁排除的方法:
1. 撤消陷于死锁的全部进程:
2.逐个撤消陷于死锁的进程,直到死锁不存在
3.从陷于死锁的进程中逐个强迫放弃所占用的资源,直到死锁消失
4.从另外一些进程那里强行剥夺足够数量的资源分配给死锁的进程,以解除死锁状态
 
 
阅读(862) | 评论(0) | 转发(0) |
0

上一篇:google发布的编码规范

下一篇:Java死锁列子

给主人留下些什么吧!~~