操作系统

95 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

操作系统

续......

死锁续

死锁的必要条件和处理方法

只有当以下四个条件同时成立时,才会出现死锁。

(1)互斥条件:在任何时刻,分配给进程的资源互斥使 用,即:一个资源最多只能被一个进程所使用;

(2)请求和保持条件:进程在占用若干个资源的同时 又请求新的资源;

(3)不可抢占条件:进程已经占用的资源,不会被强 制性拿走,而必须由该进程主动释放;

(4)环路等待条件:存在一个进程等待队列 [P1,P2.·,Pnl.其中P1等待P2占有的资源,P2等待P3占有的资源,.·,Pn等待P1占有的资源,形成一个进程等待环路。

处理死锁的基本方法

1.死锁预防:破坏死锁产生的四个必要条件之一。

1.破坏“请求和保持”条件

要求每个进程在运行前必须一次性申请它所要求的所有资源,且仅当该进程所要资源均可满足时才给一次性分配(协议1)

2.破坏“不可抢占”条件

在允许进程动态申请资源前提下规定,一个进程在申请新的资源不能立即得到满足而变为等待状态之前,必须释放已占有的全部资源,若需要再重新申请。

3.破坏“循环等待”条件

采用资源有序分配法: 把系统中所有资源编号,进程在申请资源时必须严格按资源编号的递增次序进行,否则操作系统不予分配。 (例:哲学家就餐问题)

优缺点: 限制了新类型设备的增加各类资源实际使用的顺序,与系统规定的顺序不同,可造成资源浪费限制用户简单、自主地编程.

2.避免死锁:通过精心设计的资源分配方案来避免;

3.死锁的检测和解除:允许死锁发生,通过不断的检测及时发现,然后采取措施解除死锁;

下期更新如何避免死锁未完待续......