一.临界区与临界资源
(一)、概念
并发进程中与共享变量有关的程序段叫“临界区”,
共享变量代表的资源叫“临界资源”
(二)、临界区调度原则:
互斥使用,有空让进
忙则等待,有限等待
择一而入,算法可行
二、实现临界区的管理
(一)、Peterson算法
• bool inside[2];• inside[0]=false;• inside[1]=false;• enum {0,1} turn;• cobegin• process P0( ) {• inside[0]=true;• turn=1;• while(inside[1]&&turn==1);• /* 临界区 */;• inside[0]=false;• }• process P1( ) {• inside[1]=true;• turn=0;• while(inside[0]&&turn==0);• { 临界区 };• inside[1]=false;• }
(二)、实现临界期管理的硬件设施关中断
1、关中断:最简单的方法
2、测试并设置指令:
TS指令管理临界区时,可把一个临区与一个布尔变量s相连,由于变量s代表了临界资源的状态,可把它看成一把锁。
3、对换指令