当前位置: 首页 > news >正文

系统V信号量

信号量

PV操作的名称来源于荷兰语,其中P代表“passeren”(通过),V代表“vrijgeven”(释放),是Dijkstra在设计信号量时所使用的术语。

P操作:表示“通过”,用于请求资源或进入临界区。当进程执行P操作时,信号量的值会减1,如果结果为负,则该进程会被阻塞,直到资源可用。
V操作:表示“释放”,用于释放资源或退出临界区。当进程执行V操作时,信号量的值会加1,如果有其他进程在等待该资源,则会唤醒其中一个进程继续执行。

简单理解,锁行为就是P操作,解锁就是V操作.

```
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>

int semget(key_t key, int nsems, int semflg);
```
参数说明:
```
key:与消息队列类似,参数key用来标识系统内的信号量, 如果指定的key已经存在,则意味着打开这个信号量,这时nsems参数指定为0,semflg参数也指定为0。 特别地,可以使用IPC_PRIVATE创建一个没有key的信号量。

nsems:本参数用于在创建信号量的时候,表示可用的信号量数目。

semflg:semflg参数用来指定标志位,与消息队列中的类似。 主要有IPC_CREAT,IPC_EXCL和权限mode,其中使用IPC_CREAT标志创建新的信号量, 即使该信号量已经存在(具有同一个键值的信号量已在系统中存在),也不会出错。 如果同时使用IPC_EXCL标志可以创建一个新的唯一的信号量,此时如果该信号量已经存在, 该函数会返回出错。
```
创建信号量时,还受到以下系统信息的影响:
```
SEMMNI:系统中信号量总数的最大值。
SEMMSL:每个信号量中信号量元素个数的最大值。
SEMMNS:系统中所有信号量中的信号量元素总数的最大值。
```
以上信息可通过命令 ipcs -l 查看

 

http://www.jsqmd.com/news/274887/

相关文章:

  • 我的十年:从测试员到AI创业者的真实旅程
  • 2026年靠谱的pp管,PP风机,pp风管厂家实力推荐名录 - 品牌鉴赏师
  • SSM294的农产品进销存管理vue
  • SSM296的汽车租赁系统vue
  • Java实现——链队列(泛型)
  • 基于微信小程序的医院体检预约管理系统的设计和实现
  • 2026年上海二手房装修公司推荐,一站式服务与拎包入住交付能力横评 - 品牌鉴赏师
  • JavaScript 数组合并性能优化:扩展运算符 vs concat vs 循环 push
  • SSM291的母婴用品商城网站
  • python项目打包为镜像
  • 救命神器9个AI论文软件,专科生搞定毕业论文+格式规范!
  • 知光项目对象存储模块
  • 【路径规划】基于RRT、RRT星、RRTX、A_和D_ Lite实现机器人路径规划附matlab代码
  • fastapi里面tortoise-orm的用法
  • 【无人机三维路径规划】基于蚁群算法ACO、蜣螂算法DBO、人工蜂鸟算法AHA复杂山地模型下无人机路径规划附Matlab代码
  • 【AIGC】2025年12月13日 AutoMV: Automatic Multi-Agent System for Music Video Generation 1:介绍
  • 大数据领域数据服务的用户需求挖掘方法
  • 【初阶数据结构】解锁顺序表潜能:一站式实现高效通讯录系统
  • 【AIGC】2025年12月13日 AutoMV: Automatic Multi-Agent System for Music Video Generation 2:论文
  • POSIX信号量
  • SSM289的美食推荐带店铺管理系统
  • S7-1200 控制 5 轴伺服程序案例分享
  • SSM278的考研互助辅导平台vue
  • 生产线效率已近瓶颈,如何通过精益管理实现新的突破?
  • Kiro教程(三)| Kiro 实战与最佳实践
  • 计算机毕业设计springboot医院门诊信息管理系统 基于SpringBoot的智慧门诊综合服务平台 面向中小型医院的SpringBoot门诊业务一体化系统
  • URL末尾到底该不该加斜杠?前端老油条的血泪经验
  • 三菱fx - 5u轴定位与Modbus RTU RS - 485测微计通信案例大揭秘
  • Kiro教程(二)| Kiro 核心功能完全指南
  • 2026/1/20