开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情
操作系统
续......死锁续
死锁的必要条件和处理方法
只有当以下四个条件同时成立时,才会出现死锁。
(1)互斥条件:在任何时刻,分配给进程的资源互斥使 用,即:一个资源最多只能被一个进程所使用;
(2)请求和保持条件:进程在占用若干个资源的同时 又请求新的资源;
(3)不可抢占条件:进程已经占用的资源,不会被强 制性拿走,而必须由该进程主动释放;
(4)环路等待条件:存在一个进程等待队列 [P1,P2.·,Pnl.其中P1等待P2占有的资源,P2等待P3占有的资源,.·,Pn等待P1占有的资源,形成一个进程等待环路。
处理死锁的基本方法
1.死锁预防:破坏死锁产生的四个必要条件之一。
1.破坏“请求和保持”条件
要求每个进程在运行前必须一次性申请它所要求的所有资源,且仅当该进程所要资源均可满足时才给一次性分配(协议1)
2.破坏“不可抢占”条件
在允许进程动态申请资源前提下规定,一个进程在申请新的资源不能立即得到满足而变为等待状态之前,必须释放已占有的全部资源,若需要再重新申请。
3.破坏“循环等待”条件
采用资源有序分配法: 把系统中所有资源编号,进程在申请资源时必须严格按资源编号的递增次序进行,否则操作系统不予分配。 (例:哲学家就餐问题)
优缺点: 限制了新类型设备的增加各类资源实际使用的顺序,与系统规定的顺序不同,可造成资源浪费限制用户简单、自主地编程.
2.避免死锁:通过精心设计的资源分配方案来避免;
3.死锁的检测和解除:允许死锁发生,通过不断的检测及时发现,然后采取措施解除死锁;
下期更新如何避免死锁未完待续......