Linux进程间几种通信机制

一.  简介

经过前一篇文章的学习, 我们知道Linux下有两种标准:system V标准和 Posix标准。

System V 和 POSIX 标准是操作系统提供的接口标准,它们规定了操作系统应该如何实现一些基本功能,比如线程、进程间通信、文件处理等。

本文简单学习一下,进程之间的几种通信机制。

二.  Linux进程间的几种通信机制

Linux下进程间有五种通信机制,具体如下图:

可以看出,Linux下进程间通信包括:

管道:分为无名管道和有名管道。

无名管道:用于实现父子进程之间的通信。

有名管道:有名管道允许无亲缘关系的进程之间进行通信。

消息队列:消息队列是消息的链接表,它允许进程之间通过发送和接收消息来进行通信。消息队列被内核维护,保证了消息的独立性和安全性。

消息队列不适合比较大数据的传输,因为在内核中每个消息体都有一个最大长度限制,同时所有消息队列包含的全部消息体的总长度也有上限。在Linux内核中,宏定义MSGMAX以字节为单位定义了一条消息的最大长度,宏定义MSGMNB以字节为单位定义了一个队列的最大长度。

消息队列通信过程中,存在用户态与内核态之间的数据拷贝开销(通信不及时)。进程在写入数据到内核中的消息队列时,会发生从用户态拷贝数据到内核态的过程,同理,另一进程读取信息时会发生从内核态拷贝到用户态的过程。

共享内存:在共享内存区中交换信息(用于共享大量数据)。

使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低设计的。往往与其它通信机制,如信号量结合使用, 来达到进程间的同步及互斥。

套接字:例如网络通信,TCP/UDP通信。可用于不同机器之间的进程间通信。

信号:信号是在软件层次上对中断机制的一种模拟,用于通知接收进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/697641.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过金山和微软虚拟打印机转换PDF文件,流程方法及优劣对比

文章目录 一、WPS/金山 PDF虚拟打印机1、常规流程2、PDF文件位置3、严重缺陷二、微软虚拟打印机Microsoft Print to Pdf1、安装流程2、微软虚拟打印机的优势一、WPS/金山 PDF虚拟打印机 1、常规流程 安装过WPS办公组件或金山PDF独立版的电脑,会有一个或两个WPS/金山 PDF虚拟…

校园志愿者管理系统带万字文档

文章目录 校园志愿者管理系统一、项目演示二、项目介绍三、10000字论文参考四、部分功能页面五、部分代码展示六、底部获取项目源码和万字论文参考(9.9¥带走) 校园志愿者管理系统 一、项目演示 校园志愿者管理系统 二、项目介绍 基于Spring…

vue3中通过自定义指令实现loading加载效果

前言 在现代Web开发中,提升用户体验一直是开发者们追求的目标之一。其中,一个常见的场景就是在用户与应用程序进行交互时,特别是当进行异步操作时(如网络请求),为用户提供即时的反馈,避免用户因…

利用香港多IP服务器进行大数据分析的潜在优势?

利用香港多IP服务器进行大数据分析的潜在优势? 在当今数据驱动的时代,大数据分析已经成为企业获取竞争优势的不二选择。而香港作为一个拥有世界级通信基础设施的城市,提供了理想的环境来部署多IP服务器,从而为大数据分析提供了独特的优势。…

[数据结构1.0]选择排序

鼠鼠前面的博客介绍过选择排序是常见的排序算法,选择排序有但不限于直接选择排序和堆排序!那么鼠鼠今天浅谈一下选择排序! 鼠鼠本博客用排升序来介绍选择排序! 目录 1.直接选择排序 1.1.直接选择排序 1.2.直接选择排序特性 2…

20240513,常用算法(查找,排序,拷贝替换)

做着一些和考试无关的事情 常用查找算法——续 FIND_IF find_if //按条件查找元素&#xff0c;返回迭代器POS / END()find_if(beg,end,_Fred) _Fred函数或谓词&#xff08;返回BOOL类型的仿函数&#xff09; #include<iostream> #include<string> #includ…

Raft论文阅读笔记+翻译:In Search of Understandable Consensus Algorithm

In Search of Understandable Consensus Algorithm 摘要 Raft是一种管理复制日志的共识算法。它产生与&#xff08;多&#xff09;Paxos等效的结果&#xff0c;并且与Paxos一样高效&#xff0c;但其结构与Paxos不同。这使得Raft比Paxos更易理解&#xff0c;也为构建实际系统提供…

​​​【收录 Hello 算法】第 6 章 哈希表

目录 第 6 章 哈希表 本章内容 第 6 章 哈希表 Abstract 在计算机世界中&#xff0c;哈希表如同一位聪慧的图书管理员。 他知道如何计算索书号&#xff0c;从而可以快速找到目标图书。 本章内容 6.1 哈希表6.2 哈希冲突6.3 哈希算法6.4 小结

爱普生推出适用于物联网小尺寸温补晶振TG1612SLN

爱普生推出一款小尺寸温补晶振TG1612SLN&#xff0c;之前推出的小尺寸温补晶振TG2016SLN&#xff0c;封装2016已经是很小了&#xff0c;而TG1612SLN的尺寸仅为1.6x1.2x0.45毫米&#xff0c;不得不佩服爱普生的研发能力。 温度补偿晶体振荡器TG1612SLN使用爱普生开发和制造…

企业级WEB服务Nginx安装

企业级WEB服务Nginx安装 1. Nginx版本和安装方式 Mainline version 主要开发版本,一般为奇数版本号,比如1.19Stable version 当前最新稳定版,一般为偶数版本,如:1.20Legacy versions 旧的稳定版,一般为偶数版本,如:1.18Nginx安装可以使用yum或源码安装,但是推荐使用源码编译安…

Ngnix VTS模块添加和测试

目录 VTS模块介绍 上传软件包xftp/lrzsz 执行脚本 添加vts的配置 测试 测试&#xff1a;nginx.conf配置文件是否有语法错误 测试&#xff1a;windows机器上访问效果 VTS模块介绍 Nginx VTS模块&#xff08;nginx Virtual Host Traffic Status Module&#xff09;是一个第三…

GLU(Gated Linear Unit) 门控线性单元

文章目录 一、RNN二、GLU2.1 整体结构2.2 输入层(Input SentenceLookup Table)2.3 中间层(ConvolutionGate)2.4 输出层(Softmax)2.5 实验结果2.6 实现代码 三、RNN与GLU的对比参考资料 GLU可以理解为能够并行处理时序数据的CNN网络架构&#xff0c;即利用CNN及门控机制实现了RN…