问题 问答题

简述死锁的检测和解除。

答案

参考答案:

解析:死锁的检测方法对资源的分配不加限制,只要有剩余的资源,就可把资源分配给申请者。操作系统要做的工作是定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。 1)每个资源类中只有一个资源的死锁检测。记录进程使用资源的情况采用占用表和等待表,前者记录哪些进程占用了什么资源,后者记录处于等待资源状态的进程正在等待什么资源。 死锁检测程序反复检测这两张表,列出所有等待占用关系,若其中有一组进程循环等待资源,则系统出现了死锁。 2)资源类中含有若干资源的死锁检测。根据进程对各类资源的占有量、尚需量和系统中各类资源的剩余量,检测是否有死锁存在。检测可分3步: ①打出资源已满足的进程,置上标志,并把它们已占的资源与剩余量相加作为“可分配资源”。 ②若无标志进程中找出尚需资源量不超过可分配资源量的里程,置上标志,重复此步骤直到所有进程均有标志,或无标志的进程尚需资源均超过可分配的资源量。 ③若存在无标志进程,表示当前系统已有死锁形成,反之则不会产生死锁。 3)死锁的解除。死锁的解除就是当死锁检测程序检测到有死锁存在时,设法让系统从死锁状态中恢复过来。解除死锁一般采用两种方法:一种是终止进程,另一种是抢夺资源。 · 终止进程:终止一个或几个进程的执行以破坏循环等待.死锁解除后重启动进程时最简单的办法是从头开始执行,有的系统可让进程退回到死锁发生前的校验点开始执行。 · 抢夺资源:从涉及死锁的一个或多个进程中抢夺资源。

选择题
单项选择题