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

审核编辑:郭婷

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

    关注

    5209

    文章

    20668

    浏览量

    337127
  • 操作系统
    +关注

    关注

    37

    文章

    7439

    浏览量

    129623
  • RTOS
    +关注

    关注

    25

    文章

    870

    浏览量

    123218
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源RTOS塑造嵌入式系统的未来

    嵌入式系统早已不再是隐藏在产品内部、安静运行、只承担单一功能的组件。它们正变得更加智能、互联,并且对安全性至关重要——为从智能家居、工业自动到医疗设备和能源基础设施等各类应用提供核心动力。随着
    的头像 发表于 04-22 16:16 222次阅读

    如何成为一名高薪嵌入式工程师?

    Designer、Eagle等工具,理解高速信号完整性、EMC设计。 传感器与外设:熟悉常见传感器(如加速度计、陀螺仪、温湿度传感器)的接口和驱动开发。 二、深入嵌入式系统开发 ✅RTOS开发
    发表于 04-09 09:03

    STM32开发中的五大嵌入式系统

    :FreeRTOS是开源的,可以免费获取并在商业项目中使用,降低了项目的开发成本。 2.小巧高效:FreeRTOS的内核非常小巧,仅需几KB的内存空间,适用于资源受限的嵌入式系统,并且具有高效的任务调度算法
    发表于 01-21 10:48

    RTOS嵌入式开发中的作用

    : 硬实时响应 基于优先级抢占的RTOS,根据任务的实时需求,执行优先调度。有严格时序限制的任务可以优先执行,提高应用程序对时间关键事件的响
    发表于 12-26 07:53

    什么是嵌入式操作系统

    嵌入式操作系统的定义 嵌入式操作系统是专门为资源受限的嵌入式设备(比如 STM32 单片机、物联网模块、工业控制器)设计的微型操作
    发表于 12-09 10:33

    分享一个嵌入式开发学习路线

    拓展期(3-4个月) 学习嵌入式操作系统RTOS)和物联网通信技术,能开发“多任务、联网”的复杂项目,理解企业级嵌入式开发的“架构思维”
    发表于 12-04 11:01

    嵌入式开发的关键点介绍

    嵌入式开发在现代科技中扮演着非常重要的角色。随着物联网的发展,嵌入式系统需求也越来越大。嵌入式开发不仅需要开发人员具备深入的硬件知识和编程
    发表于 11-13 08:12

    嵌入式实时操作系统的特点

    任务系统。 实时嵌入式操作系统与传统的桌面操作系统相比,更注重对实时任务的响应和精确控制。它们
    发表于 11-13 06:30

    嵌入式需要掌握哪些核心技能?

    嵌入式需要掌握哪些核心技能? 若想通过学习嵌入式技术提升就业竞争力,需重点掌握C语言、嵌入式硬件架构、RTOS/Linux开发、通信协议四大核心技能,并结合行业
    发表于 10-21 16:25

    嵌入式达到什么水平才能就业?

    工具定位问题具备嵌入式软件模块设计能力:能按功能划分代码模块,编写规范的头文件与源文件,实现模块间低耦合调用会使用Git 进行版本管理:能提交代码、解决冲突、回滚版本,熟悉敏捷开发流程中需求拆解与
    发表于 09-15 10:20

    嵌入式从入门到进阶,怎么学?

    原理图。 数据结构优先学 数组、链表、队列(嵌入式底层算法核心),暂跳过复杂结构(如红黑树)。 计算机原理了解 CPU 架构、总线系统、存储机制(把嵌入式系统当 “缩小版计算机” 理解
    发表于 09-02 09:44

    2025嵌入式行业现状如何?

    关键型与非关键系统隔离需求。 2.4 边缘计算与云协同 边缘设备能力提升:嵌入式Linux系统
    发表于 08-25 11:34

    入行嵌入式应该怎么准备?

    架构、总线协议和存储器管理等概念的理解也是必不可少的。 三、操作系统嵌入式系统通常需要运行一个实时操作系统RTOS)或者一个精简版的操作
    发表于 08-06 10:34

    RISC-V 虚拟堆栈和硬件的最新进展

    RISC-V 虚拟是其突破现有应用边界、进入更广泛场景(尤其是高性能计算、云计算、服务器及复杂嵌入式领域)的关键能力。比如,在嵌入式与实时
    发表于 07-18 16:00 4049次阅读

    Linux嵌入式和单片机嵌入式的区别?

    Processor Unit)。 2. 单片机嵌入式(也称为嵌入式微控制器MCU): 定义:一种集成电路,能够在一个芯片上完成各种计算、控制和管理任务。 特点:小型、低功耗、成
    发表于 06-20 09:46