问答题

判断以下解决双进程临界区问题的算法是否正确:
Process Pi(i=0,1);
Do
flag[i]=true;
while(flag[1-i]);
critical section
flag[i]=false;
remainder section
while(1);

【参考答案】

错误。当两个进程将flag都设为true以后,两个进程都在while语句上形成死循环。
<上一题 目录 下一题>
热门 试题

问答题
以下是双进程临界区问题的算法,其中布尔型数组blicked[2]初始值为false,false,整型turn初始值为0,id代表进程编号(0,1),请说明是否正确。 do blocked[id]=true; while(turn!=id) while(blocked[1-id]); turn=id; 编号为id的进程的临界区 blocked[id]=false; 编号为id的进程的非临界区 while(true);
问答题
什么是P、V操作试用P、V操作描述读者一写者问题。要求允许几个阅读者可以同时读该数据集,而一个写者不能与其他进程(不管是写者还是读者)同时访问该数据集。
相关试题
  • 如下图所示,相交的四条单行线不幸塞车。根...
  • 假设三个进程共享四个资源,每个进程一次只...
  • 考虑由n个进程共享的具有m个同类资源的系统...
  • 某系统有同类资源m个,供n个进程共享。如果...
  • 设系统中有三种类型的资源(A、B、C)和五...