防止死锁的方法就是从某一环节上打破其死循环,这就要使其三个条件至少有一个不能满足。可分别采取以下的措施。
(1)进程被挂起后释放其占有的资源,即强制使挂起的进程放弃其占用的资源,等待下一次重新申请。
(2)进程必须一次提出对全部所需资源的申请,在需求未能满足之前,进程不能运行,也不占有任何资源;而一旦满足其要求后,就在整个运行期间保持其占有状态。
(3)在进程要求多种资源的情况下,规定使用资源的优先权,各进程必须按优先权顺序提出资源申请,以避免各进程竞用资源而出现的死循环。
(4)分布式操作系统对资源实施动态管理,即在资源统计表中列出系统可用的各种资源数、各进程所需的最大资源数、当前实际分配的资源数等信息,再根据进程对资源提出的新申请进行核算,在不出现死锁的前提下才能响应其申请。