目录
课时五 死锁(一)
1.死锁的概念
产生死锁必须同时满足以下四个条件,只要其中任一条件不成立,死锁就不会发生。
①互斥条件。只有对必须互斥使用的资源的争抢才会导致死锁(如哲学家的筷子、 打印机设备)。
②请求和保持条件。进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又被其他进程占有,此时请求进程被阻塞,但又对自己已有的资源保持不放。
③循环等待条件。存在一种进程资源的循环等待链,链中的每一个进程已获得的资源同时被下一个进程所请求。
注意:发生死锁时一定有循环等待,但是发生循环等待时未必死锁。
④不剥夺条件。进程所获得的资源在未使用完之前,不能由其他进程强行夺走,只能主动释放。
2.死锁的预防
题 1.系统产生死锁的可能原因是( )
A.
独占资源分配不当
B.系统资源不足
C.进程运行太快 D.CPU内核太多
答案:A
解析:系统死锁的可能原因主要是时间上和空间上的。时间上由于进程运行中推进顺序不当,即调度时机不合适,不该切换进程时进行了切换,可能会造成死锁;空间上的原因是对独占资源分配不当,互斥资源部分分配又不可剥夺,极易造成死锁。那么,为什么系统资源不足不是造成死锁的原因?系统资源不足只会对进程造成“饥饿”。例如,某系统只有三台打印机,若进程运行中要申请四台,显然不能满足,该进程会永远等待下去。若该进程在创建时便声明需要四台打印机,则操作系统立即就会拒绝。这实际上是资源分配不当的一种表现。不能以系统资源不足来描述剩余资源不足的情形。
题 2.系统中有 4个进程都要使用某类资源。若每个进程最多需要 3个该类资源,则为了保证系统不发生死锁,系统至少应提供( )该类资源
A.3个 B.4个 C.
9个
D.12个
答案:C
解析:系统中有 4个进程,每个进程最多需要 3个资源,先给每个进程分配 2个资源,共需要 8个资源,此时需要系统中还有 1个空闲资源 (其可被分配给任一 进程),才不会发生死锁,故至少需要9个资源。
课时六 死锁(二)
1.死锁的避免
银行家算法
2.死锁的检测与解除
题 1.死锁的避免是根据( )采取措施实现的。
A.配置足够的系统资源
B.使进程的推进顺序合理
C.破坏死锁的四个必要条件之一
D.
防止系统进入不安全状态
答案:D
解析:死锁避免是指在资源动态分配过程中用某些算法加以限制,防止系统进入 不安全状态从而避免死锁的发生。选项 B是避免死锁后的结果,而不是措施的原理。
题 2.某系统中有三个并发进程都需要四个同类资源,则该系统必然不会发生死锁的最少资源是( )
A.9 B.
10
C.11 D.12
答案:B
解析:资源数为 9时,存在三个进程都占有三个资源,为死锁;资源数为10时,必然存在一个进程能拿到 个资源,然后可以顺利执行完其他进程。