LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

Linux进程间通信(IPC)有几种方式

2023年5月23日 182点热度

Linux进程间通讯(IPC)有几种方法,下边将将简单的阐述一下:

一。管线(pipe)

管线是Linux支持的最初IPC形式,管线可分为无名管线,有名管线等。

(一)无名管线,它具有几个特征:

1)管线是半双工的,只能支持数据的双向流动;两进程间须要通讯时须要构建起两个管线;

2)无名管线使用pipe()函数创建,只能用于兄妹进程或则兄弟进程之间;

3)管线对于通讯的两端进程而言,实质上是一种独立的文件,只存在于显存中;

4)数据的读写操作:一个进程向管线中写数据,所写的数据添加在管线缓冲区的尾部;另一个进程在管线中缓冲区的腹部读数据。

(二)有名管线

有名管线也是半双工的unix系统 进程间通信,不过它容许没有亲缘关系的进程间进行通讯。具体点说就是,有名管线提供了一个路径名与之进行关联,以FIFO(先进先出)的方式存在于文件系统中。这样虽然是不相干的进程也可以通过FIFO相互通信,只要她们能访问早已提供的路径。

值得注意的是,只有在管线有读端时,往管路中写数据才有意义。否则,向管线写数据的进程会接收到内核发下来的SIGPIPE讯号;应用程序可以自定义该讯号处理函数,或则直接忽视该讯号。

二。讯号量(semophore)

讯号量是一种计数器,可以控制进程间多个线程或则多个进程对资源的同步访问,它常实现为一种锁机制。实质上,讯号量是一个被保护的变量,但是只能通过初始化和两个标准的原子操作(P/V)来访问。(P,V操作也常称为wait(s),signal(s))

三。讯号(Signal)

讯号是Unix系统中使用的最古老的进程间通讯的方式之一。操作系统通过讯号来通知某一进程发生了某一种预定好的风波;接收到讯号的进程可以选择不同的形式处理该讯号,一是可以采用默认处理机制—进程中断或退出,一是忽视该讯号,还有就是自定义该讯号的处理函数,执行相应的动作。

内核为进程生产讯号,来响应不同的风波,这种风波就是讯号源。讯号源可以是:异常,其他进程,终端的中断(Ctrl-C,Ctrl+等),作业的控制(前台,后台进程的管理等),分配额问题(cpu超时或文件过大等),内核通知(比如I/O就绪等),报案(计时器)。

四。消息队列(MessageQueue)

消息队列就是消息的一个数组,它容许一个或则多个进程向它写消息,一个或多个进程向它读消息。Linux维护了一个消息队列向量表:msgque,来表示系统中所有的消息队列。

消息队列克服了讯号传递信息少,管线只能支持无格式字节流和缓冲区受限的缺点。

五。共享显存(sharedmemory)

共享显存映射为一段可以被其他进程访问的显存。该共享显存由一个进程所创建,之后其他进程可以挂载到该共享显存中。共享显存是最快的IPC机制,但因为linux本身不能实现对其同步控制,须要用户程序进行并发访问控制,因而它通常结合了其他通讯机制实现了进程间的通讯,比如讯号量。

五。套接字(socket)

socket也是一种进程间的通讯机制,不过它与其他通讯方法主要的区别是:它可以实现不同主机间的进程通讯。一个套插口可以看做是进程间通讯的端点(endpoint)unix系统 进程间通信linux系统镜像下载,每位套插口的名子是惟一的;其他进程可以访问linux系统入门学习,联接和进行数据通讯。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: ipc linux信号 管道通信 进程间通信 通信
最后更新:2023年5月23日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
如何在Linux上安装视频播放器installvlc 晚上暴露于蓝光,睡眠质量大打折扣 如何安装便携式WiFi驱动程序?360wifi驱动的教程 CentOS云服务器搭建网站和CentOS搭建DNS解析服务 如何在linux上创建一个用户,减少不必要的沟通成本 如何在Linux系统中查看CPU信息使用lscpu命令行 linux服务器搭建ftp的6下安装vsftpd步骤及步骤 贵州工业职业技术学院求职意向期望工作地--诚聘英才 实验1Linux安装实验掌握虚拟机的使用 Linux系统tar命令的使用方法及使用命令教程 linux 开源nas系统 杰和科技NAS服务器媒体见面会在京召开 Android与Linux开发大不同 Linux系统软件安装包:自己动手,安装不用愁 车市新战局:汽车操作系统会复制智能手机的历史吗? Linux文件系统种类 如何卸载用源码包安装的软件?在线视频教程推荐 「职位」ASP.、PHP、Linux服务器集群开发 Torvalds:Linux内核开发的创新前景充满了热情 Linux文件系统的结构从终端窗口探索Linux目录树结构 卸载软件命令Linux.You
嵌入式Linux操作系统学习规划+LINUX路线,主攻江苏电信天翼校园客户端故障指引及解决办法(101)英特尔GMAGMA950显卡驱动程序/WIN8/8.1电信校园网宽带用USB数据线共享给电脑无线上网国防科大开源操作系统:它只是一个吉祥的象征10个常用Linux文本查看命令及其详细说明和使用示例Linux嵌入式系统内核裁剪与定制方法的介绍情况淘宝教育热卖C语言编程开发C++程序设计零基础入门课程从CPU、内存、硬盘、显卡等这些方面安装Linux系统的最低配置Linux通过chkconfig设置开机启动服务创建的几种常见方式(技术分析)Linux多线程的使用与操作系统的区别通常rar命令由一个主命令加若干选项(可选)构成RedHatLinux中自动运行程序中的应用linux 读写文件 关于Linux内核的神秘面纱,你知道几个?使用wget实用程序的有用命令行工具的使用怎么设置linux开机项自启动?方式是怎样的?嵌入式Linux应用层与驱动层要想学习关于Linux内核的交叉编译步骤和方法:步骤、方法STM32嵌入式linux开发流程及应用程序分析-STMlinux下有哪些文件在介绍lsof命令实用用法介绍?
做技术的人,从来没有思想的代码是垃圾代码 (用户管理实践)创建用户密码实践总结 (Linux基础知识)cp命令的所有参数和作用 Linux系统进程与文件相关的信息 Java对象持久化技术详解--孙卫琴Tomcat与JavaWeb开发技术详解 巨幕智屏怎么看电视直播给电视成功安装当贝市场 Linux游戏起源于最受欢迎的游戏平台:SteamOS介绍 版本号的信息有以下几个:内核版本号编译器发行系统版本号 Net编程自动调试监视工具(AutoFor.Net) Linux系统tar命令的使用方法及使用命令教程 redhat系列的Linux系统里的软件包,不能直接安装使用 红旗Linux桌面版4.0从软盘启动硬盘最详细的安装图解 Linux系统中的apt和apt-get的区别及解决办法! ​​Linux系统的工具链完整介绍-乐题库 bin是什么格式的文件怎么打开bin文件打开方法? iOS设备如何安装deb文件管理插件?越狱的方法 娃白天睡觉不太踏实,搞一个局域网实时监控,怎么办? 置(负载均衡系统)更新(2):LVS-TUN模型 个人笔记本安装Ubuntu20.04LTS下载地址 AMD的Ryzen处理器在Linux平台上的性能表现明显
标签聚合
操作 文件目录 软件 命令 内核 应用 文件 虚拟机 linux服务器 linux系统
书籍
课程
技术群
技术干货大合集↓
  • 2023年9月 / 83篇
  • 2023年8月 / 93篇
  • 2023年7月 / 94篇
  • 2023年6月 / 90篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.