考虑这样一种资源分配策略:对资源的申请和释放可以在任何时刻进行。如果一个进程的资源得不到满足,则考查所有由于等待资源而被阻塞的进程,如果它们有申请进程所需要的资源,则把这些资源取出分给申请进程。 例如,考虑一个有三类资源的系统,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)会导致某些进程的无限等待吗?
举一反三
- 某个系统采用下列分配策略:如果一个进程提出资源请求得不到满足,若此时没有由于等待该资源而被阻塞的进程,则自己被阻塞;若此时已有因等待该资源而阻塞的进程,则检查所有阻塞进程;如果阻塞进程中持有申请进程所需要的这种资源,则将这些资源剥夺并分配给申请进程。这种分配策略会导致______。 A: 死锁 B: 颠簸 C: 回退 D: 饥饿
- 某个系统采用如下资源分配策略。如果一个进程提出资源请求得不到满足,而此时没有由于等待资源而被阻塞的进程,则自己就被阻塞。若当此时已有等待资源而被阻塞的进程,则检查所有由于等待资源而被阻塞的进程,如果它们有申请进程所需要的资源,则将这些资源剥夺并分配给申请进程。这种策略会导致______。 A: 死锁 B: 抖动 C: 回退 D: 饥饿
- 若两个并发进程共享4个同类资源,为使系统不会死锁,则每个进程至多可以申请()个该类资源。 A: 1 B: 2 C: 3 D: 4
- 有3个进程共享7个同类资源,为使系统不会发生死锁,每个进程最多可以申请 个资源。 A: 1 B: 2 C: 3 D: 4
- 某时刻进程的资源使用情况如下表所示,此时的安全序列是( )。 已分配资源 R1 R2 R3 尚需资源 R1 R2 R3 可用资源 R1 R2 R3 P1 2 0 0 0 0 1 0 2 1 P2 1 2 0 1 3 2 P3 0 1 1 1 3 1 P4 0 0 1 2 0 0