IT技术互动交流平台

嵌入式 Linux进程间通信(五)进程间通信简介

作者:佚名  来源:IT165收集  发布日期:2016-07-18 20:35:19

一、进程间通信简介
    Linux的进程通信方式基本上是从Unix平台上的进程通信方式继承而来的。在Unix发展过程中,贝尔实验室和BSD(加州大学伯克利分校的伯克利软件发布中心)是Unix发展的主要贡献者,但两者在进程间通信方面的侧重点有所不同。贝尔实验室对Unix早期的进程间通信方式进行了系统的改进和扩充,形成了 “system V IPC”,通信进程局限在本地计算机内;BSD则跳过了进程通信局限在本地计算机的限制,形成了可以在计算机间进行通信的基于套接口(socket)的进程间通信机制。Linux则继承了贝尔实验室的system V IPC和BSD Socket两者进程间通信机制。
    Linux进程间通信方式包括:管道、FIFO、信号、System V消息队列、System V信号灯、System V共享内存、Socket通信。
进程间通信的目的:
A、数据传输:进程间需要相互传输数据
B、共享数据:多个进程间操作共享数据
   C、通知事件:进程间需要通知某个事件的发生
   D、资源共享:多个进程之间共享同样的资源,需要内核提供锁和同步机制
   E、进程控制:有些进程需要完全控制另一个进程的执行(如Debug进程)
二、多进程编程的优缺点
1、优点
A、每个进程互相独立,不影响主程序的稳定性,子进程崩溃没关系
B、通过增加CPU,就可以容易扩充性能
C、可以尽量减少线程加锁/解锁的影响,极大提高性能
D、每个子进程都有4GB地址空间和相关资源,总体能够达到的性能上限非常大
2、缺点
A、逻辑控制复杂,需要和主程序交互
B、需要跨进程边界,如果有大数据量传送,就不太好,适合小数据量传送、密集运算
C、多进程调度开销比较大
 

Tag标签: 进程   嵌入式   简介  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规