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

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

3天内不再提示

嵌入式虚拟化解决多操作系统的确定性问题

星星科技指导员 来源:嵌入式计算设计 作者:Chris Grujon 2022-06-22 17:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式虚拟化技术的起源源于创建实时操作系统RTOS) 可以与 Microsoft Windows 等通用操作系统 (GPOS) 一起工作的环境的想法。嵌入式虚拟化创建了一个分区环境,其中两个操作系统及其上的应用程序运行在一个平台上,就好像它们运行在两个独立的平台上一样。这样做的好处是显而易见的:如果需要更少的处理平台来满足应用程序的计算需求,则可以降低系统成本和复杂性。如果系统可以用更少的硬件元件构建,那么产品的可靠性也可以得到提高。

早在 80 年代初期,机器制造商就看到了利用 PC 平台为其机器构建控制系统的机会。第一个此类应用程序相对简单,重点主要是利用成本大大低于专用控制硬件的可用硬件。

随着 PC 随着 Windows 的加入而发展,大量应用软件包被引入,推动了具有支持图形引擎和软件工具的人机界面 (HMI) 的新标准。机器制造商看到了使用 Windows 创建可以简化机器设置、操作和维护的高级 HMI 的机会。但是,基于 Windows 的 PC 不能用于涉及时间关键控制的应用程序的某些部分,因为 Windows 本身不是 RTOS,并且不能确定性地执行控制功能。因此,除了 PC 之外,嵌入式系统设计人员通常会在机器上添加一个实时计算机子系统,以提供一整套产品功能。

另一方面,RTOS 供应商没有资源来构建可用于 Windows 的那种图形软件工具和支持。一些人看到了将他们的操作系统与 Windows 耦合的机会,以便在单个计算平台上将 RTOS 功能添加到基于 Windows 的系统中。

对于嵌入式系统 OEM 而言,将 RTOS 与 Windows 结合在一台机器上的好处是显而易见的,但与此相关的技术问题非常复杂。在一台计算机上运行两个操作系统并不是一个新概念。10 年前,它已在采用虚拟化技术的大型机上完成。该技术虚拟化了整个计算机平台,本质上在操作系统和硬件之间创建了一个接口层,就像今天的现代服务器虚拟化技术一样。

这样做的根本问题是,当应用软件需要与其 I/O 交互时,将操作系统和应用软件与硬件的直接访问隔离开会导致不确定的时间延迟。然而,实时应用程序必须直接访问(有时称为裸机访问)应用程序需要控制的设备,以便软件可以及时向 I/O 设备写入或读取数据,确定性的方式。

嵌入式虚拟化解决了多操作系统的确定性问题

必须设计一种方法来划分平台资源,以便 RTOS 可以直接访问 I/O 和确定性运行应用程序所必需的中断。像 Windows 这样的 GPOS 不允许共同驻留的 RTOS 控制其 I/O 设备。

相反,GPOS 通常在安装期间控制平台上所有可用的 I/O。除非修改 Windows 的选项会带来全新的问题,否则必须设计一种从 Windows 保留 I/O 的方法。由于这最初是在单核处理器时代完成的,因此必须开发技术让处理器以最小的开销将上下文从 RTOS 切换到 GPOS。这些是嵌入式虚拟化的原则,这些原则已在数千个成功的嵌入式系统产品中得到验证。

进程间通信使任务协调成为可能

在共享但独立的环境中运行应用程序的多个操作系统需要应用程序相互传递数据。这可以通过简单的保留内存块轻松执行,但需要应用程序进行一定程度的内务管理,并且在需要在特定时间传递和读取消息的实时系统中管理起来很麻烦。

通信过程需要以这样一种方式构建,即在预期保持确定性时发生消息传递。通信必须考虑消息的优先级相对于当时正在运行的其他实时任务的优先级,以便消息将在正确的时间或以正确的顺序传递。当在非实时 GPOS 环境中运行的应用程序与在实时环境中在 RTOS 上运行的应用程序之间进行通信时,这一点尤其重要。不得允许未确定优先级的事件中断已确定优先级的任务。

多核处理器有助于功能分区

多核处理器的引入导致一些规则发生了变化。原则上,处理器不再需要共享。每个操作系统都可以有自己的处理器内核(或者多个内核可以专用于一个操作系统);但是,实际上,Windows 等操作系统在安装时假定所有处理器内核都属于它们。

设置多核系统以使 GPOS 控制某些内核而不控制其他内核需要一种方法来告诉 GPOS 哪些内核对其不可用。通过适当的解决方法,四核处理器可以支持多种 GPOS:RTOS 配置,包括 3:1;2:2 和 1:3(参见图 2)。这种灵活性允许用户根据应用程序的要求优化平台的计算资源。虽然具有复杂 Windows 部分和轻实时要求的应用程序可以配置为运行 GPOS 应用程序的三个内核和一个运行 RTOS 的内核,但具有同时运行多个实时控制功能并与简单 HMI 通信的应用程序可能具有一个专用于 Windows 的内核和三个到多个 RTOS 实例。

图 2:嵌入式虚拟化支持多核处理器上的不同功能分区策略。

poYBAGKy33mAPETNAAGKd22rq0I388.png

由于可以在多核处理器上同时运行多个 RTOS,最初开发用于在单个共享处理器上的 GPOS 和 RTOS 之间进行通信的通信系统可以扩展为支持 RTOS 和 GPOS 的多个实例之间的通信。 从理论上讲,系统架构可以扩展为创建一个相互通信的操作系统网络,每个操作系统都运行特别适合其自身环境的应用程序元素。与系统的 I/O 需求一样,通信结构需要维护和支持实时子系统的实时确定性要求。

虚拟化支持跨平台的确定性通信

TenAsys 公司的 INtime RTOS 系列是一种已在关键任务应用程序中证明自己的嵌入式虚拟化环境。银泰嵌入式虚拟化技术封装了PC平台分区的原理,使Windows和RTOS并行运行。INtime 通过称为 GOBSnet 的全球对象网络系统促进 RTOS 和 Windows 实例之间的确定性通信。这包括一个内置的通信网络,允许不同操作系统上的多个应用程序以确定的方式在进程级别进行通信。

使用具有类似于 URL 的寻址方案的以太网,GOBSnet 被扩展以使单独的系统功能块(称为节点)能够在同一多核处理器上或跨物理不同的平台进行确定性通信。通过这种方式,大型和复杂的应用程序可以分布在多个节点上(参见图 3),从而在利用多核处理器的并行处理能力的同时简化它们的创建、调试和优化。这使得 OEM 可以通过扩展所使用的处理器或处理器内核的数量来以不同的成本点或功能级别生产一系列产品。

图 3:全球对象网络促进了复杂嵌入式应用(例如汽车测试系统)中内核之间和跨计算平台的通信。

poYBAGKy34WAByBOAAI75fEeuSg832.png

嵌入式虚拟化技术已经在实时应用程序中使用了十多年,但是随着包括越来越多 CPU 内核的处理器的出现,这些方法彻底改变嵌入式系统设计的全部潜力现在才变得清晰起来。随着全球对象网络支持,嵌入式虚拟化已准备好成为构建大型多操作系统系统的标准方式。

审核编辑:郭婷

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

    关注

    68

    文章

    20327

    浏览量

    254747
  • 嵌入式
    +关注

    关注

    5209

    文章

    20629

    浏览量

    336808
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11326

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请教:6G 确定性通信原型验证,FPGA+SDR 方案该怎么搭?

    平台选什么型号更适合做低时延空口验证? 原型验证阶段,最小可行验证系统应该包含哪些模块? 有没有类似确定性通信 / 硬实时通信的原型参考方案? 纯技术探讨,不涉及商业项目,希望做原型验证、FPGA、SDR 的前辈给点经验,感谢!
    发表于 04-11 10:24

    嵌入式AI开发必看:杜绝幻觉,才是工业级IDE的核心底气

    以全流程校验调试体系为核心,结合十余年工业实践沉淀,给出了工业级嵌入式 AI 开发的确定性解决方案。 一、 AI 幻觉的危害与行业困境 在工业嵌入式场景中,AI生成代码的“幻觉”问题,早已不是技术
    发表于 03-18 13:49

    什么是嵌入式应用开发?

    概述 所谓的嵌入式应用开发就是在嵌入式操作系统下进行开发、软硬件综合开发 ‌嵌入式应用开发‌是指在嵌入式
    发表于 01-12 16:13

    arm嵌入式主板优缺点

    Windows CE、Linux等主流的嵌入式操作系统。   ARM的优点   一、高可靠性、高稳定性:在工业控制领域,性能稳定可靠是自动控制基本的要求,ARM嵌入式主板有着很特殊
    发表于 01-08 07:08

    DP83826Ax:确定性、低延迟工业以太网PHY的深度解析

    DP83826Ax提供了极低的确定性延迟,TX延时仅40ns,RX延时为170ns,电源循环上的确定性延迟 ±2ns,XI到TX_CLK的固定相位关系
    的头像 发表于 12-15 15:20 534次阅读

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以从本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五个维度来拆解, 一
    发表于 12-09 10:33

    嵌入式系统的定义和应用领域

    。尽管有些嵌入式系统可能包含操作系统,但大多数情况下,它们仅由一个程序来控制整个逻辑。 从更专业的角度来看,嵌入式系统可以被定义为:以应用
    发表于 11-17 06:49

    单片机的操作系统

    单片机操作系统主要分为实时操作系统(RTOS)和嵌入式操作系统两类,以下是常见选择: 实时操作系统(RTOS) ‌ FreeRTOS ‌:
    发表于 11-14 06:18

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

    通常具有以下特点: 快速响应:实时嵌入式操作系统能够迅速响应外部事件或任务请求,以满足实时任务的时间要求。 稳定性和可靠性:实时嵌入式操作系统
    发表于 11-13 06:30

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

    知识: 一、C/C++编程C/C++是嵌入式系统开发中最常用的编程语言。熟练掌握C/C++语言将使你能够理解和编写底层驱动程序、操作系统以及与硬件交互的代码。对于嵌入式
    发表于 08-06 10:34

    康谋分享 | 基于传感器数据的自动驾驶仿真确定性验证

    自动驾驶仿真测试中,游戏引擎的底层架构可能会带来非确定性的问题,侵蚀测试可信度。如何通过专业仿真平台,在传感器配置与极端天气场景中实现测试数据零差异?确定性验证方案已成为自动驾驶研发的关键突破口!
    的头像 发表于 07-02 13:17 4366次阅读
    康谋分享 | 基于<b class='flag-5'>多</b>传感器数据的自动驾驶仿真<b class='flag-5'>确定性</b>验证

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

    Linux嵌入式与单片机嵌入式在多个方面存在显著的区别,以下是详细的比较和归纳: 一、基本概念 1. Linux嵌入式: 定义:将Linux操作系统运行在
    发表于 06-20 09:46

    零延迟响应:安卓工控机如何用实时操作系统(RTOS)赋能工业控制

    在工业4.0时代,工业控制系统对实时性的要求已突破毫秒级门槛,传统操作系统因任务调度延迟、中断响应不确定性等问题,难以满足精密运动控制、闭环反馈调节等场景需求。安卓工控机通过集成RTOS(实时
    的头像 发表于 06-09 15:49 1472次阅读

    嵌入式开发,如何选择适合的系统

    嵌入式ARM开发中,面对多种操作系统的选择,如何做出最适合项目的决策?本文将为您梳理常见系统的特性,帮助您快速了解它们的优缺点,以便更好地选择适合的系统。引言在
    的头像 发表于 05-20 11:32 1291次阅读
    <b class='flag-5'>嵌入式</b>开发,如何选择适合的<b class='flag-5'>系统</b>?

    嵌入式开发入门指南:从零开始学习嵌入式

    特定功能的计算机系统,广泛应用于智能家居、工业控制、医疗设备、车载系统等领域。 2. 学习嵌入式开发的前置知识熟悉C语言编程掌握基本的数据结构与算法了解数字电路与微控制器原理熟悉Linux操作
    发表于 05-15 09:29