lalalalallalalallalal 2022-09-30 15:41 采纳率: 33.3%
浏览 13

Person算法解决临界区互斥问题,turn变量可以改吗?

P0进程:
flag[0]=TRUE; turn=1;
while(flag[1]&&turn==1);
访问临界资源;
flag[0]=false;
P1进程:
flag[1]=TRUE; turn=0;
while(flag[0]&&turn==0);
访问临界资源;
flag[1]=false;

我的理解是这个turn起到了轮流的作用,只有当两个进程中一个进程有访问临界资源的意愿并且轮到它了,另一个进程才把资源让给它,那能将P0进程中的turn设置为0,P1进程中的turn设置为1吗?turn的赋值能放在flag赋值的前面吗?手动模拟感觉是可以的,但是不知道实际上可不可以

  • 写回答

1条回答 默认 最新

  • ·星辰大海 2022-09-30 16:50
    关注

    你说的这些都是对称的,只要都在while上面应该就可以。
    这个东西没有好的办法证明,唯一的方法就是将所有的情况列出来一一分析。

    评论

报告相同问题?

问题事件

  • 修改了问题 9月30日
  • 创建了问题 9月30日

悬赏问题

  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思