揭秘Apollo 3.5开源框架的通信机制如何运作.doc
《揭秘Apollo 3.5开源框架的通信机制如何运作.doc》由会员分享,可在线阅读,更多相关《揭秘Apollo 3.5开源框架的通信机制如何运作.doc(5页珍藏版)》请在三一文库上搜索。
1、揭秘Apollo 3.5开源框架的通信机制如何运作共享内存是指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。在Linux中,每个进程都有属于自己的进程控制块(PCB)和地址空间(Addr Space),并且都有一个与之对应的页表,负责将进程的虚拟地址与物理地址进行映射,通过内存管理单元(MMU)进行管理。两个不同的虚拟地址通过页表映射到物理空间的同一区域,它们所指向的这块区域即共享内存。进程通信是指进程之间的信息交换。PV操作是低级通信方式(P操作和V操作,P表
2、示申请,V表示释放)。高级通信方式是指以较高的效率传输大量数据的通信方式。高级通信方法主要有以下三类:共享存储在通信的进程之间存在一块可直接访问的共享空间,通过对这片共享空间进行写/读操作实现进程之间的信息交换。在对共享空间进行写/读操作时,需要使用同步互斥工具(如P操作,V操作),对共享空间的写/读进行控制。消息传递系统在消息传递系统中,进程间的数据交换是以消息(Message)为单位的。程序员直接利用系统提供的一组通信命令(原语)来实现通信。操作系统隐藏了通信的实现细节,大大简化了通信程序编制的复杂性,因而获得了广泛的应用。在消息传递系统中,源进程可以直接或间接地将消息传送给目标进程。管道
3、通信系统管道通信是消息传递的一种特殊方式。所谓“管道”,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件。它是读写进程的一个特殊文件(外存,数据量大),允许按照先来先服务的方式传送数据,也能使进程同步执行。以下,ENJOY用户基于Cyber RT进行开发时,会将自己的模块抽象为一系列的Component。这些Component既可以加载到同一个进程内运行,也可以加载到不同进程中运行。目前,同主机不同进程的Component间默认通过共享内存进行通信。相比于其他进程间通信方式,共享内存具备以下几个优点:由多个进程共享,适合多进程读写;通信过程中无系统调用,减少
4、了运行态切换的开销;没有用户内存和内核内存之间的数据拷贝;UNIX系统上有着各式各样的IPC工具。根据工具的功能特点,可以将它们分为三类:UNIX系统上IPC的结构图communication: 这类工具关注的是进程之间的数据传输;signal: 信号既可以用于同步,还可以用于通信(传递signal number)。实时信号上还可以绑定数据。synchronization: 这类工具关注的是进程之间操作的同步;当然,不同工具的适用场景有所不同。比如pipe只能用于同一台机器上的进程间通信,而socket却可以用于网络通信。对于communication工具而言,我们可以将其分为两类:data
5、transfer: 这类工具一般需要在用户空间和内核空间之间进行两次数据传输。以pipe为例,ProcessA在写入数据的时候,需要将数据从用户空间拷贝至内核空间;ProcessB在读取数据时,需要将数据从内核空间拷贝至用户空间。Process的数据传输shared memory: 共享内存允许进程通过将数据放到进程间共享的一块内存中来完成信息交换。在通信过程中,一方面不需要系统调用,另一方面也没有用户空间和内核空间之间的数据传输。因此共享内存通信速度比其他data transfer工具要快。自动驾驶系统中,一些传感器的消息较大,例如点云,图像等。另外,录制全量数据时,消息总的频率高(2000
6、Hz3000Hz),传输量大(约7GBytes/s)。因此,Cyber RT采取共享内存来进行进程间通信。Cyber RT进程间通信主要有以下三个步骤:消息写入:发送方将消息写入共享内存区域;同步:发送方通知接收方有新消息可读;消息读取:接收方从共享内存区域读取消息;下面介绍Cyber RT共享内存区域和通知机制的设计。Cyber RT中所有消息都有对应的channel来标识,比如感知模块输出的障碍物消息的channel为/apollo/perception/obstacles。一个channel可能有多个writer和多个reader。为了减少内存拷贝,每个channel只有唯一的一块共享内
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 揭秘Apollo 3.5开源框架的通信机制如何运作 揭秘 Apollo 3.5 框架 通信 机制 如何 运作
链接地址:https://www.31doc.com/p-3442149.html