赞
踩
iceoryx是基于共享内存实现通信的中间件,主要目的在于降低通信延迟、增加通信速度、减低目标设备CPU,据官方介绍,iceoryx的通信延迟在1us以内,并且不会随着payload的增加而增加。
iceoryx的通信实现主要依靠于其中心节点,iox_roudi,其主要工作如下:manager shared memory和payload shared memory的创建与分配、进程的注册与监控,内存资源的管理与调度,服务发现与更新,通信信息的输出(publisher与subscriber信息输出,应用程序吞吐量输出、通信进程信息输出),任何一个通信进程的创建需要向中心节点注册,分配对应的应用程序资源。对于整个通信来说,主要包括三个组件:publishser, subscriber和listener
SubscriberPortData结构体,同时根据publisher信息,进行两者关联;
整体的结构体如下图所示:
publisher的发送结构体中保存所有订阅者的数据接收队列地址,当publisher发送对应的数据时,publisher会先将存有数据的chunk存放到subscriber的ChunkReceiverData_t中,然后触发响应的条件变量,通知对应的listener接收消息,实现数据传输;根据官方的接收,其通信流程大体如下图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。