计算机操作系统题库及答案 下载本文

由上述两式可得:need(1)+?+need(n)

上式表示死锁发生后,n个进程还需要的资源量之和小于n,这意味着此刻至少存在一 个进程i,need(i)=0,即它己获得了所需要的全部资源。既然该进程已获得了它所需要的全部资源,那么它就能执行完成并释放它占有的资源,这与前面的假设矛盾,从而证明在这个系统中不可能发生死锁。

12.在银行家算法中,若出现下述资源分配情况:

试问:(1)该状态是否安全?

(2)如果进程P2提出请求Request2(1,2,2,2)后,系统能否将资源分配给它?

解:(1)利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的安全性分析情况:

从上述分析中可以看出,此时存在一个安全序列{P0,P3,P4,P1,P2},故该状态是 安全的。

(2)P2提出请求Request2 (1,2,2,2),按银行家算法进行检查:

Request2(1,2,2,2)≤Need2(2, 3, 5, 6) Request2(1,2,2,2) ≤Available(1, 6, 2, 2) 试分配并修改相应的数据结构,资源分配情况如下:

再利用安全性算法检查系统是否安全,可用资源Available (0,4,0,0)己不能满足任何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P2。

49

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

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

14.考虑下列资源分配策略:对资源的申请和释放可以在任何时候进行。如果一个进程提出资源请求时得不到满足,若此时无由于等待资源而被阻塞的进程,则自己就被阻塞;若此时已有等待资源而被阻塞的进程,则检查所有由于等待资源而被阻塞的进程。如果它们有申请进程所需要的资源,则将这些资源取出分配给申请进程。

例如,考虑一个有3类资源的系统,系统所有可用资源为(4,2,2),进程A申请(2,2,1),可满足;进程B申请(1,0,1),可满足;若A再申请(0,0,1),则被阻塞。此时,若C请求(2,0,0),它可以分到剩余资源(1,0,0),并从A已分到的资源中获得一个资源,于是进程A的分配向量变成(1,2,1)而需求向量变成(1,0,1)。

①这种分配策略会导致死锁吗?如果会,请举一个例子;如果不会,请说明产生死锁的哪一个必要条件不成立。

②这种分配方式会导致某些进程的无限等待吗?为什么?

解:①本题所给的资源分配策略不会产生死锁。因为本题给出的分配策略规定若一进程的资源得不到满足,则检查所有由于等待资源而被阻塞的进程,如果它们有申请进程所需要的资源,则将这些资源取出分配给申请进程。从而破坏了产生死锁必要条件中的不剥夺条件,这样系统就不会产生死锁。

②这种方法会导致某些进程无限期的等待。因为被阻塞进程的资源可以被剥夺,所以 被阻塞进程所拥有的资源数量在其被唤醒之前只可能减少。若系统中不断出现其他进程申 请资源,这些进程申请的资源与被阻塞进程申请或拥有的资源类型相同且不被阻塞,则系 统无法保证被阻塞进程一定能获得所需要的全部资源。例如,本题中的进程A申请(2,2, 1)后再申请(0,0,1)被阻塞。此后,进程C又剥夺了进程A的一个资源,使得进程A拥有的资源变为(1,2,1),其需求向量为(1,0,1)。之后,若再创建的进程总是只申请第1和第3类资源,总是占有系统所剩下的第1和第3类资源的全部且不阻塞,那么进程A将会无限期地等待。

15.一台计算机有8台磁带机。它们由N个进程竞争使用,每个进程可能需要3台磁带机。请问N为多少时,系统没有死锁危险,并说明原因。

解:当N为1,2,3时,系统没有产生死锁的危险。因为,当系统中只有1个进程时,

50