HUST OS 4.4 临界区和锁【自学笔记】

4.4 临界区和锁
4.4.1 临界区与临界资源
  • 临界资源:一次只允许一个进程独占访问(使用)的资源
    [Critical Resource]
    *临界区:进程中访问临界资源的程序段
    [Critical Section]
    在并发环境下面,多个程序同时使用了同一个全局可见变量,会出现随机的不稳定的结果。

解决方案:程序设定一个特定区域不让两个程序同时进入,只能先后进入。【临界区】【临界资源】

  • 临界区访问机制的四个原则:
    1.忙则等待
    当临界区忙时,其他进程必须在临界区外等待
    2.空闲让进
    当无进程处于临界区时,任何有权进程可进入临界区
    3.有限等待
    进程进入临界区的请求应该在有闲时间内得到满足
    (思考:临界区设置得大一些好,还是小一些好?应刚好包含临界部分)
    4.让权等待。
    等待进程放弃CPU(让其他进程有机会得到CPU)
4.4.2 锁机制

基本原理:设置一个“标志”S:
表明临界资源“可用”还是“不可用”?1:0
上锁 进入临界区之前检查标志是否可用:
若为“不可用”状态:进程在临界区之外等待
若为“可用”:
访问临界资源
且将标志修改为“不可用”
开锁 退出临界区时将标志修改为“可用”状态

步骤:
1.初始化锁的状态S = 1(可用)
2.进入临界区之前执行上锁Lock(s)操作;
3.离开临界区之后执行开锁unLock(s) 操作;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值