niusouti.com

一个操作系统有20个进程,竞争使用30个同类资源,申请方式是逐个进行,一旦某个进程获得了它的全部资源,就马上归还所有的资源,每个进程最多使用30,最少使用一个资源。20个进程需要的资源总数小于50。如果仅考虑这类资源,系统会产生死锁吗?请说明理由。

题目
一个操作系统有20个进程,竞争使用30个同类资源,申请方式是逐个进行,一旦某个进程获得了它的全部资源,就马上归还所有的资源,每个进程最多使用30,最少使用一个资源。20个进程需要的资源总数小于50。如果仅考虑这类资源,系统会产生死锁吗?请说明理由。

相似考题
更多“一个操作系统有20个进程,竞争使用30个同类资源,申请方式是逐个进行,一旦某个进程获得了它的全部资源,就马上归还所有的资源,每个进程最多使用30,最少使用一个资源。20个进程需要的资源总数小于50。如果仅考虑这类资源,系统会产生死锁吗?请说明理由。”相关问题
  • 第1题:

    在( )的情况下,系统出现死锁。

    A 计算机系统发生了重大故障

    B 有多个阻塞的进程正在等待键盘的输入

    C 若干进程因竞争资源而无休止地相互等待他方释放已占有的资源

    D 资源数大大小于进程数或进程同时申请的资源数大大超过资源总数


    参考答案C

  • 第2题:

    如果规定系统所有进程在整个运行过程中一次性申请所需的全部资源,若其中任何一个资源不能得到满足,则其他资源也不分配给该进程,这种死锁预防方式破坏了产生死锁的哪一个必要条件? ( )

    A.进程互斥使用资源

    B.占有等待资源

    C.不可抢占

    D.循环等待资源


    正确答案:B
    解析:死锁的4个必要条件中,占有等待资源是指一个进程申请资源得不到满足时处于等待资源的状态且不释放已占资源。

  • 第3题:

    对于产生死锁的4个必要条件之一的不可抢占条件是( )。

    A.每一个资源每次只能给一个进程使用

    B.已被占用的资源只能由占用进程自己来释放

    C.一个进程申请资源得不到满足时处于等待资源的状态且不释放已占资源

    D.存在一个进程环路,其中每一个进程已获得的资源同时被下一个进程所请求


    正确答案:B
    解析:死锁的4个必要条件中,不剥夺条件(不可抢占)是指进程所获得的资源在未使用完毕之前,不能被其他进程强行剥夺,而只能由获得该资源的进程自己释放。

  • 第4题:

    操作系统讨论的死锁与()有关。

    • A、进程申请的资源不存在
    • B、进程并发执行的进度和资源分配的策略
    • C、并发执行的进度
    • D、某个进程申请的资源数多于系统资源数

    正确答案:B

  • 第5题:

    有相同类型的5个资源被4个进程所共享,且每个进程最多需要2个这样的资源就可以运行完毕。试问该系统是否会由于对这种资源的竞争而产生死锁。


    正确答案: 该系统不会由于对这种资源的竞争而产生死锁。因为在最坏情况下,每个进程都需要2个这样的资源,且每个进程都已申请到了1个资源,那么系统中还剩下1个可用资源。无论系统为了满足哪个进程的资源申请而将资源分配给该进程,都会因为该进程已获得了它所需要的全部资源而确保它运行完毕,从而可将它占有的2个资源归还给系统,这就保证了其余三个进程能顺利运行。由此可知,该系统不会由于对这种资源的竞争而产生死锁。

  • 第6题:

    系统中有3个进程,4个相同类型的资源,每个进程最多需要2个资源,该系统是否回发生死锁?为什么?


    正确答案:该系统不会发生死锁。因为4个资源分配给3个进程,无论如何分配,总会有1个进程能够分配到2个资源,该进程获得其最大资源数后,完成并释放其资源,剩余2个进程就可获得最大资源数,顺利完成,系统始终存在安全序列,故系统不会死锁。

  • 第7题:

    假设三个进程共享四个资源,每个进程一次只能预定或释放一个资源,每个进程最多需要两个资源,试证明这样做不会发生死锁。


    正确答案:在最坏情况下,三个进程各占用一个资源,并同时请求第二个资源。由于系统中还有一个未用的资源,所以三个进程中的一个可以被满足。另外两个进程在这个进程结束以后可以获取需要的资源,然后继续执行。因此,不会出现死锁。

  • 第8题:

    问答题
    系统中有3个进程,4个相同类型的资源,每个进程最多需要2个资源,该系统是否回发生死锁?为什么?

    正确答案: 该系统不会发生死锁。因为4个资源分配给3个进程,无论如何分配,总会有1个进程能够分配到2个资源,该进程获得其最大资源数后,完成并释放其资源,剩余2个进程就可获得最大资源数,顺利完成,系统始终存在安全序列,故系统不会死锁。
    解析: 暂无解析

  • 第9题:

    问答题
    考虑这样一种资源分配策略:对资源的申请和释放可以在任何时刻进行。如果一个进程的资源得不到满足,则考查所有由于等待资源而被阻塞的进程,如果它们有申请进程所需要的资源,则把这些资源取出分给申请进程。  例如,考虑一个有三类资源的系统,Available = (4,2,2)。进程A申请(2,2,1),可以满足;进程B 申请(1,0,1),可以满足;若A再申请(0,0,1),则被阻塞(无资源可分)。此时,若C申请(2,0,0),它可以分得剩余资源(1,0,0), 并从A已分得的资源中获得一个资源,于是,进程A的分配向量变成:Available =(1,2,1),而需求向量变成:Need =(1,0,1)。  (1)这种分配方式会导致死锁吗?若会,举一个例子;若不会,说明死锁的哪一个必要条件不成立。  (2)会导致某些进程的无限等待吗?

    正确答案: (1)在本例中不会产生死锁,因为它不满足死锁的第3个必要条件,即不剥夺条件。进程所获得的资源在未使用完毕之前,可以被其他进程剥夺。这样,系统就不会产生死锁。
    (2)这种方法会导致某些进程无限期的等待。因为被阻塞的进程的资源可以被剥夺,所以被阻塞的进程所拥有资源数量不会因为进程的推进而逐渐增加。这样,随着进程的向前推进,并不能保证进程一定能获得需要的全部资源。
    例如,本题中的进程A申请(2,2,1)后再申请(0,0,1)被阻塞。此后,进程C又剥夺了进程A的一个资源,使得进程A的资源变为(1,2,1),其需求向量为(1,0,1)。之后,若再创建的进程总是只申请第1和第3类资源,总是占有系统所剩余的第1和第3类资源的全部,且不被阻塞,那么,进程A将会无限期地等待。
    解析: 暂无解析

  • 第10题:

    问答题
    一个操作系统有20个进程,竞争使用30个同类资源,申请方式是逐个进行,一旦某个进程获得了它的全部资源,就马上归还所有的资源,每个进程最多使用30,最少使用一个资源。20个进程需要的资源总数小于50。如果仅考虑这类资源,系统会产生死锁吗?请说明理由。

    正确答案: 设max(i)表示第i个进程的最大资源需求量,
    need(i)表示第i个进程还需要的资源量,
    alloc(i)表示第i个进程已分配的资源量。
    由题中所给条件可知:
    max(1)+…+max(20)=(need(1)+…need(20))+(alloc(1)+…+alloc(20))<50
    如果在这个系统中发生了死锁,那么一方面30个资源R应该全部分配出去,即(反证法)alloc(1)+…+alloc(20)=30
    另一方面所有进程将陷入无限等待状态。
    由上述两式可得:need(1)+…+need(20)<20(关键)
    上式表示死锁发生后,20个进程还需要的资源量之和小于20,这意味着此刻至少存在一个进程i,need(i)=0,即它已获得了所需要的全部资源。既然该进程已获得了它所需要的全部资源,那么它就能执行完成并释放它占有的资源,这与前面的假设矛盾,从而证明在这个系统中不可能发生死锁。
    解析: 暂无解析

  • 第11题:

    多选题
    能防止死锁的资源分配策略有()
    A

    申请新资源前先归还已占资源

    B

    在进程开始执行前为其分配所需资源

    C

    使进程互斥使用资源

    D

    允许一个进程抢夺另一进程所占的资源

    E

    按进程号的次序为进程分配资源


    正确答案: E,C
    解析: 暂无解析

  • 第12题:

    单选题
    在操作系统中,死锁出现是指()
    A

    计算机系统发生重大故障

    B

    资源数目远远少于进程数

    C

    若干进程因竞争资源而无限等待其他进程释放已占有的资源

    D

    进程同时申请的资源数超过资源总数


    正确答案: D
    解析: 暂无解析

  • 第13题:

    假设有3个进程竞争同类资源,如果每个进程需要2个该类资源,则至少需要个该类资源,才能保证不会发生死锁。


    正确答案:4
    针对本题,首先可以使用逆向思维进行思考:3个进程,每个进程需要两个同类资源,那么总共需多少个资源呢?有以下几种情况。
    —    资源总数为1,则不管哪个资源占用该资源,都会导致无条件死锁。
    —    资源总数为2,可分两种情况:一个进程占用两个资源,直到它执行完毕后释放,然后又由另一进程同时占用这两个资源,由最后一个进程使用,这样不会导致死锁;两个资源若不为某一进程独占,将会导致死锁,一般称这种状态是不安全的。
    —    资源总数为3,与第(2)条同理。
    —    资源总数为4,则无论资源如何分配,都不会导致死锁。
    用公式可以总结如下:
    资源总数(安全的)= 进程数 ´(每个进程所需资源数-1)+ 1

  • 第14题:

    对于产生死锁的4个必要条件之一的循环等待资源是( )。

    A.每一个资源每次只能给一个进程使用

    B.已被占用的资源只能由占用进程自己来释放

    C.一个进程申请资源得不到满足时处于等待资源的状态且不释放已占资源

    D.存在一个进程环路,其中每一个进程已获得的资源同时被下一个进程所请求


    正确答案:D
    解析:出现死锁时必须同时保持4个必要条件:进程互斥使用资源、占有等待资源、不可抢占和循环等待资源,其中循环等待资源是指存在一个进程环路,其中每一个进程已获得的资源同时被下一个进程所请求。

  • 第15题:

    一个系统中存在某类资源m个,被n个进程共享。资源的分配和释放必须一个一个进行,请证明在以下两个条件下不会发生死锁: 每个进程需要资源的最大数在1~m之间; 所有进程需要的资源总数小于m+n;

  • 第16题:

    N个进程共享M个资源,每个进程一次只能申请/释放一个资源,每个进程最多需要M个资源,所有进程总共的资源需求少于M+N个,证明该系统此时不会产生死锁。 


    正确答案: 设max (i)表示第i个进程的最大资源需求量,need(i)表示第i个进程还需要的资源量,alloc(i)表示第i个进程已分配的资源量。由题中所给条件可知: 
    max(1)+┅+max(n)=(need(1)+┅+need(n))+((alloc(1)+┅+alloc(n)) 如果在这个系统中发生了死锁,那么一方面m个资源应该全部分配出去,          
    alloc(1)+ ┅+alloc(n)=m 
    另一方面所有进程将陷入无限等待状态。可以推出          
    need(1)+ ┅+need(n) 上式表示死锁发生后,n个进程还需要的资源量之和小于n,这意味着此刻至少存在一个进程i,need(i)=0,即它已获得了所需要的全部资源。既然该进程已获得了它所需要的全部资源,那么它就能执行完成并释放它占有的资源,这与前面的假设矛盾,从而证明在这个系统中不可能发生死锁。

  • 第17题:

    “死锁”问题的讨论是针对()的。

    • A、某个进程申请系统中不存在的资源
    • B、某个进程申请的资源数超过了系统拥有的最大资源数
    • C、硬件故障
    • D、多个并发竞争独占型资源

    正确答案:A

  • 第18题:

    考虑一个由四个同类资源组成的系统,有三个进程共享这些资源,每个进程至多需要两个资源,试说明该系统是无死锁的。


    正确答案:假设三个进程,每个进程都需要两个资源,最坏的情况,每个进程都占有了一个资源,申请第二个资源,而此时系统中剩余一个资源,不管这个资源分给哪一个进程,都能满足它的资源要求,因此它能在有限的时间里运行结束而释放所占有的两个资源,这两个资源又可以分给另外两个进程,使它们能够运行结束,因此,此系统是无死锁的。

  • 第19题:

    单选题
    “死锁”问题的讨论是针对()的。
    A

    某个进程申请系统中不存在的资源

    B

    某个进程申请的资源数超过了系统拥有的最大资源数

    C

    硬件故障

    D

    多个并发竞争独占型资源


    正确答案: D
    解析: 暂无解析

  • 第20题:

    单选题
    操作系统讨论的死锁与()有关。
    A

    进程申请的资源不存在

    B

    进程并发执行的进度和资源分配的策略

    C

    并发执行的进度

    D

    某个进程申请的资源数多于系统资源数


    正确答案: C
    解析: 暂无解析

  • 第21题:

    问答题
    N个进程共享M个资源,每个进程一次只能申请/释放一个资源,每个进程最多需要M个资源,所有进程总共的资源需求少于M+N个,证明该系统此时不会产生死锁。

    正确答案: 设max (i)表示第i个进程的最大资源需求量,need(i)表示第i个进程还需要的资源量,alloc(i)表示第i个进程已分配的资源量。由题中所给条件可知: 
    max(1)+┅+max(n)=(need(1)+┅+need(n))+((alloc(1)+┅+alloc(n)) 如果在这个系统中发生了死锁,那么一方面m个资源应该全部分配出去,          
    alloc(1)+ ┅+alloc(n)=m 
    另一方面所有进程将陷入无限等待状态。可以推出          
    need(1)+ ┅+need(n) 上式表示死锁发生后,n个进程还需要的资源量之和小于n,这意味着此刻至少存在一个进程i,need(i)=0,即它已获得了所需要的全部资源。既然该进程已获得了它所需要的全部资源,那么它就能执行完成并释放它占有的资源,这与前面的假设矛盾,从而证明在这个系统中不可能发生死锁。
    解析: 暂无解析

  • 第22题:

    问答题
    有相同类型的5个资源被4个进程所共享,且每个进程最多需要2个这样的资源就可以运行完毕。试问该系统是否会由于对这种资源的竞争而产生死锁。

    正确答案: 该系统不会由于对这种资源的竞争而产生死锁。因为在最坏情况下,每个进程都需要2个这样的资源,且每个进程都已申请到了1个资源,那么系统中还剩下1个可用资源。无论系统为了满足哪个进程的资源申请而将资源分配给该进程,都会因为该进程已获得了它所需要的全部资源而确保它运行完毕,从而可将它占有的2个资源归还给系统,这就保证了其余三个进程能顺利运行。由此可知,该系统不会由于对这种资源的竞争而产生死锁。
    解析: 暂无解析

  • 第23题:

    问答题
    考虑一个由四个同类资源组成的系统,有三个进程共享这些资源,每个进程至多需要两个资源,试说明该系统是无死锁的。

    正确答案: 假设三个进程,每个进程都需要两个资源,最坏的情况,每个进程都占有了一个资源,申请第二个资源,而此时系统中剩余一个资源,不管这个资源分给哪一个进程,都能满足它的资源要求,因此它能在有限的时间里运行结束而释放所占有的两个资源,这两个资源又可以分给另外两个进程,使它们能够运行结束,因此,此系统是无死锁的。
    解析: 暂无解析