首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >深入理解linux系统--信号量机制

深入理解linux系统--信号量机制

原创
作者头像
阑梦清川
发布2025-10-07 09:43:26
发布2025-10-07 09:43:26
1690
举报
文章被收录于专栏:linux学习指南linux学习指南

1.信号量

下面的是System V标准里面的三驾马车,也就是共享内存,以及消息队列和我们的信号量机制;

消息队列实际就是让不同的进程通过这个队列进行信息的传输的过程;但是涉及到这个数据之间的来回拷贝,因此这个速度非常慢,所以不经常被使用;

image-20251006191716769
image-20251006191716769

关于并发编程里面涉及到的比较重要的概念:

1)临界区就是可能会出现意外的代码

2)互斥就是两者不能同时访问的资源,这个时候常见的操作就是加锁

3)同步就是前后的问题,就是存在顺序,只有一个使用之后另外一个才可以访问使用

4)原子性就是形容操作要么全部执行,要么不执行,不会说执行一般卡住的这个情况存在,

image-20251006192104305
image-20251006192104305

信号量实际上就是计数器,通过PV操作控制我们的系统里面的资源的数量;

image-20251006192522333
image-20251006192522333

为什么信号量也是非常重要的通信机制,因为信号量通过PV操作对于我们的进程进行控制,比如告诉进程倍阻塞还是可以正常的进行执行之类的:

image-20251006192717117
image-20251006192717117

操作系统设置结构体对于这个里面涉及到的不同的通信方式进行管理和控制,每一个对象头部存储的都是这个对象的属性信息以及对应的key方便我们的操作系统进行管理和查看;

image-20251006192845322
image-20251006192845322

通过柔性数组控制,以及指针的控制,不同的IPC资源结构体的子类的实现,方便我们的操作系统内核指针指向自己需要的这个具体的结构体,拿到对应的结构体里面的具体内容(就是下面的这个对话里面说的这个强制类型转换的过程)

image-20251006193011639
image-20251006193011639

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.信号量
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档