- 5
- 0
- 约8.65千字
- 约 42页
- 2017-05-30 发布于北京
- 举报
* 临界区管理的尝试 (2) bool inside1=false; //P1不在其临界区内 bool inside2=false; //P2不在其临界区内 cobegin process P1( ) { process P2( ) { inside1=true; inside2=true; while(inside2);//等待 while(inside1);//等待 {临界区}; {临界区}; inside1=false; inside2=false; } } coend 延迟进程P1(P2)对inside2(insidel)的测试,先置insidel(inside2)为true,用以封锁P2(P1),修正后的程序如下,不幸,它也是无效的,有可能每个进程都把自己的标志置成true,从而出现死循环,这时没有进程能在有限时间内进入临界区,造成永远等待。 两个进程都进不去 * 3.2.3实现临界区的软件算法Peterson算法 bool inside[2]; inside[0]=false; inside[1]=false; enum {0,1}
原创力文档

文档评论(0)