A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李大伟 高级黑马   /  2013-5-7 18:52  /  1106 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李大伟 于 2013-5-8 19:09 编辑

产生死锁的原因? 求详解

2 个回复

倒序浏览
产生死锁的原因主要是:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。
如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则
就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之
一不满足,就不会发生死锁。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
举个经典的哲学家就餐的例子来说楼上的解释 5个哲学家在围坐一张圆桌,做两件事,吃意大利面和思考,并且两件事不能同时做。想假设每两个哲学家之间有一把叉子,由于吃意大利面用一把叉子很难办到,所以需要同时拿起左右两边的叉子才能吃意大利面,作为哲学家他们互不交流,不会把叉子给其他人,也不会从其他人那里抢叉子,也就是说他会等他旁边的人吃完他,他才会拿到第二把叉子。现在如果每个哲学家手里只有一把叉子,他们就只能互相等待,思索也就产生了。
互斥条件:一个叉子只能被哲学家使用
请求与保持:哲学家拿着一只叉子的时候会等待另一只叉子。
不剥夺条件:哲学家很有礼貌,不会抢其他人的叉子。
循环等待:每个哲学家手里拿着叉子会等待另一把叉子。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马