进程信号量(Semaphore) 之一



前提:
    在多任务操作系统下,多个进程会同时运行,并且一些进程之间可能存在一定的关联.
同步关系与互斥关系:
    多个进程可能为了完成同一个任务相互协作,这样形成进程之间的同步关系.
 而且在不同进程之间,为了争夺有限的系统(硬件或软件资源) 会进入竞争状态,这就是进程之间的互斥关系.
本质:
    进程之间的互斥与同步关系存在的根源在于临界资源.
临界资源:
    在同一个时刻只允许有限个(通常只有一个)进程可以访问(读)或修改(写)的资源.
临界区:
 访问临界资源的代码叫做临界区,临界区本身也会成为临界资源.
信号量是用来解决进程之间的同步与互斥问题的一种进程之间通信机制.包括:
 1.一个称为信号量的变量
 2.在信号量下等待资源的进程等待队列
 3.PV原子操作
 其中:
   信号量 对应于某一种资源,取一个非负的整形值.
   信号量值sv指的是当前可用的该资源的数量,若sv==0,则意味着目前没有可用的资源.(即 0表示 所有资源均被占用,非0表示 具有资源可用)
   PV原子操作的具体定义如下:
     P操作 if (sv>0),则占用一个资源且sv--,进入临界区代码;if (sv==0),则被阻塞.即
        进入等待队列,一直等到资源分配给该进程
  V操作 如果在该信号量的等待队列中有进程在等待资源,则唤醒一个阻塞进程;如果没有进程等待它,则释放一个资源(即sv++)
---To be Continued

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值