【操作系统原理】进程的互斥以及上锁与解锁原语


什么是进程互斥?

        所谓进程互斥,就是对于系统的某种资源,若一个进程正在访问它,其他进程必须等待,不能同时使用。这是一种源于资源共享的制约关系,也称为间接制约关系。

 

接下来,我们来简要的了解一下几个概念:

  1. 这种限定资源只能排他性的访问的资源叫做临界资源

  2. 程序中访问临界资源的那段代码称为临界区或临界段

     

    如何实现进程互斥?

    为实现对临界资源的互斥访问,应保证诸进程互斥的进入各自的临界区。在操作系统中,最早采用软件的方法,后来常采用硬件指令或者在系统中设置专门的同步机构方法。这些方法共同形成临界区的使用原则:

    1当临界区空闲时,必须让一个要求进入临界区的进程立即进入,以有效的利用资源;

    2当临界区已经有进程进入时,其他试图进入临界区的资源必须等待,以保证互斥地进入临界区;

    3)对于要求进入临界区的进程应在有限的时间内使之进入,以免陷入死等

    4等待进入临界区的进程必须立即释放CPU,以免“忙等”。

     

    上锁与开锁是一种最简单的进程互斥方法。它使用一个变量“W”来表示某种临界资源的状态。若W=1,表示资源已经被使用,若W=0,表示资源可用。一般将上锁与开锁原语设置在临界区相应的程序段前后。

    举个栗子

                甲进程:

                       其他代码:

                        LOCK(W)

                        甲进程的临界区;

                        UNLOCK(W)

                         其他代码;

          进程进入临界区之前应该测试W的值,若W=1,资源被占用,则应返回测试;若W=0,即资源可用,则在进入临界区前为防止其他进程进入二给资源上锁,将W置为1。用完资源退出前,给资源解锁,使W=0

     

          但是有没有想过,如此简单的条件测试有可能会导致CPU“忙等?于是就有了信号量机制的产生。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值