0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

进程间通信的机制有哪些

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-21 11:23 次阅读

进程间通信(interprocess communication,简称IPC)指两个进程之间的通信。系统中的每一个进程都有各自的地址空间,并且相互独立、隔离,每个进程都处于自己的地址空间中,因此相互通信比较难,Linux内核提供了多种进程间通信的机制。

同一个进程的不同模块(譬如不同的函数)之间进行通信都是很简单的,譬如使用全局变量等。

通常情况下,大部分的程序是不要考虑进程间通信的,因为大家所接触绝大部分程序都是单进程程序(可以有多个线程),对于一些复杂、大型的应用程序,则会根据实际需要将其设计成多进程程序。

进程间通信的机制有哪些?

Linux 内核提供了多种 IPC 机制,基本是从 UNIX 系统继承而来,而对 UNIX 发展做出重大贡献的两大主力 AT&T的贝尔实验室及 BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。

前者对 UNIX 早期的进程间通信手段进行了系统的改进和扩充,形成了“System VIPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接字(Socket,也就是网络)的进程间通信机制。Linux则把两者继承了下来,如下如所示:

图片

早期的 UNIX IPC 包括:管道、FIFO、信号;System V IPC 包括:System V 信号量、System V消队列、SystemV 共享内存;上图中还出现了 POSIX IPC,事实上,较早的 System V IPC 存在着一些不足之处,而 POSIX IPC 则是在 System VIPC 的基础上进行改进所形成的,弥补了 System V IPC 的一些不足之处。POSIX IPC 包括:POSIX 信号量、POSIX消息队列、POSIX 共享内存。

总结如下:

UNIX IPC:管道、FIFO、信号;

System V IPC:信号量、消息队列、共享内存;

POSIX IPC:信号量、消息队列、共享内存;

Socket IPC:基于 Socket 进程间通信。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    6024

    浏览量

    135950
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209329
  • IPC
    IPC
    +关注

    关注

    3

    文章

    346

    浏览量

    51902
收藏 人收藏

    评论

    相关推荐

    Linux下进程通信方式-管道

    Linux下进程通信方式-管道分享到: 本文关键字: linux 管道通信,linux 进程通信
    发表于 08-29 15:29

    Linux下进程通信

    华清远见嵌入式linux学习资料《Linux下进程通信》,通过前面的学习,读者已经知道了进程是一个程序的一次执行,是系统资源分配的最小单元。这里所说的
    发表于 09-04 10:07

    进程通信

    相信不管是学习嵌入式的还是单片机的进程通信都是需要学习的,找到的这个资料不错,至于是哪的还是老规矩 我就不说了避嫌 想看的自己看
    发表于 11-14 16:52

    进程通信的分类及机制中的数据结构

      进程通信就是在不同进程之间传播或交换信息,进程控制信息的交换称为低级
    发表于 08-05 08:09

    进程通信的方式哪些?

    进程通信的方式哪些?
    发表于 12-24 06:46

    怎样通过匿名管道去实现进程通信

    进程通信是指什么?怎样通过匿名管道去实现进程通信呢?哪些步骤?
    发表于 12-24 06:45

    哪些方式可以实现Linux系统下的进程通信

    哪些方式可以实现Linux系统下的进程通信进程与线程哪些不同之处呢?
    发表于 12-24 06:38

    进程通信之Linux下进程通信概述

    人们现在广泛使用的手机等方式。本章就是讲述如何建立这些不同的通话方式,就像人们多种通信方式一样。 Linux下的进程通信手段基本上是从UNIX平台上的
    发表于 10-18 16:21 0次下载

    进程与线程通信方式

    进程通信则不同,它的数据空间的独立性决定了它的通信相对比较复杂,需要通过操作系统。以前进程
    的头像 发表于 04-09 15:58 8919次阅读
    <b class='flag-5'>进程</b><b class='flag-5'>间</b>与线程<b class='flag-5'>间</b>的<b class='flag-5'>通信</b>方式

    Linux进程通信

    一、进程通信概述进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发
    发表于 04-02 14:46 511次阅读

    常见的进程通信方式

    关系的进程间使用。进程的亲缘关系,通常指父子进程关系。 有名管道: 有名管道也是,半双工的通信方式,但是它允许无亲缘关系
    的头像 发表于 10-08 15:48 1339次阅读
    常见的<b class='flag-5'>进程</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>方式

    进程通信方式总结

    进程通信(IPC): 进程通信的方式很多,这里
    的头像 发表于 11-09 09:25 751次阅读
    <b class='flag-5'>进程</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>方式总结

    如何实现一套linux进程通信机制

    我们知道linux的进程通信的组件管道,消息队列,socket, 信号量,共享内存等。但是我们如果自己实现一套进程
    的头像 发表于 11-10 14:56 631次阅读
    如何实现一套linux<b class='flag-5'>进程</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>的<b class='flag-5'>机制</b>

    进程通信的原理

    一.为什么进程需要通信? 1).数据传输 一个进程需要将它的数据发送给另一个进程; 2).资源共享 多个
    的头像 发表于 11-10 17:05 1117次阅读
    <b class='flag-5'>进程</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>的原理

    进程通信的消息队列介绍

    消息队列是一种非常常见的进程通信方式。
    的头像 发表于 04-08 17:27 308次阅读