#define n 2
#define True 1
#define false 0
int interested[n]=False
int turn;
void entry_section(int process)
{
int other;
other=1-process;
interested[process]=TRUE;
Turn=Process;
while(interested[other]==True && turn== process);
//ENTERS CS//
void exit_section(int process)
{
interested[process]=False;
}
现在说我们有2个进程P0和P1。假设P0在执行turn = process之后被抢占,然后P1进入并执行entry_section,当P1达到while条件时,它将发现while条件为true并等待,这将导致自旋锁定。 但是,到处都可以发现,在彼得森的算法中永远不会发生死锁和自旋锁。 所以,请指导我哪里出问题了?