【嵌入式总复习】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操作负责释放资源,在阻塞队列不为空时唤醒某个进程进入临界区

猜你喜欢

转载自blog.csdn.net/weixin_51911075/article/details/128154429