System v 和 Posix作用和区别(进程间通信IPC)

Posix与System V IPC 三种类型的IPC合称为"Posix IPC":Posix消息队列;Posix信号量;Posix共享内存区;三种类型的IPC和称为"":System V消息队列。System V信号量。System V共享内存区。 阅读详情
System v 和 Posix

当我们在linux系统中进行进程间通信时,会有比如共享内存(shm),信号量(sem),消息队列(msg)等方式时,会发现有System v以及POXIS两种不同的类型。

我们探究一下System v和Posix到底代表着什么意义又有什么区别。

Posix:

Posix(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该标准是基于现有的UNIX 实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。它是在1980 年早期一个UNIX 用户组(usr/group)的早期工作的基础上取得的。该UNIX 用户组原来试图将AT&T 的系统V 和Berkeley CSRG的BSD 系统的调用接口之间的区别重新调和集成,从而于1984 年产生了/usr/group 标准。1985 年,IEEE操作系统技术委员会标准小组委员会(TCOS-SS)开始在ANSI 的支持下责成IEEE 标准委员会制定有关程序源代码可移植性操作系统服务接口正式标准。到了1986 年4 月,IEEE 就制定出了试用标准。第一个正式标准是在1988 年9 月份批准的(IEEE 1003.1-1988),也既以后经常提到的POSIX.1 标准。

System V:

System V, 曾经也被称为 AT&T System V,是Unix操作系统众多版本中的一支。它最初由 AT&T 开发,在1983年第一次发布。一共发行了4个 System V 的主要版本:版本1、2、3 和 4。System V Release 4,或者称为SVR4,是最成功的版本,成为一些UNIX共同特性的源头,例如 ”SysV 初始化脚本“ (/etc/init.d),用来控制系统启动和关闭,System V Interface Definition (SVID) 是一个System V 如何工作的标准定义。

AT&T 出售运行System V的专有硬件,但许多(或许是大多数)客户在其上运行一个转售的版本,这个版本基于 AT&T 的实现说明。流行的SysV 衍生版本包括 Dell SVR4 和 Bull SVR4。当今广泛使用的 System V 版本是 SCO OpenServer,基于 System V Release 3,以及SUN Solaris 和 SCO UnixWare,都基于 System V Release 4。

System V 是 AT&T 的第一个商业UNIX版本(UNIX System III)的加强。传统上,System V 被看作是两种UNIX"风味"之一(另一个是 BSD)。然而,随着一些并不基于这两者代码的UNIX实现的出现,例如 Linux 和 QNX, 这一归纳不再准确,但不论如何,像POSIX这样的标准化努力一直在试图减少各种实现之间的不同。

使用

照上面所说的System V和POXIS是一种应用于系统的接口协议,POXIS相对于System V可以说是比较新的标准,语法相对简单。

在linux/unix系统编程中支持System V和POXIS。我们常见的一个名词就是POSIX IPC和

System V IPC。IPC的全称是Inter-process Comminication,就是进程间通信。

在POSIX IPC中,在POSIX IPC中,每个IPC对象是有名称的,而且名称是一个很重要的概念,posix ipc使用ipc的名称作为ipc的标识。mq_open sem_open shm_open三个函数的第一个参数就是这个名称,这个名称不一定是在文件系统中存在的名称。 要使用IPC对象,需要创建或者打开,这与文件操作类似,主要是使用mq_open、sem_open、shm_open 函数操作。在创建或者打开ipc对象时需要指定操作的mode,例如O_RONLY、O_WRONLY、O_RDWR、O_CREAT、O_EXCL 等,IPC对象是有一定权限的,与文件的权限类似。

在System V IPC中,System v ipc中有一个重要的类型是key_t,在msget、semget、shmget函数操作中都需要利用这个类型是参数。

POSIX 和 System V IPC的区别 POSIX 和 System V 是两种不同的进程间通信(IPC)机制,它们在以下方面存在区别:msggetmsgsndmsgrcvsemgetsemopshmgetshmatmq_openmq_sendmq_receivesem_opensem_waitsem_post。 阅读详情

相关推荐

System V IPC vs POSIX IPC

TIP: What are the differences between System V IPC and POSIX IPC ? Why do we have two standards ? How to decide which IPC functions to use ? ANS: Both have the same basic tools -- semaphores, shar...

guiwin的博客 527

【Linux】[万字] 详解 System V: 共享内存原理、创建及使用

我们知道, 进程间通信的前提是:先让不同的进程看到同一份资源 Linux的管道通信给进程间看到的同一份资源是:管道文件 而 共享内存 给进程间看到的同一份资源是:物理内存

七月.cc的博客 2750

嵌入式学习DAY27 --- System V 共享内存 ,POSIX 信号量 ,POSIX 消息队列_posix 共享内存 嵌入式平台

一、System V 共享内存二、POSIX 信号量三、POSIX 消息队列(1)在多任务操作系统中,多个进程/线程会同时运行。多个任务可能为了完成同一个事情而相互协作,这样就形成了任务之间的同步关系。同样,不同任务之间为了争夺有限的系统资源(硬件或软件资源)会进入竞争状态,这样就是任务之间的互斥关系。(2)任务之间的互斥与同步关系存在的根源在于临界资源。临界资源是指在同一个时刻只允许有限个(通常只有一个)任务可以访问(读)或者修改(写)的资源。

2401_84248681的博客 1346

System V与POSIX的区别与联系

System V与POSIX的相关说明

威桑的博客 1303

IPC之八:使用 POSIX 共享内存进行进程间通信的实例

IPC是Linux编程中一个重要的概念,IPC有多种方式,本文主要介绍共享内存(Shared Memory),因为没有像管道、消息队列这样的中介介入,所以通常认为共享内存是迄今为止最快的IPC方式;Linux既支持UNIX SYSTEM V的共享内存段,也支持POSIX的共享内存对象,本文针对POSIX共享内存对象,本文给出了多个具体的实例,每个实例均附有完整的源代码;本文的实例中涉及多进程编程和号处理等,阅读本文还需要一些基本的内存管理知识,本文对 Linux 编程的初学者有一些难度。

whowin 1412

宝塔面板+pbootCMS建站全流程:从服务器选购到上线优化(附常见问题排查)

本文提供了一份详尽的宝塔面板与pbootCMS建站实战指南。内容涵盖从云服务器选购、宝塔面板部署与安全加固,到pbootCMS安装、权限配置、数据库连接等核心步骤。同时深入讲解了PHP环境优化、Nginx伪静态设置、缓存开启等性能与SEO优化技巧,并附有常见问题排查与后期维护建议,帮助用户高效、稳健地完成专业网站构建。

e4f5g6h的博客 658

POSIX和system v

POSIX和system v都是一种应用于系统的协议,POSIX IPC和system v IPC可以用于进程间通讯 1.函数上的区别:System V函数名没有下划线,POSIX函数名有下划线 2.对信号量操作的方式: POSIX IPC:使用sem_wait()对信号量减1、sem_post()对信号量的加1 system V: 使用semget()获取信号量...

m0_49036370的博客 1203

FairyGUI编辑器自定义菜单扩展插件

本文涉及到的软件有:FairyGUI,VSCode代码环境涉及到了:LuaVSCode插件:EmmyLua在编写FairyGUI编辑器菜单前,了解一下FairyGUIEditor的API会有效的帮助我们解决很多问题。FairyGUI的扩展是通过编辑器自带的插件功能实现的,插件中我使用的是lua环境模板。导入编辑器的LuaAPI,文件可以在FairyGUI-Editor源码的插件目录中找到。接下来将通过功能来说明对应的API作用。

Aili_Xiao的博客 4496

初识linux之System V通信标准

讲解了linux中的system V进程间通信标准中的共享内存、消息队列和信号量的概念及使用

Masquerena114514的博客 1377

【Qt】Qt5.15在线安装避坑指南:从代理配置到组件选择的完整实践

本文详细介绍了Qt5.15在线安装的全流程避坑指南,包括代理配置、组件选择和常见问题解决方案。通过使用Fiddler工具和国内镜像源,可显著提升下载速度。文章还提供了组件选择的黄金法则和安装后的验证步骤,帮助开发者高效完成Qt5.15的安装与配置。

weixin_42550052的博客 269

【云原生技术】sonar的官方web接口,获取质量阀结果的接口

以下是一个示例思路,说明如何调用 SonarQube 的质量阀查询接口并在前端展示“哪些条件没过”。假设前端使用 AJAX 或 fetch 从后端接口拿到 SonarQube 返回的 JSON(或直接前端请求 SonarQube API),前端再把解析结果展示给用户。测试覆盖率 (Coverage) 当前仅有 60%,未满足最低 80% 的要求,需要补充测试或优化以提升覆盖率。接口),就会返回相应的质量阀状态信息;里使用它来查询当前质量阀(质量门)的状态。,你用它即可获取该次分析的质量阀状态。

weixin_46453070的博客 1278

Linux IPC:System V和POSIX区别汇总整理

虽然 System V IPC 和 POSIX IPC 都提供了进程间通信的基本功能,但 POSIX IPC 通常被认为更加现代、一致并且易于使用。POSIX IPC 通常更适合于新的开发项目,而 System V IPC 由于其历史地位,在某些旧系统中仍然有其独特的作用。选择哪种 IPC 机制取决于具体的应用场景、系统环境和个人偏好。

极客代码 1198

BevFusion (5):逐行代码详解

论文中给出了Bevfusion的架构图,它的输入是多视角的相机和点云图,经过两个特定的head,分别用于做检测任务和分割任务。图1 Bevfusion 结构图Bevfusion因为有两个模态的输入:多视角相机和点云,所以对应两个分支:相机分支和点云分支。相机分支:输入6个视角的图片后,提取特征,然后经VT(View Transformer)转换之后得到相机的Bev特征。激光雷达分支:输入点云数据,经过Encoder编码得到体素化Lidar特征,然后沿z方向展平,得到Lidar Bev特征。

@bangbang的博客 3714

System V IPC信号量和POSIX信号量详解

定义了ListNode结构体来表示链表的节点,包含一个int类型的数据成员用于存放生产者生产的数据,以及一个指向下一个节点的指针成员。在Linux上,信号量API有两组,一组是System V IPC信号量(信号量),另一组是我们要讨论的POSIX信号量。这两组接口很相似,且语义完全相同,但不保证能互换。进化版的互斥锁(1 --> N)由于互斥锁的粒度比较大,如果我们希望在多个线程间对某一对象的部分数据进行共享,使用互斥锁是没有办法实现的,只能将整个数据对象锁住。

m0_74795952的博客 948

电气:蒙特卡洛1000个风光场景并通过削减法|聚类法得到几个典型场景(matlab\python实现)

    个人电气目录传送门:学好电气全靠它,个人电气博文目录(持续更新中…)     本文内容包括22页(代码和一些自己对风光的观点) 提示:专栏解锁后,可以查看该专栏所有文章,划算。 文章目录一、理论依据1.风电DG出力概率模型1.2光伏DG出力概率模型1.3对风光的认识二、蒙特卡洛模拟1000个风光场景、并通过削减法得到5个典型风电场景 (Matlab 版程序)三、蒙特卡洛模拟1000个风光场景、并通过聚类法得到5个典型

总裁余(余登武)博客 7680

芯擎SEC1000芯片参数详细介绍

随着龙鹰一号的不断进化和应用,未来的智能座舱将不仅仅是显示和控制的集成,更是人与车之间的一种默契和无缝交互的体现。在汽车行业迈向智能化和电动化的浪潮中,座舱已不仅仅是一个驾驶者的操作空间,而是逐渐演变为一个集娱乐、信息、控制于一体的智能交互平台。今天的汽车不仅需要强劲的动力和炫酷的外观,更需要一颗强大而智能的“心脏”来支撑复杂的座舱体验和安全驾驶需求。想象一下,未来的汽车不再仅仅是交通工具,它将成为你的移动私人管家,了解你的习惯,甚至提前预测你的需求。让我们一起走进龙鹰一号的世界,探索智能座舱的无限可能!

weixin_43199439的博客 1722

POSIX和System V的比较/IPC函数汇总

当我们在linux系统中进行进程间通信时,会发现例如共享内存,信号量,消息队列等方式时,会发现有System v以及POXIS两种类型。因此,我们探究一下System v和POXIS到底代表着什么意义。 POSIX POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该标准

哒哒的博客 1万+

Coze 打通飞书多维表格,实现数据增删改查操作实战详解

基于Coze 打通飞书多维表实现数据录入系统实战详解

congge 5779

System V IPC与POSIX IPC对比

System V IPC 是UNIX System V操作系统引入的一组进程间通信机制,包括消息队列、信号量和共享内存。这些机制在创建时会产生一个非负整数的键,用于标识IPC对象。IPC对象的生命周期超过了原始进程的生命周期,除非显式删除,否则即使所有进程都已关闭,它们也将持续存在。POSIX IPC 是基于POSIX标准的进程间通信机制,包括消息队列、信号量和共享内存。POSIX IPC 对象在创建时会产生一个字符串名称,用于标识IPC对象。

Dontla的博客 1817

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

POSIX消息队列与System V消息队列

是一个结构体,用于描述当消息队列中有新消息时,如何通知进程。:通知方法,取值如下:SIGEV_NONE:不发送任何通知。:发送一个信号事件发生时,将sigev_signo指定的信号发送给指定的进程;:事件发生时,内核会(在此进程内)以sigev_notify_attributes为线程属性创建一个线程,并让其执行sigev_notify_function,并以sigev_value为其参数:当为时,指定要发送的信号。:通知时传递的数据,类型为。:当为时,指定的线程函数。:当为。

v13111329954的博客 1970

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

System V IPC信号量和POSIX信号量的区别与联系

在Linux上,信号量API有两组,一组是System V IPC信号量,另一组是POSIX信号量。

m0_74795952的博客 1071

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

System V 与 POSIX 简介与对比

当我们在 Linux 系统中进行进程间通信时,例如信号量,消息队列,共享内存等方式,会发现有System V以及POSIX两种类型。今天我们就来简单介绍下它们。 POSIX: POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该标准是基于现有的UNIX 实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。它是在1980 年

qq295109601的博客 5116

POSIX和System V的各类IPC函数接口

当我们在linux系统中进行进程间通信时,会发现例如共享内存,信号量,消息队列等方式时,会发现有System v以及POXIS两种类型。因此,我们探究一下System v和POXIS到底代表着什么意义。一.POSIX POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该...

肥嘟嘟的左卫门 959

【Linux开发七】进程间通信|无名管道|命名管道|System V 消息队列|System V 信号量|System V 共享内存|POSIX消息队列|POSIX信号量|POSIX共享内存

进程间通信(简称IPC),指的是多个进程间进行数据交换和信息传递,在Linux系统下,每个进程都有着自己独立的地址空间和资源,想要进行通信就需要IPC机制。进程间通信目的:数据交换,资源共享,进程同步,传递消息。进程间通信的基本原理:不同的进程能访问和操作同一个内存空间。进程间通信的分类:有名管道和无名管道、System V消息队列,信号量,共享内存、POSIX 消息队列,信号量,共享内存、socket。System V和POSIX的主要区别在于System V底层使用命名空间。

2501_93649289的博客 943

IPC之System V vs POSIX

关于 SYSTEM V 和 POSIX的接口说明

老嵌入式程序员了,2009年入坑至今 1747
上一篇: git add -A和 git add . git add -u作用和区别
下一篇: git的传输协议及各自优缺点(本地传输协议,ssh,http,git)
山农
博客等级 码龄10年 44粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值