什么是死锁?产生条件?如何避免死锁?要使一个系统不发生死锁,一般可采用哪些方法?
死锁的概念:在2个或多个并发进程中...
用户登录可进行刷题及查看答案
死锁的概念:在2个或多个并发进程中,如果每个进程持有某有资源而又都等待别的进程释放它或他们现在保持的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是2个或多个进程被无限期地阻塞、相互等待的一种状态。
死锁产生的原因:系统对于不可剥夺的资源不合理分配
死锁产生的条件:( 只要下述一个条件不成立,就不会发生死锁。) 1.互斥条件:一个资源每次只能被一个进程使用 2.不可剥夺条件:进程已获得资源,在未使用完之前,不能被其他进程强行剥夺,只能主动释放 3.请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。 4.循环等待条件:即进程集合{p0,p1,p2,p3……pn};p0正在等待p1占用的资源,p1正在等待p2占用的资源,pn正在等待p0占用的资源。
避免死锁的四种方法:
死锁预防:破坏死锁的四个必要条件中的一个或几个,来预防死锁的发生; 死锁避免:将系统分为安全和不安全状态,每当系统为进程分配资源时都要检测系统是否会进入不安全状态,若会,则停止分配,进入等待状态; 死锁检测:若不加任何限制措施,系统可在为进程分配资源的同时,记录下来进程的请求和分配信息,然后按某种算法计算系统是否会发生死锁; 死锁解除:系统发生死锁时通常采用撤销进程或剥夺进程资源的方法使系统解除死锁。
登录后提交答案
暂无评论,来抢沙发