CN104657225B - 基于OKL4的嵌入式虚拟化平台跨Cell数据传输*** - Google Patents
基于OKL4的嵌入式虚拟化平台跨Cell数据传输*** Download PDFInfo
- Publication number
- CN104657225B CN104657225B CN201510017166.9A CN201510017166A CN104657225B CN 104657225 B CN104657225 B CN 104657225B CN 201510017166 A CN201510017166 A CN 201510017166A CN 104657225 B CN104657225 B CN 104657225B
- Authority
- CN
- China
- Prior art keywords
- cell
- okl4
- asynchronous
- event
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种面向嵌入式虚拟化环境的、基于OKL4***平台实现的跨Cell数据传输***,为上层虚拟机间提供一种更为通用的批量数据传输机制。为了支持异步特性,本***设计了一套完整的异步事件管理机制,上层程序借助该机制可实现事件信息在Cell的异步传递。同时,为了适应Cell间批量数据传输需求,本***采用共享内存块作为数据传输载体,并且通过采用独立资源池策略,确保了***的安全性。上层虚拟机通过借助***中所提供的相关函数封装库,仅需提供简单的配置参数便可完成事件通道管理、共享内存块管理等复杂的操作过程。
Description
技术领域
本发明涉及计算机科学中在嵌入式硬件平台下的***虚拟化领域,特别是基于L4系列微内核实现的OKL4平台上各Cell间的域间通信技术。
背景技术
虚拟化技术是一种计算机***抽象技术,一般来说,它的核心目标是实现多***平台到单一物理平台的虚拟化映射,同时无需考虑***平台的同构、异构属性。这样所带来的好处是底层的物理资源能够得到充分利用,从而帮助企业降低资源成本以及维护成本。而近年来,随着嵌入式设备处理器性能的不断增强以及虚拟化技术的不断优化,促进了虚拟化技术在嵌入式设备平台上的应用。在嵌入式***平台中引入虚拟化技术,不仅能够提高底层物理资源的利用率,而且能够在一定程度上增强整个***的安全性、可靠性以及容错能力。现如今,在航空、航天等一些具有高可靠性、高实时性等特殊需求的嵌入式领域,虚拟化技术已经成功胜任。
当前,包括OKL4在内的绝大部分嵌入式虚拟化平台,主要是以微内核作为底层基础进行设计开发的。所以相对于传统虚拟化***,它不仅能够支持VMs(完整的操作***及其包含的应用程序),还能够支持单独的原生应用程序。在虚拟化平台之上,各虚拟机及原生应用程序以Cell方式进行相互隔离。由于微内核对内核功能进行了充分抽象,所以其仅提供了IPC(Inter-Process Communication)、地址空间(Address Space)、调度(Scheduling)基本机制,其他***服务模块以独立Cell的形式运行于上层用户态。通过此类方式,嵌入式虚拟化平台既可以实现对底层硬件资源的抽象,进而为上层Cell提供相互独立的隔离环境,又可以借助微内核“小而快”的特点,提升整个虚拟化平台的执行性能和安全性(TCB,即Trusted Computing Base非常小)。
在嵌入式虚拟化平台中,当上层各Cell需要进行信息交互时,微内核的IPC机制是一种非常高效的方式。目前大部分的嵌入式hypervisor均将IPC机制作为上层虚拟机之间(或虚拟机与原生应用程序之间)传递信息的主要方式。由于IPC机制是微内核的核心特征,因此它的功能还是偏向于底层,如果仅依赖IPC机制负责事件通知信息传递,那么所存在的问题也比较突出。
首先,IPC机制是一种同步机制,每当需要实现数据传输时,它要求发送接收方均处于通信就绪状态,否则会出现同步机制中常见的阻塞等待、轮询等待问题。而这种不确定性的阻塞等待,对于嵌入式***特别是实时***来说,是无法容忍的。其次,IPC机制主要是以寄存器作为信息载体,而对于任何嵌入式硬件平台来说,寄存器个数均是非常有限的,所以一次IPC通信所能携带的数据量非常有限,所以IPC机制不适用于批量数据传输。最后,多通道共存问题。如果通信一方需要同时维护多个通信连接,那么对于每个通信连接的辨识、消息转存等内容,均需要通信方自身去维护,这将导致整个通信的代价非常大,会对通信双方的性能造成较大的影响。
发明内容
本***发明以实现嵌入式虚拟化平台Cell间的高效、批量数据传输为目标,通过研究OKL4虚拟化平台的技术特征,设计一套面向嵌入式环境的高效数据传输***。该***既可以实现批量数据在域间快速的传递,又可以确保整个数据传输过程不会对发送、接收双方带来较大的性能开销。
该***发明具体包括如下部分:
1.嵌入式虚拟化异步事件传递子***
异步事件传递子***主要负责为OKL4平台上的各通信Cell提供异步的消息传递机制,所有待传输的事件通知信息均由异步事件传递子***来维护,直到该消息通知被取走或者超时失效;同时该***还负责为通信双端提供函数注册功能,一旦指定的事件通道上有消息到达,将能够自动调用回调函数完成与之相关的后续事件处理。除此之外,该子***还可以确保事件通知被高效传递的同时,不会对发送、接收双方的执行性能带来较为明显的影响,即通信双方只需借助无需复杂的操作即可完成数据传递。
2.批量数据跨Cell传输子***
借助于异步事件传递子***所提供的事件通知传递功能,批量数据跨Cell传输子***负责批量数据的实际传输。而对于数据传输载体,则采用了较为流行的共享内存方式。当前,OKL4虚拟化平台对于下层物理内存资源,只提供了基本的地址空间映射机制,并未实现任何有关共享内存的管理策略。对于Cell内同一地址空间中的不同线程来说,可以通过映射同一段物理内存区域来实现内存的共享;但对于两个不同的Cell来说,它们在编译时便被分配到不同的段(segment)中,出于安全隔离考虑,OKL4禁止上层地址空间进行跨Cell映射,因此直接映射方式是无法完成内存块的跨域共享。
因此该子***的主要功能是实现一套完整的共享内存管理机制,该机制既要能够满足通信双方的读写需求,又要不违反微内核的底层隔离机制,避免因内存共享操作而对整个***安全带来影响。除此之外,该子***还构建了内存块有效数据区管理机制,实时记录共享内存块中的有效数据位置信息,以确保接收方每次均可以读取到正确数据,同时也可以避免发送方可能产生的对有效数据的覆盖操作。
3.功能接口封装子***
该子***主要负责将相关功能模块进行接口封装,之后以静态库的方式存放在OKL4的libs库目录下,上层应用程序仅需提供简单的参数信息便可完成对相关功能模块的调用。具体来说,该子***主要包含事件通道封装库、共享内存管理封装库两个模块。其中事件通道封装库中封装了事件通道创建、绑定、查询、撤销、事件通知发送、事件通知接收等操作流程;而共享内存管理封装库则封装了内存块申请、内存块绑定、数据写、数据读、数据区域同步等操作流程。借助接口封装子***,一方面可以简化数据跨Cell传输的操作过程;另一方面,也可以避免因相关功能模块实现细节过多的暴露而对整个***的安全所带来的影响。
当前,以微内核为基础构建的嵌入式虚拟化平台主要依赖下层微内核的IPC机制完成数据的跨Cell传输,与现有技术相比较,本发明的创新之处在于:
(1)本***发明构建了一套完成的异步消息传递机制,它能够将消息通知以异步的方式在Cell间高效传输,借助该机制可以避免OKL4***之上各Cell在通信时的同步阻塞等待问题;
(2)本***发明实现了独立运行的Cell,用于维护各虚拟机和各事件通道实时运行状态信息,借助该Cell所提供的功能,本***完全支持OKL4上层Cell同时参与多个通道的数据传输,且无需通信双方实现额外的操作流程;
(3)本发明***采用了共享内存块作为数据传输载体,特别适用于Cell间大批量数据传输,同时,本***通过采用独立资源池策略和OKL4的Capability策略,保证了OKL4***平台的安全性。
附图说明
图1跨Cell数据传输***模块关系图
图2异步事件管理子***组成结构图
图3批量数据跨Cell传输示意图
图4数据发送方操作流程图
图5数据接收方操作流程图
具体实施方式
如图1所示,本发明内容主要涉及三个部分,它们之间通过相互协作构造出一套完整的、面向OKL4嵌入式虚拟化环境的Cell间数据传输***。首先,为了构建一个完整的域间通信“管道”,批量数据域间传输管理模块会与共享内存管理模块进行交互,申请获得某一空闲共享内存块的使用权,如线①所示。共享内存管理模块在获得请求信息后,会根据请求者自身的参数信息和当前可用共享内存块信息,基于决策算法进行资源分配决策。一旦条件满足,共享内存管理模块会将某一个可用的共享内存块(如图1中的共享内存块A)授权给请求者,之后该共享内存块便可以用于域间通信。接着,批量数据域间传输管理模块会与异步事件管理模块通信,申请在通信Cell间构建用于传递控制信息的事件传递通道,并将其与通信双方绑定,如图1中的线②所示。上述所有模块间的交互均借助功能封装库中的API接口完成。
图2展示了在OKL4***平台下异步事件管理子***的主要功能模块组成。从图中可以看出异步事件管理子***的核心功能模块主要存在于DaemonServer和OKL4静态库两个地方。其中DaemonServer位于OKL4微内核之上,以独立Cell的方式运行,它作为***服务模块为下层的微内核和其他Cell单元提供***功能服务。在本***中它主要负责为各Cell维护事件通道信息,以及各Cell实时状态信息。OKL4静态封装库是OKL4***为上层应用程序提供***功能服务的另一种重要方式,本发明***在封装库中增添了异步事件管理API接口、守护线程管理器、回调函数管理器等功能模块。其中,异步事件管理API接口封装库中主要放置了对相关函数功能的封装,以便于上层应用程序使用;守护线程管理器、回调函数管理器主要负责协助上层Cell完成事件通知状态监听、回调函数注册、函数函数异步触发等功能。上述所有静态封装库只有被加载进自身的地址空间后,才可以静态库中所提供的函数功能。
图3展示了本***在OKL4***平台完成批量数据跨Cell传输的整体实施方案。首先,本部分会借助异步事件管理子***所实现的异步事件通道机制,在OKL4的两个需要通信的Cell间建立起事件通道,如图3中的线①所标示。在整个数据跨Cell传输过程中,该事件通道主要用于在Cell间协商共享存储区域的构建,同步共享块可读、可写状态以及后续的Cell间通信通道撤销、共享块撤销等过程。其次,借助共享内存管理子***为通信双方构建共享内存块,作为数据传输的载体。为了提升内存资源的利用率,通常会将共享内存块采用生产者-消费者模型进行环形化处理,如图3中的共享环。在本***中会构建多个结构体指针用于实时维护当前缓冲区中有效数据区的大小、位置、访问权限等属性信息,当发送方数据发送流程已完成,则会通过事件通道将新增的数据信息反馈到结构体指针中。之后接收端便可根据结构体指针中的信息快速的定位有效数据位置并从中读取数据。图3中两个共享环的功能完全一致,实现两个环主要是为了实现双向并行通信功能。
同时,本***借助OKL4所提供的Capability权限机制对发送、接收双方的Capability权限进行了约束,任何一方限制条件不满足,通信便被内核禁止,也即整个通信是在内核认可的虚拟机间进行,无内核认证的虚拟机是无法越权,尝试与其他虚拟机通信的;同样,对于实际物理内存块来说,通信双方也均需要获得内存块的Capability权限,否则通信双方对于共享内存块的任何操作动作都会被OKL4微内核禁止。
图4、图5给出了在OKL4虚拟化平台上进行数据跨Cell传输时所涉及的主要操作流程。需要说明的是,图中所展示的是完成单次数据传输的过程。如果待传输的数据规模较大,单次执行过程无法完成,则需要借助多次交互过程来实现全部数据的传输。图4展示的是发送端在完成单次数据跨Cell发送时的主要流程,图5展示的是接收端完成单次数据接收的主要流程。
Claims (5)
1.一种面向嵌入式虚拟化环境的、基于OKL4平台实现的数据跨Cell传输***,该***通过实现异步事件管理子***、批量数据跨Cell传输管理子***、函数功能封装库以及共享内存管理子***四个模块,解决了基于微内核的嵌入式虚拟化***在进行跨Cell传输时所存在的问题,具体来说,该***特征在于:
(1)为了解决异步性问题,本***基于OKL4平台设计了一套完整的异步事件传递子***,借助守护线程和消息暂存机制,使得消息能以异步的方式在OKL4平台中传递;
(2)在OKL4之上构建了独立运行的Cell,即DaemonServer Cell,它作为整个传输***的核心,会记录各虚拟机运行状态以及各连接通道的实时通信状态,OKL4之上的各虚拟机通过IPC机制与其进行通信,该独立Cell是实现数据异步传输的关键;
(3)将***相关的功能模块以函数库的方式存储于OKL4***中,上层各虚拟机通过加载静态库的方式,获得库中所提供的函数功能,此类函数模块部署方式一方面可以提升OKL4功能模块扩展的灵活性,有利于模块的重用,另一方面可将模块下层实现细节隐藏,提高***的安全性;
(4)采用资源池的策略,将资源池中的共享内存块作为数据传输载体,同时结合OKL4所提供的Capability权限约束机制,构建了有关内存块及通信实体权限管理策略,在为通信双方提供高效的传输性能同时,确保了***的整体安全性。
2.如权利要求1所述的***,其特征在于:为了完成事件信息在Cell间的异步传递,为每个虚拟机配置独立的守护线程,用于实时追踪所监视事件通道状态信息。
3.如权利要求2所述的***,其特征在于:以***服务的模式将相关核心模块放在微内核之上独立的Cell中。
4.如权利要求1所述的***,其特征在于:为了完成对多通道连接的管理,在DaemonServer Cell中构建映射表,记录各Cell与事件通道间的映射关系。
5.如权利要求1所述的***,其特征在于:所有共享内存块统一由DaemonServer Cell集中管理,由需要通信的双方Cell申请使用;通信结束后双方Cell释放所申请的共享内存交还给DaemonServer Cell。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510017166.9A CN104657225B (zh) | 2015-01-13 | 2015-01-13 | 基于OKL4的嵌入式虚拟化平台跨Cell数据传输*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510017166.9A CN104657225B (zh) | 2015-01-13 | 2015-01-13 | 基于OKL4的嵌入式虚拟化平台跨Cell数据传输*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657225A CN104657225A (zh) | 2015-05-27 |
CN104657225B true CN104657225B (zh) | 2018-01-05 |
Family
ID=53248398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510017166.9A Expired - Fee Related CN104657225B (zh) | 2015-01-13 | 2015-01-13 | 基于OKL4的嵌入式虚拟化平台跨Cell数据传输*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657225B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704324B (zh) * | 2017-07-20 | 2020-02-07 | 哈尔滨工业大学(威海) | 一种面向多核确定性的基于硬件的内存隔离方法 |
CN112148434A (zh) * | 2020-10-12 | 2020-12-29 | 北京计算机技术及应用研究所 | 基于龙芯主机环境下的微内核虚拟机通信方法、装置及龙芯主机 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490724A (zh) * | 2002-10-18 | 2004-04-21 | 上海贝尔有限公司 | 一种用于嵌入式***软件开发的虚拟机装置 |
CN102521300A (zh) * | 2011-11-30 | 2012-06-27 | 华中科技大学 | 基于嵌入式虚拟化平台的域间文件数据共享方法 |
KR20120080075A (ko) * | 2011-01-06 | 2012-07-16 | 삼성전자주식회사 | 가상 머신을 위한 계층적 스케줄러 및 가상 머신 스케줄 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8423747B2 (en) * | 2008-06-30 | 2013-04-16 | Intel Corporation | Copy equivalent protection using secure page flipping for software components within an execution environment |
KR101571880B1 (ko) * | 2009-02-02 | 2015-11-25 | 삼성전자 주식회사 | 전자장치와 가상머신 제공장치 및 이를 이용한 가상머신 서비스 이용 방법 |
-
2015
- 2015-01-13 CN CN201510017166.9A patent/CN104657225B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490724A (zh) * | 2002-10-18 | 2004-04-21 | 上海贝尔有限公司 | 一种用于嵌入式***软件开发的虚拟机装置 |
KR20120080075A (ko) * | 2011-01-06 | 2012-07-16 | 삼성전자주식회사 | 가상 머신을 위한 계층적 스케줄러 및 가상 머신 스케줄 방법 |
CN102521300A (zh) * | 2011-11-30 | 2012-06-27 | 华中科技大学 | 基于嵌入式虚拟化平台的域间文件数据共享方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104657225A (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
NL2029116B1 (en) | Infrastructure processing unit | |
US11669368B2 (en) | Multi-tenant data protection in edge computing environments | |
EP3972295B1 (en) | Geofence-based edge service control and authentication | |
US20210271517A1 (en) | Resource selection based in part on workload | |
CN114253706A (zh) | 用于协调边缘平台的方法和装置 | |
US9430296B2 (en) | System partitioning to present software as platform level functionality via inter-partition bridge including reversible mode logic to switch between initialization, configuration, and execution mode | |
CN102609298B (zh) | 基于硬件队列扩展的网卡虚拟化***及其方法 | |
CN111865647A (zh) | 使用分解的芯片粒进行边缘计算的模块化i/o配置 | |
CN101488174B (zh) | 动态透明的虚拟可信平台模块的实现方法 | |
US20200241926A1 (en) | Selection and management of disaggregated computing resources | |
US20210117244A1 (en) | Resource manager access control | |
US7840964B2 (en) | Mechanism to transition control between components in a virtual machine environment | |
US11936571B2 (en) | Reliable transport offloaded to network devices | |
BRPI0707220A2 (pt) | métodos e sistemas para fornecer acesso a um ambiente de computação | |
CN106547633A (zh) | 多通道通信***和电子设备 | |
US11861406B2 (en) | Dynamic microservices allocation mechanism | |
KR20220065670A (ko) | 에지 네트워킹을 이용한 확장 피어-투-피어(p2p) | |
US20220116478A1 (en) | Microservice latency reduction | |
US20220086226A1 (en) | Virtual device portability | |
WO2020163327A1 (en) | System-based ai processing interface framework | |
CN104657225B (zh) | 基于OKL4的嵌入式虚拟化平台跨Cell数据传输*** | |
CN115129423A (zh) | 资源管理方法、装置、设备及存储介质 | |
CN104468712A (zh) | 轻量级可信计算平台及其通信方法、信任链建立方法 | |
CN117708855A (zh) | 基于核间通信的数据加密方法、装置、设备及介质 | |
CN107623699A (zh) | 一种基于云环境的加密*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180105 Termination date: 20200113 |