摘要:死锁概念:由于可用资源不能满足进程实际需求,进程间的并发与竞争。进程因请求资源而长时间等待或循环等待,即死锁。
3.1.3【网络工程师知识点】死锁及预防
死锁概念:由于可用资源不能满足进程实际需求,进程间的并发与竞争。进程因请求资源而长时间等待或循环等待,即死锁。
死锁产生的必要条件:
资源互斥使用:一个资源每次只能被一个进程使用。
不可剥夺:系统不是抢占式的,进程已获得的资源在未使用完之前,不可剥夺,只能在使用完后自由释放。
保持且等待:有一个进程获得了一些资源,但因正在请求其他资源而被阻塞等待。
环路等待:若干个进程形成环形链,每个都占用对方要申请的下一个资源。
死锁解决方法:
死锁预防:只要导致死锁的任一必要条件不满足,便可以达到预防死锁目的。如:假脱机技术(使条件1不满足)、可抢占的进程调度策略(使条件2不满足)、静态分配资源和动态有序分配(使条件3、4不满足)等。
死锁避免:避免是指进程在每次申请资源时判断这些操作是否会导致死锁。典型的死锁避免算法是“银行家算法”。
死锁检测:前两者是事先措施,而死锁检测则是判断系统是否处于死锁状态,若是,则执行死锁解除策略。
死锁解除:与死锁检测结合使用,它的使用方式就是剥夺资源,即将资源强行分配给正在等待该资源并导致严重死锁的进程。
例:在下列解决死锁的方法中,不属于死锁预防策略的是 。
A. 资源的有序分配法B. 资源的静态分配法
C. 分配的资源可剥夺法 D. 银行家算法
试题分析:
从上面知识的点的描述可以得知,死锁的预防就是打破形成死锁的任一必要条件。该题是:A、B属于使其不满足第3,4条;C属于使其不满足第2条。而D银行家算法属于死锁避免的范围。
例:在为多个进程所提供的可共享的系统资源不足时,可能出现死锁。但是,不适当的 也可能产生死锁。
A. 进程优先权B. 资源的静态分配
C. 进程的推进顺序D. 分配队列优先权
试题分析:
产生死锁的基本原因是系统提供的资源数量有限而资源分配不当和进程推进顺序非法。
编辑推荐:
软考备考资料免费领取
去领取