• 正文
  • 相关推荐
申请入驻 产业图谱

飞凌嵌入式ElfBoard-进程间的通信

05/15 11:05
304
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

进程间通信(interprocess communication,简称 IPC)是指在操作系统中,不同进程之间的数据交换和消息传递的方式。IPC提供了多种机制来实现此功能,进程间通信包含信号、管道、消息队列、信号量、共享内存、和套接字等方式,每种机制适用于不同的场景。

⚫信号:可以异步通信,并且具有轻量级的特点,但是不能传递复杂的数据,只能携带少量信息。

⚫管道:普通管道只能在父子进程之间单向通信,命名管道才能用作无亲缘关系进程的通信,数据以字节流形式顺序的传递,读写还需要做好同步管理,不然可能会阻塞。

⚫消息队列:可以传递任意类型的消息,而且可以通过队列有序存储,可以按消息的优先级进行管理,而且支持任意进程之间的双向通信,但是内核维护队列的开销比较大;

⚫信号量:高效的进程同步机制,适合资源的共享和互斥控制,信号量的增减是原子操作,避免了竞争,常用于解决并发问题和进程的互斥,不过只能传递同步信号,不能传递数据。

⚫共享内存:共享内存允许多个进程直接访问同一块内存空间,因此是最快的通信方式,效率极高,特别适合大规模数据传输;但是共享内存本身不提供同步机制,需要配合信号量或其他方式防止竞争条件,需要手动管理同步和内存的读写,使用复杂。

⚫套接字:支持不同主机之间通过网络进行通信,支持面向连接TCP 和无连接的 UDP 两种通信模式,可以传递数据流、文件、甚至远程通信;相对于其他 IPC 方式,通信的复杂性较高,效率略低。

进程间的通信有两种不同的机制System V 和 POSIX;较早的 System V IPC 存在着一些不足之处,而 POSIX IPC 则是在 System V IPC 的基础上发展而来,旨在解决 System V IPC 中的一些不足之处。

⚫System V IPC:提供了一套较为复杂的 API。函数名称不够直观,使用起来相对繁琐。IPC 资源的标识符由系统自动分配,管理较为复杂。

⚫POSIX IPC:提供了更简洁和直观的 API,函数名称更易于理解。支持命名功能,IPC 资源可以通过名称来访问。更符合现代编程习惯,易于使用和维护。

飞凌嵌入式

飞凌嵌入式

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。收起

查看更多

相关推荐