【嵌入式总复习】PV操作的定义

PV操作的定义

信号量是一类特殊的变量,程序对其访问都是原子操作,且只允许对它进行P(信号变量)和V(信号变量)操作。

PV操作必须是原子操作:信号量本质就是用于保护临界资源的,不可能用信号量去保护信号量,所以信号量的PV操作必须是原子操作。

P操作

我们将申请信号量称为P操作

申请信号量的本质就是申请获得临界资源中某块资源的使用权限,当申请成功时,临界资源中资源的数目应该减一,因此P操作的本质就是让计数器减一。

V操作

我们将释放信号量称为V操作

释放信号量的本质就是归还临界资源中某块资源的使用权限,当释放成功时,临界资源中资源数目就应该加一,因此V操作的本质就是让计数器加一。

二元信号量

取值仅为“0”或“1”,主要用作实现互斥;

一般信号量

初值为可用物理资源的总数,用于进程间的协作同步问题;

一个信号量可能被初始化为一个非负整数;

  1. sem_wait操作(P操作)使信号量减一。若值为负,则执行sem_wait的进程被阻塞;否则进程继续执行;
  2. sem_post操作(V操作)使信号量加一。若值小于或等于零,则将,被sem_wait操作阻塞的进程,解除阻塞;

P操作负责分配资源,没有资源等待进入阻塞队列;V操作负责释放资源,在阻塞队列不为空时唤醒某个进程进入临界区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温柔的辣面子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值