问题 单项选择题

关于临界区问题(critical section problem)是一个算法(假设只有进程P0和P1可能进入该临界区),算法如下(i为0或1),该算法( )。 reapeat retry:if(turn≠-1)turn:=i; if(turn≠i)go to retry; turn:=-1; critical Section(临界区) turn=O: remainder Section(其他区域) untial false:

A.不能保证进程互斥进入临界区,且会出现“饥饿”(Starvation)

B.不能保证进程互斥进入临界区,但不会出现“饥饿”

C.保证进程能互斥进入临界区,但会出现“饥饿”

D.保证进程互斥进入临界区,不会出现“饥饿”

答案

参考答案:A

解析:例如当PO执行完语句turn:=-1;进入临界区时,CPU调度P1执行,P1顺利进入临界区,不能满足互斥。 当P0执行完临界区时,CPU调度P1执行,P1在retry循环,CPU调度P0执行,P0继续执行,重复以上过程,会导致P1饥饿。

选择题
单项选择题