操作系统原理第三章 -- 死锁

计算机操作系统(第四版)

一、死锁的知识点

1,死锁的定义:

如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的。

(两个或两个以上的进程等候着一个永远不会发生的事件时所取的一种系统状态)

 

2,产生死锁的四个必要条件:

(1) 互斥条件:一个资源每次只能被一个进程使用。

(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。

(4) 环路等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

 

3,产生死锁的原因主要是:

(1) 系统资源不足。

(2) 进程运行推进顺序不合适。

(3) 资源分配不当。

 

    1,互斥条件是非共享设备所必需的,不仅不能改变,还应加以保证。

    2,预防死锁:破坏请求和保持条件、破坏不剥夺条件、破坏环路等待条件。

    3,当系统处于安全状态时,可避免发生死锁。当系统处于不安全状态时,则可能进入到死锁状态。

    4,安全状态:如果能在有限的时间内,保证所有的进程都得到自己所需的全部资源,就称系统处于安全状态。

    5,死锁的解除:抢占资源、终止(或撤销)进程

 

 

二、选择题

【1】在下列解决死锁的方法中,属于死锁预防策略的是 ( B )

A.银行家算法
B.资源有序分配法
C.死锁检测算法
D.资源分配图化简法

[解析] 死锁的预防是指破坏死锁的四个条件之一,具体方法为:资源静态分配策略 (资源有序分配法),死锁预防的方法使得系统资源的利用率降低。

 

【2】死锁的四个必要条件中,无法破坏的是( B )。

A.环路等待资源
B.互斥使用资源
C.占有且等待资源
D.非抢夺式分配

[解析] 所谓破坏互斥使用资源,指允许多个进程同时访问资源,但有些资源根本不能同时访问,如打印机只能互斥使用。所以,破坏互斥条件而预防死锁的方法不太可行,而且在有的场合应该保护这种互斥性。其他三个条件都可以实现。

 

【3】银行家算法是一种( B )算法。
A. 死锁解除
B. 死锁避免
C. 死锁预防
D. 死锁检测

 

【4】避免死锁的一个著名的算法是( B )。

A.先入先出法
B.银行家算法
C.优先级算法
D.资源按序分配法

 

【5】三个进程共享四个同类资源,这些资源的分配与释放只能一次一个。已知每一个进程最多需要两个该类资源,则该系统( C )。

A.有些进程可能永远得不到该类资源
B.必然有死锁
C.进程请求该类资源立刻能得到
D.必然是死锁

[解析] 不会发生死锁。因为每个进程都分得一个资源时,还有一个资源可以让任意一个进程满足,这样这个进程可以顺利运行完成进而释放它的资源。

 

【6】某时刻进程的资源使用情况见表2-21。此时的安全序列是( D )。


A.P1,P2,P3,P4 
B.P1,P3,P2,P4 
C.P1,P4,P3,P2 
D.不存在

[解析] 使用银行家算法知,不存在安全序列。

 

【7】假设5个进程P0、P1、P2、P3、P4共享三类资源R1、R2、R3,这些资源总数分别为18、6、22。T0时刻的资源分配情况如下表所示,此时存在的一个安全序列是 D


A.P0,P2,P4,P1,P3 
B.P1,P0,P3,P4,P2
C.P2,P1,P0,P3,P4 
D.P3,P4,P2,P1,P0

[解析] 根据题中给出的条件,(R1、R2、R3)资源的总数为(18、6、22)。
经计算系统将资源分配掉后,目前系统内所剩的资源数量为(2、3、3)。
而进程P0要完成所需的资源量为(2、3、7);
进程P1要完成所需的资源量为(1、3、3);
进程P2要完成所需的资源量为(0、0、6);
进程P3要完成所需的资源量为(2、2、1);
进程P4要完成所需的资源量为(1、1、0)。
系统可以将资源分配给P1、P3,设分配给P3。
当P3执行结束后,系统所剩的资源量为(4、3、7),可以分配给任意一个进程都能执行结束。
即P3、P4、P2、P1、P0是安全序列。

 

三、填空题

【1】在有m个进程的系统中出现死锁时,死锁进程的个数k应该满足的条件是( 2≤k≤m )。

[解析] 当发生资源竞争时才可能导致死锁,所以必须至少有2个进程才会发生死锁,最坏情况下所有进程都会阻塞而发生死锁。

 

【2】资源的有序分配策略可以破坏死锁的_环路等待_条件。 

[解析] 摒弃环路等待的方法是指进程必须按规定的顺序申请资源。对所有不同类型的资源排序,要求每个进程按规定的顺序申请资源。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟敛寒林o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值