//算法思想,结合双标志法、单标志法的思想。如果双方都争着想进入临界区,那
//可以让进程尝试”孔融让梨“(谦让)。做一个有礼貌的进程
bool flag[2]; //表示进入临界区意愿的数组,初始值都是false
int turn = 0; //turn表示优先让哪个进程进入临界区
P0 进程:
flag[0] = true; .1
turn = 1; .2
while(flag[1] && turn == 1); .3
critical section; .4
flag[0] = false; .5
remainder section;
P1 进程:
flag[1] = true: .6
turn = 0; .7
while(flag[0] && turn == 0); .8
critical section; .9
flag[1] = false; .10
remainder section
//动手推导按不同顺序穿插会发生什么
//123678
//1623
//13678
//16278
Peterson算法
最新推荐文章于 2022-10-24 18:42:38 发布