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

    文章

    5706

    浏览量

    134396
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206736
  • IPC
    IPC
    +关注

    关注

    3

    文章

    306

    浏览量

    51348
收藏 人收藏

    评论

    相关推荐

    Linux系统中存在的各种进程通信机制

    是一个整数,是表示通信信道的名称,两个进程要提前约定好key。Size代表共享内存的大小。Flag用来表示创建的行为,flag IPC_CREAT 表示如果通信信道存在就直接获取它,如果还不存在就创建它,没有IPC_CREAT的
    发表于 08-26 09:50 1350次阅读

    Linux下进程通信

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

    进程通信

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

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

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

    进程通信的方式哪些?

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

    LINUX内核源代码情景分析

    相对于传统的UNIX IPC,插口,即SOCKET(有些资料中也称套接字)是更为一般的进程通信机制。它既适用于同一台计算机上的进程通信
    发表于 04-16 00:19 92次下载

    Linux信号处理机制

    信号是进程通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了
    发表于 01-05 10:48 1571次阅读

    linux操作系统下的进程通信

    的侧重点有所不同。前者对Unix早期的进程通信手段进行了系统的改进和扩充,形成了system V IPC,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socke
    发表于 10-31 11:15 0次下载

    Linux系统管道和有名管道的通信机制解析

    Linux 进程通信的几种主要手段。其中管道和有名管道是最早的进程通信机制之一,管道可用于具有亲缘关系
    发表于 11-07 10:51 0次下载

    VxWorks实时操作系统的新增功能及简介

    方式,同时支持同优先级任务间的分时间片调度)  任务间的同步  进程通信机制  中断处理  定时器和内存管理机制
    发表于 12-02 10:20 2342次阅读

    LPC2119简介 μC/OS-II在LPC2119上的移植

    μC/OS-II是一个完整的,可移植、可固化、可裁减的占先式实时多任务内核,它功能强大,支持56个用户任务,支持信号量、邮箱、消息队列等多种常用的进程通信机制。公开源代码,程序可读性强、移植性好,同时可免费获得。
    发表于 04-03 10:09 2574次阅读
    LPC2119简介 μC/OS-II在LPC2119上的移植

    进程间与线程间的通信方式

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

    linux 内核与用户空间通信之netlink使用方法

    Linux中的进程通信机制源自于Unix平台上的进程通信机制。Unix的两大分支AT&T Un
    发表于 05-10 14:29 507次阅读

    基于HCS12X系列单片机中的XGATE协处理器提高应用系统定时的精度

    μC/OS-II最多支持63个任务,并支持信号量、邮箱、消息队列等多种进程通信机制;同时,用户可以根据需求对内核中的功能模块进行裁剪。将μC/OS-II应用到嵌入式系统中,对于提高产品的质量、缩短开发周期和降低成本都有重要的意
    的头像 发表于 10-04 14:34 1879次阅读
    基于HCS12X系列单片机中的XGATE协处理器提高应用系统定时的精度

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

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