首页 > 嵌入式基础教程 > 基础知识

8.1Linux下进程间通信概述

在上一章中,读者已经知道了进程是一个程序的一次执行。这里所说的进程一般是指运行在用户态的进程,而由于处于用户态的不同进程之间是彼此隔离的,就像处于不同城市的人们,它们必须通过某种方式来进行通信,例如人们现在广泛使用的手机等方式。本章就是讲述如何建立这些不同的通话方式,就像人们有多种通信方式一样。

Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的。而对UNIX发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间的通信方面的侧重点有所不同。前者是对UNIX早期的进程间通信手段进行了系统的改进和扩充,形成了“systemVIPC”,其通信进程主要局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。而Linux则把两者的优势都继承了下来,如图8.1所示。

图8.1进程间通信发展历程

n UNIX进程间通信(IPC)方式包括管道、FIFO以及信号。

n SystemV进程间通信(IPC)包括SystemV消息队列、SystemV信号量以及SystemV共享内存区。

n Posix进程间通信(IPC)包括Posix消息队列、Posix信号量以及Posix共享内存区。

现在在Linux中使用较多的进程间通信方式主要有以下几种。

(1)管道(Pipe)及有名管道(namedpipe):管道可用于具有亲缘关系进程间的通信,有名管道,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。

(2)信号(Signal):信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一样的。

(3)消息队列(MessgeQueue):消息队列是消息的链接表,包括Posix消息队列SystemV消息队列。它克服了前两种通信方式中信息量有限的缺点,具有写权限的进程可以按照一定的规则向消息队列中添加新消息;对消息队列有读权限的进程则可以从消息队列中读取消息。

(4)共享内存(Sharedmemory):可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据的更新。这种通信方式需要依靠某种同步机制,如互斥锁和信号量等。

(5)信号量(Semaphore):主要作为进程之间以及同一进程的不同线程之间的同步和互斥手段。

(6)套接字(Socket):这是一种更为一般的进程间通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛。

本章会详细介绍前5种进程通信方式,对第6种通信方式将会在第10章中单独介绍。

换一批

延伸阅读

[猎聘集] 在美国,退休的电子工程师能干点啥?

在美国,退休的电子工程师能干点啥?

在每一种专业领域中,都有一些受到广泛认可组织,其所传承的智识深植于一些脾气古怪且自视甚高的“老家伙”脑中。电子工程领域也不例外。......

关键字:美国 退休 电子工程师

[真心话] 在电子工程的世界里,别拿一分钱不当回事!

在电子工程的世界里,别拿一分钱不当回事!

一分钱,在现在物价飞涨的年代,早已经退出了货币交流的的历史舞台,成为财务意义上的最小计量单位。当年“我在马路边,捡到一分钱”的童谣,不会再发生了,一分钱,已经买不了任何东西。......

关键字:电子工程师 电子物料 价格

[真心话] 月薪14K到经济自由,电子工程师绝好的标尺性参照经历

月薪14K到经济自由,电子工程师绝好的标尺性参照经历

2009年6月,在经济危机闹的最凶,工作最难找的时候,我辞掉了江苏常州14K月薪非常安逸的工作,回到了阔别3年的北京。信心满满的准备开始一段新的旅程。......

关键字:电子工程师 经历

[真心话] 电子工程师“修炼”的五层境界,你修炼到第几层了?

电子工程师“修炼”的五层境界,你修炼到第几层了?

对于电路原理,没有时间和精力去关注,一般以抄别人电路为主,比较喜欢有案例电路的书;......

关键字:电子工程师 境界

[疯狂史] 很久很久以前,有四个电子工程师去相亲...

很久很久以前,有四个电子工程师去相亲...

话说公司体察民情,体恤员工,为了能让电子工程师早日解决个人问题,所以公司特意批准电子工程师们一天‘相亲假’。为了此次相亲,电子工程师可是足足‘谋划’了三天。从挑选约会地址,策划聊天话题,更是装扮了一番行头,正可谓是万事俱备只欠东风。就为到时......

关键字:电子工程师 相亲

[真心话] 如何保持电子工程师的创造力:永远不要怕脏了自己的手

如何保持电子工程师的创造力:永远不要怕脏了自己的手

有年轻的工程师问,我目前会的51,stm,的控制编程,但对外围电路设计很陌生,想开发,但总是因为各种问题而失败,模电基础较差,但个人觉得实用比较好,目前看到的教材上理论居多,另外会画板子,焊接技术一般,现在想知道后面的路怎么走?......

关键字:电子工程师 创造力

[真心话] 在美国的电子工程师看中国电子行业,为什么不受发达国家待见?

在美国的电子工程师看中国电子行业,为什么不受发达国家待见?

首先声明我承认中国有很多问题。但我个人是不太相信那种把中国的各种问题一罗列,就得出结论迟早要完之类结论的。这种论证太廉价。要说问题,三四十年前问题更多,八十年代的公知讲喊的是“河殇”,但中国没有完蛋,还是走过来了。风物长宜放眼量。......

关键字:美国 电子工程师 中国 电子行业

[真心话] 06年,我离开了华为--华为电子工程师离职后感悟

06年,我离开了华为--华为电子工程师离职后感悟

06年7月份的时候我情绪一度陷入“低谷”,项目进入“白热”阶段,成天加班,工作和生活乱成一团,脑袋也浆糊了……也是在这个时候我跟主管提出我现在工作和生活很混乱,情绪也很低落,等项目结束后我会考虑辞职。......

关键字:华为 电子工程师 离职

[真心话] 电子工程师眼中的软件同行儿们

电子工程师眼中的软件同行儿们

现在继续说说跟电子通讯算是隔壁的软件行业,其实这个行业我并不真的知道多少,只是很多学电子的也很大可能混进这个行业,所以顺带说说。......

关键字:电子工程师 软件工程师
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14