基于OKL4的嵌入式虚拟化平台跨Cell数据传输系统的制作方法

文档序号:8339472阅读:457来源:国知局
基于OKL4的嵌入式虚拟化平台跨Cell数据传输系统的制作方法
【技术领域】
[0001]本发明涉及计算机科学中在嵌入式硬件平台下的系统虚拟化领域,特别是基于L4系列微内核实现的0KL4平台上各Cell间的域间通信技术。
【背景技术】
[0002]虚拟化技术是一种计算机系统抽象技术,一般来说,它的核心目标是实现多系统平台到单一物理平台的虚拟化映射,同时无需考虑系统平台的同构、异构属性。这样所带来的好处是底层的物理资源能够得到充分利用,从而帮助企业降低资源成本以及维护成本。而近年来,随着嵌入式设备处理器性能的不断增强以及虚拟化技术的不断优化,促进了虚拟化技术在嵌入式设备平台上的应用。在嵌入式系统平台中引入虚拟化技术,不仅能够提高底层物理资源的利用率,而且能够在一定程度上增强整个系统的安全性、可靠性以及容错能力。现如今,在航空、航天等一些具有高可靠性、高实时性等特殊需求的嵌入式领域,虚拟化技术已经成功胜任。
[0003]当前,包括0KL4在内的绝大部分嵌入式虚拟化平台,主要是以微内核作为底层基础进行设计开发的。所以相对于传统虚拟化系统,它不仅能够支持VMs (完整的操作系统及其包含的应用程序),还能够支持单独的原生应用程序。在虚拟化平台之上,各虚拟机及原生应用程序以Cell方式进行相互隔离。由于微内核对内核功能进行了充分抽象,所以其仅提供了 IPC (Inter-Process Communicat1n)、地址空间(Address Space)、调度(Scheduling)基本机制,其他系统服务模块以独立Cell的形式运行于上层用户态。通过此类方式,嵌入式虚拟化平台既可以实现对底层硬件资源的抽象,进而为上层Cell提供相互独立的隔离环境,又可以借助微内核“小而快”的特点,提升整个虚拟化平台的执行性能和安全性(TCB,即 Trusted Computing Base 非常小)。
[0004]在嵌入式虚拟化平台中,当上层各Cell需要进行信息交互时,微内核的IPC机制是一种非常高效的方式。目前大部分的嵌入式hypervisor均将IPC机制作为上层虚拟机之间(或虚拟机与原生应用程序之间)传递信息的主要方式。由于IPC机制是微内核的核心特征,因此它的功能还是偏向于底层,如果仅依赖IPC机制负责事件通知信息传递,那么所存在的问题也比较突出。
[0005]首先,IPC机制是一种同步机制,每当需要实现数据传输时,它要求发送接收方均处于通信就绪状态,否则会出现同步机制中常见的阻塞等待、轮询等待问题。而这种不确定性的阻塞等待,对于嵌入式系统特别是实时系统来说,是无法容忍的。其次,IPC机制主要是以寄存器作为信息载体,而对于任何嵌入式硬件平台来说,寄存器个数均是非常有限的,所以一次IPC通信所能携带的数据量非常有限,所以IPC机制不适用于批量数据传输。最后,多通道共存问题。如果通信一方需要同时维护多个通信连接,那么对于每个通信连接的辨识、消息转存等内容,均需要通信方自身去维护,这将导致整个通信的代价非常大,会对通信双方的性能造成较大的影响。

【发明内容】

[0006]本系统发明以实现嵌入式虚拟化平台Cell间的高效、批量数据传输为目标,通过研宄0KL4虚拟化平台的技术特征,设计一套面向嵌入式环境的高效数据传输系统。该系统既可以实现批量数据在域间快速的传递,又可以确保整个数据传输过程不会对发送、接收双方带来较大的性能开销。
[0007]该系统发明具体包括如下部分:
[0008]1.嵌入式虚拟化异步事件传递子系统
[0009]异步事件传递子系统主要负责为0KL4平台上的各通信Cell提供异步的消息传递机制,所有待传输的事件通知信息均由异步事件传递子系统来维护,直到该消息通知被取走或者超时失效;同时该系统还负责为通信双端提供函数注册功能,一旦指定的事件通道上有消息到达,将能够自动调用回调函数完成与之相关的后续事件处理。除此之外,该子系统还可以确保事件通知被高效传递的同时,不会对发送、接收双方的执行性能带来较为明显的影响,即通信双方只需借助无需复杂的操作即可完成数据传递。
[0010]2.批量数据跨Cell传输子系统
[0011]借助于异步事件传递子系统所提供的事件通知传递功能,批量数据跨Cell传输子系统负责批量数据的实际传输。而对于数据传输载体,则采用了较为流行的共享内存方式。当前,0KL4虚拟化平台对于下层物理内存资源,只提供了基本的地址空间映射机制,并未实现任何有关共享内存的管理策略。对于Cell内同一地址空间中的不同线程来说,可以通过映射同一段物理内存区域来实现内存的共享;但对于两个不同的Cell来说,它们在编译时便被分配到不同的段(segment)中,出于安全隔离考虑,0KL4禁止上层地址空间进行跨Cell映射,因此直接映射方式是无法完成内存块的跨域共享。
[0012]因此该子系统的主要功能是实现一套完整的共享内存管理机制,该机制既要能够满足通信双方的读写需求,又要不违反微内核的底层隔离机制,避免因内存共享操作而对整个系统安全带来影响。除此之外,该子系统还构建了内存块有效数据区管理机制,实时记录共享内存块中的有效数据位置信息,以确保接收方每次均可以读取到正确数据,同时也可以避免发送方可能产生的对有效数据的覆盖操作。
[0013]3.功能接口封装子系统
[0014]该子系统主要负责将相关功能模块进行接口封装,之后以静态库的方式存放在0KL4的libs库目录下,上层应用程序仅需提供简单的参数信息便可完成对相关功能模块的调用。具体来说,该子系统主要包含事件通道封装库、共享内存管理封装库两个模块。其中事件通道封装库中封装了事件通道创建、绑定、查询、撤销、事件通知发送、事件通知接收等操作流程;而共享内存管理封装库则封装了内存块申请、内存块绑定、数据写、数据读、数据区域同步等操作流程。借助接口封装子系统,一方面可以简化数据跨Cell传输的操作过程;另一方面,也可以避免因相关功能模块实现细节过多的暴露而对整个系统的安全所带来的影响。
[0015]当前,以微内核为基础构建的嵌入式虚拟化平台主要依赖下层微内核的IPC机制完成数据的跨Cell传输,与现有技术相比较,本发明的创新之处在于:
[0016](I)本系统发明构建了一套完成的异步消息传递机制,它能够将消息通知以异步的方式在Cell间高效传输,借助该机制可以避免0KL4系统之上各Cell在通信时的同步阻塞等待问题;
[0017](2)本系统发明实现了独立运行的Cell,用于维护各虚拟机和各事件通道实时运行状态信息,借助该Cell所提供的功能,本系统完全支持0KL4上层Cell同时参与多个通道的数据传输,且无需通信双方实现额外的操作流程;
[0018](3)本发明系统采用了共享内存块作为数据传输载体,特别适用于Cell间大批量数据传输,同时,本系统通过采用独立资源池策略和0KL4的Capability策略,保证了 0KL4系统平台的安全性。
【附图说明】
[0019]图1跨Cell数据传输系统模块关系图
[0020]图2异步事件管理子系统组成结构图
[0021]图3批量数据跨Cell传输示意图
[0022]图4数据发送方操作流程图
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1