Operating system 操作系统:彼得森&x27;s溶液
我试图理解彼得森的同步解决方案。作为参考,我附上阅读资料来源: 这是来自维基百科页面。现在, 假设P1想要进入临界区。它设置Operating system 操作系统:彼得森&x27;s溶液,operating-system,synchronization,critical-section,Operating System,Synchronization,Critical Section,我试图理解彼得森的同步解决方案。作为参考,我附上阅读资料来源: 这是来自维基百科页面。现在, 假设P1想要进入临界区。它设置flag=true和turn=0。如果P0已经在其关键部分,P1将在其while循环中持续等待while(标志[0]==true&&turn==0)作为标志[0]=true。 我的疑问是: 在这种情况下会发生什么:P1正在执行其while循环,而P0只是尝试进入临界段并执行 行标志[0]=true。由于某种原因,它无法执行下一行并终止。在这种情况下,标志[0]也是正确的
flag=true
和turn=0
。如果P0已经在其关键部分,P1将在其while循环中持续等待while(标志[0]==true&&turn==0)
作为标志[0]=true
。
我的疑问是:
标志[0]=true
。由于某种原因,它无法执行下一行并终止。在这种情况下,标志[0]也是正确的
回合也为0。P1在没有进程的情况下不必要地等待
关键部分李>
turn
变量。为什么不仅如此:while(flag[0]==true)
只要P0愿意
离开临界段,标志[0]=假,P1将能够
进入