锁机制
- 设置一个“标志”S
表明临界资源“可用”还是“不可用”?1:0
上锁操作:进入临界区之前检查标志是否“可用”?
若为“不可用”状态,进程在临界区之外等待
若为“可用”状态
访问临界资源
且将标志修改为“不可用”
开锁操作:退开临界区时将标志修改为“可用”状态
上锁操作
步骤
第一步:检测锁S的状态(0或B)
第二步:如果S=0,则返回第一步
第三步:如果S=1,则置其为0
LOCK(S) //(S==0)
{
goto test;//测试所标志
else //S==1
S=0;//上锁
}
上锁原语
开锁操作
步骤
第一步:把锁的状态置1
UnLock(s) //开锁操作
S=1;开锁
用锁机制访问临界区
步骤:
1.初始化锁的状态S=1(可用)
2.进入临界区之前执行上锁Lock(s)操作;
锁机制的应用
用锁机制访问临界区