0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

允许GPOS和RTOS:关键任务嵌入式系统的独特虚拟化需求

星星科技指导员 来源:嵌入式计算设计 作者:CHRIS MAIN 2022-11-07 14:48 次阅读

多核处理器在计算领域的盛行现已成为现实,OEM 正在尝试在不同处理器内核上划分其应用程序的方法。在嵌入式计算领域,这可能意味着同时在同一处理器芯片上托管多个异构操作系统。因此,虚拟化是关键。虽然某些虚拟机管理器 (VMM) 仅混合使用通用操作系统 (GPOS),但同时包含实时操作系统 (RTOS) 和 GPOS 的任务关键型虚拟化方案带来了其独特的挑战。Chris 揭示了虚拟化和确定性的细节,提供了一个示例,然后解释了遗留应用程序如何适应该方案。

考虑到多核处理器在嵌入式领域中的日益普及,虚拟化是使多个操作系统在多核处理器芯片上共存的关键。但是,每个虚拟化嵌入式系统都是不同的,特别是当嵌入式系统涉及在同一平台上的不同来宾操作系统上运行的任务关键型或高度安全的应用程序时。通常,实时操作系统 (RTOS) 和通用操作系统 (GPOS) 将组合在一起。需要不同的操作系统,因为实时或机器导向的任务对操作系统功能的需求与常规用途或人为导向的任务不同。

但是,在构建此类任务关键型嵌入式系统时,虚拟化的实施方式至关重要。必须保持系统的响应能力,这意味着保留原始系统以时间可预测和可重复或确定的方式响应刺激的能力。但挑战也随之而来:并非所有虚拟机管理器 (VMM) 实现都是平等的。例如,服务器应用程序中使用的 VMM 将最大资源利用率作为其最高优先级,而为电信应用程序需求而构建的虚拟机管理程序通常侧重于数据吞吐量。

但是,两者都不关注对外部事件的响应能力,而实时防御应用程序的虚拟化方案需要这种响应。对于大多数关键任务军事嵌入式系统,需要一种特殊的虚拟化 - 嵌入式虚拟化 - 以便确定性地响应一系列外部事件。这种理想的军事嵌入式系统虚拟化方法还允许OEM节省投资成本并保护知识产权,因为它可以轻松地将其传统的实时应用程序与新系统元素一起托管,而对现有代码的更改(如果有的话)很少。但是,托管旧版应用程序比简单地在 VMM 或虚拟机监控程序上执行代码要困难得多。我们的讨论探讨了虚拟化和确定性之间的关系,包括一个示例,并解释了如何在遗留应用程序中折叠。

对事件的确定性响应

构建确定性 VMM 的关键是首先处理如何将处理器中断传递到每个来宾操作环境的问题。启用最短的响应时间可确保确定性,并需要区分可以虚拟化的 I/O 资源和不应虚拟化的 I/O 资源。例如,磁盘访问通常不是嵌入式系统中的时间关键型元素,因此可以对其进行虚拟化。这样,单个磁盘可以在多个操作环境之间共享。相比之下,来自硬件设备(例如为闭环运动控制提供输入的编码器)的中断需要根据精确的时间表进行处理,以便应用程序以可预测的方式工作。因此,这些过程的中断输入实际上必须“硬连线”到运行实时控制程序的处理器。

嵌入式虚拟化平台必须在多个操作系统之间实现隔离,同时将虚拟化开销降至最低。因此,允许此平台托管的操作系统软件和应用程序直接访问关键 I/O 设备,以保持对设备事件的确定性响应。虚拟化整个计算机环境的通用虚拟化方法可能会以牺牲对外部事件的响应为代价来最大化 CPU 的利用率。他们试图最大化平台的效用,并且通常通过在 CPU 可用时将工作分配给 CPU 来实现这一点。通过这种方式,他们可以使用高比例的可用CPU周期(在某些情况下超过90%),这使他们能够降低运行给定数量的服务器应用程序的硬件成本。

相比之下,嵌入式 VMM 实现必须最大限度地提高应用程序对硬件事件的响应的可预测性,CPU 利用率并不那么重要。最重要的因素是给定接口到 CPU 的性能,VMM 通过在虚拟环境之间隔离硬件来确保这一点。

示例:GPOS/RTOS 虚拟化

考虑以下示例,其中虚拟环境之间的硬件隔离是使用多个计算变电站的系统中的一个因素。该应用程序的目的是检索小型无人船并将它们放置在海军舰艇上。问题是如何引导固定在船上的机器人,以便它可以在无人浮动车辆上安装线或固定装置,同时两者都在海上折腾。机器人起重机使用视觉系统来准确查看车辆的连接点的位置,并计算算法以预测未来在海洋作用下移动时的位置。机器人起重机由运动控制系统引导到预测有吊钩或闩锁的位置,并在两者结合在一起时进行接触。

如前所述,此应用程序利用多个计算子系统。其中一个处理器专用于处理与视觉系统相关的任务,而与驱动运动子系统相关的操作任务专用于另一个CPU。该方案允许视觉系统的处理垄断一个处理器的周期而不影响系统的其他功能,反之亦然。第三个处理器没有时间关键型处理需求,支持人机界面 (HMI)。在多核 CPU 和 VMM 软件出现之前,这三个处理子系统将作为三个独立的计算单元实现,具有自己的处理器卡、内存、电源调节电路等。

现在,三个独立的子系统可以托管在同一处理器芯片的不同内核上,从而在不牺牲独立功能的性能和确定性的情况下节省系统成本。如图 2 所示,保持系统响应能力的关键之一是将处理器内核和相关 I/O 专用于单独的操作环境。

为了保持确定性,嵌入式 VMM 开发人员必须仔细规划虚拟化,以便中断开销可预测、可衡量且最小。此外,每个 CPU 内核必须有自己的任务计划程序和虚拟机,而不是使用旨在共享多个内核的单个主计划程序。这种方法的另一个好处是消除了与主调度程序相关的开销,许多虚拟化方案使用它来实现对称多处理 (SMP) 来管理多个处理器内核上多个 GPOS 的执行。与嵌入式多处理方法相比,SMP 调度程序的开销相对较高,后者不会在系统级别强加调度策略。

实时折叠,遗留流程

如前所述,多操作系统嵌入式系统最有价值的用途之一是将传统的实时流程整合到新的或升级的产品中。军事 OEM 通常拥有大量的知识产权投资,他们不想在迁移到新平台时冒险或放弃这些投资。通常,这些OEM将从在VMM上运行其传统RTOS与Windows一起开始。但随着时间的推移,他们可能会发现需要扩展的实时功能,并在Windows上运行多个RTOS。

在考虑将遗留应用程序集成到利用RTOS和GPOS的虚拟化方案中时,除了确定性问题之外,另一个问题是管理环境之间的有效通信。要将旧版应用程序从多平台环境迁移到单平台、多核、多操作系统环境,虚拟化时间不严格的标准资源(用于引导的磁盘服务、用于日志记录的串行终端服务以及 Windows 虚拟通信服务,如虚拟以太网和虚拟串行互连)是值得的, 同时避免虚拟化对提供确定性至关重要的 I/O(例如,运动控制接口和视觉子系统)。为了以最少的数据丢失实现最大性能(典型要求为无),确定性地处理中断至关重要。

使遗留软件在嵌入式虚拟环境中轻松工作的另一个方面是为软件加载提供支持。嵌入式 VMM 平台应允许每个来宾操作系统像在电脑上一样正常启动,而无需更改,而不是要求使用特殊的主板支持包 (BSP) 修改每个来宾操作系统以使软件在 VMM 中正常运行。这消除了对软件修改的需要,可以大大降低成本并简化嵌入式系统的实现。

通过嵌入式虚拟化利用多核芯片

嵌入式虚拟化使OEM厂商有机会在RTOS和GPOS所在的平台中充分利用新的多核处理器芯片,在不牺牲确定性的情况下降低系统成本并保留遗留代码。对于军事嵌入式系统市场来说,这项新技术来得正是时候,因为所有原始设备制造商都在寻找提高效率的方法。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5081

    文章

    19073

    浏览量

    304321
  • 操作系统
    +关注

    关注

    37

    文章

    6771

    浏览量

    123254
  • RTOS
    +关注

    关注

    22

    文章

    810

    浏览量

    119530
收藏 人收藏

    评论

    相关推荐

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+全文学习心得

    Hypervisor是一种在嵌入式系统中实现虚拟技术的关键组件,它能够在同一硬件平台上并行运行多个操作
    发表于 10-09 19:11

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第7-8章学习心得

    提供了安全、可靠和高效的虚拟环境。同时,嵌入式Hypervisor的设计还注重解决容错性和实时性问题,为构造高可靠的嵌入式系统提供了全面的
    发表于 10-09 18:50

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第三四章阅读报告

    嵌入式系统虚拟技术的多样需求。 实现细节 :学习了PRTOS Hypervisor在实现过
    发表于 10-09 18:29

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第一二章读后感

    Hypervisor的重要性和应用场景有了更深入的认识。我认为,嵌入式Hypervisor作为一种前沿的虚拟技术,在优化有限资源、实现异构操作系统安全隔离等方面具有广泛的应用前景。
    发表于 10-09 18:22

    嵌入式系统的未来趋势有哪些?

    会更加模块和集成化,允许更容易的硬件和软件的切换和升级。这会提高系统的可维护性和可扩展性,会使得系统能够适应不断在变化的应用需求。 5.
    发表于 09-12 15:42

    开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束

    孝成分享了翼辉在任务关键领域的技术方案,包括任务关键型云原生技术体系、软件工厂与云原生实验室的组成、特点以及基于任务
    发表于 08-30 17:24

    RTOS的特性和类型

    。通常,这些应用程序在几微秒内响应输入,并在内存小于1MB的小型嵌入式设备上运行。在本节中,您将详细了解什么是RTOS以及RTOS类型和架构。
    的头像 发表于 08-20 11:29 544次阅读

    嵌入式系统中的实时操作系统

    嵌入式RTOS嵌入式应用程序运行、相互交互和与外界通信的底层软件机制。在本节中,您将了解嵌入式软件开发人员使用哪些流行RTOS以及它们运行
    的头像 发表于 08-20 11:28 470次阅读

    从菜鸟到大牛!嵌入式完整学习路线:STM32单片机-RTOS-Linux

    嵌入式系统是许多现代电子设备和智能系统的核心,掌握嵌入式系统,意味着能够设计和开发更加智能
    的头像 发表于 07-23 16:11 3872次阅读
    从菜鸟到大牛!<b class='flag-5'>嵌入式</b>完整学习路线:STM32单片机-<b class='flag-5'>RTOS</b>-Linux

    嵌入式系统怎么学?

    操作系统的基本概念和原理,掌握常见的RTOS,如FreeRTOS、uC/OS等,以实现对嵌入式系统任务调度和资源管理。 6、通信协议:学
    发表于 07-02 10:10

    嵌入式系统软硬件基础知识大全

    、成本和功耗方面具有独特的优势。在理解嵌入式系统之前,我们需要对其硬件基础知识有一个全面的了解。在嵌入式系统中,处理器是其核心组成部分,它负
    发表于 05-09 14:12

    再谈嵌入式实时操作系统

    由于嵌入式处理器早期功能单一且运算能力不高,嵌入式应用已不能满足各个领域不断增长的需求嵌入式操作系统应运而生,
    的头像 发表于 04-09 17:27 772次阅读
    再谈<b class='flag-5'>嵌入式</b>实时操作<b class='flag-5'>系统</b>

    何时选择裸机?何时选择RTOS?何时选择GPOS

    在每个开发项目的初期,你都必须选择软件开发的基础。虽然有很多选择,但它们通常分为三类:裸机、实时操作系统RTOS)或通用操作系统GPOS)。
    的头像 发表于 02-27 11:42 1104次阅读

    嵌入式学习步骤

    开发。 嵌入式学习步骤总结如下: (1).确定目标平台:选择适合您要开发的嵌入式系统的硬件平台。这取决于您要控制的设备以及您需要执行的任务。 (2).选择编程语言:
    发表于 02-02 15:24

    什么是嵌入式系统嵌入式系统的具体应用

    嵌入式,一般是指嵌入式系统。用于控制、监视或者辅助操作机器和设备的装置。
    的头像 发表于 12-20 13:33 2457次阅读