多做题,通过考试没问题!

计算机操作系统

睦霖题库>大学试题(计算机科学)>计算机操作系统

考虑这样一种资源分配策略:对资源的申请和释放可以在任何时刻进行。如果一个进程的资源得不到满足,则考查所有由于等待资源而被阻塞的进程,如果它们有申请进程所需要的资源,则把这些资源取出分给申请进程。  例如,考虑一个有三类资源的系统,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将会无限期地等待。
答案解析:
进入题库查看解析

微信扫一扫手机做题