慢慢学的个人空间 https://bbs.21ic.com/?1350744 [收藏] [复制] [RSS]

日志

死锁

已有 534 次阅读2015-3-24 11:50 |个人分类:u_cosII|系统分类:单片机| 锁死

死锁

死锁也称作抱死,指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1,任务T2在独享资源T2,而此时T1又要独享R2,T2也要独享R1,于是哪个任务都没法继续执行了,发生了死锁。最简单的防止发生死锁的方法是让每个任务都:


 


l          先得到全部需要的资源再做下一步的工作


l          用同样的顺序去申请多个资源


l          释放资源时使用相反的顺序


 


内核大多允许用户在申请信号量时定义等待超时,以此化解死锁。当等待时间超过了某一确定值,信号量还是无效状态,就会返回某种形式的出现超时错误的代码,这个出错代码告知该任务,不是得到了资源使用权,而是系统错误。死锁一般发生在大型多任务系统中,在嵌入式系统中不易出现。



路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)