死锁
2015-08-28 21:20
267 查看
所谓死锁: 是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
死锁的条件
互斥条件(Mutual exclusion) :资源不能被共享,只能由一个进程使用。
请求与保持条件(Hold and wait):进程已获得了一些资源,但因请求其它资源被阻塞时,对已获得的资源保持不放。
不可抢占条件(No pre-emption) :有些系统资源是不可抢占的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用完时自己释放。
循环等待条件(Circular wait) :若干个进程形成环形链,每个都占用对方申请的下一个资源。
如何避免死锁
要避免死锁,必须事先知道系统拥有的资源数量及其属性
在分配资源之前先看清楚,资源分配后是否会导致系统死锁。如果会死锁,则不分配,否则就分配。
相关文章推荐
- java基础(数组 排序)
- 经营,归根结底,就是理解游戏规则,有哪些参与者、他们有什么优势、他们有什么弱势,你要如何将对手将死、压倒他们、让他们出局,你总是处在这样一个竞争性博弈之中,你需要不断的创新,不断跳跃式前进,尝试超越他
- 回文字符串
- 网站用户分析方法
- 网站用户行为分析在用户市场领域的应用
- 单链表逆序
- 第一个socket编程(python)
- UIActivityIndicatorView
- Linux kernel的中断子系统之:IRQ Domain介绍
- 前言
- 不使用Main.storyboard
- 代理转发器
- JavaScript基础-arguments
- hdu 3527 Task Schedule 最大流 Dinic
- 数据结构课程主页-2014级
- [转]在树莓派上搭建LAMP服务
- 常用的CSS Hack技术集锦
- Note on <Beginning Microsoft SQL Server 2012 Programming> - 03
- 自定义Dialog;Notification;PopupWindow;DatePickerDialog;TimePickerDialog
- 多线程总结