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

    文章

    17934

    浏览量

    221419
  • 嵌入式
    +关注

    关注

    4957

    文章

    18115

    浏览量

    285835
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10301

    浏览量

    206122
收藏 人收藏

    评论

    相关推荐

    请问ADuC7060能否移植uCOS II嵌入式操作系统

    我想问一下ADuC7060能否移植uCOS II嵌入式操作系统
    发表于 01-15 06:59

    大规模确定性网络技术分析与展望

    确定性网络可以分为不同的技术路线,不同的技术路线往往从不同的层次切入来构建确定性网络,借助分层技术图谱可以清晰、快速地理清各个技术路线相关技术间的关系,其中不同技术工作或适应在不同的网络层次和网络
    的头像 发表于 11-06 16:26 731次阅读
    大规模<b class='flag-5'>确定性</b>网络技术分析与展望

    有无操作系统嵌入式Linux驱动设备有何区别?

    有无操作系统嵌入式Linux驱动设备有何区别? 嵌入式系统是指集成电子设备上的计算机系统,通常用于控制、监测、
    的头像 发表于 10-29 17:29 387次阅读

    一种嵌入式操作系统—VxWorks

    电子发烧友网站提供《一种嵌入式操作系统—VxWorks.pdf》资料免费下载
    发表于 10-27 10:59 0次下载
    一种<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>—VxWorks

    什么是嵌入式Linux?

    Linux到底是什么呢? 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。简单来说,是除了电脑之外可以运行程序的设备,将C
    发表于 10-11 13:47

    如何实施时间敏感型网络以确保确定性通信

    作者:Jeff Shepard 确定性通信在各种应用中至关重要,如自主机器人和其他工业 4.0 系统、5G 通信、汽车高级驾驶辅助系统 (ADAS) 以及实时流服务。IEEE 802以太网标准(即时
    的头像 发表于 10-03 14:51 578次阅读
    如何实施时间敏感型网络以确保<b class='flag-5'>确定性</b>通信

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统
    发表于 09-28 06:59

    嵌入式操作系统IJLC/OS一Ⅱ在通信电源监控中应用

    的查询分析和统计等功能也必不可少。通信电源设备运行参数,实时效果强,在设备当中选择功能强大的控制芯片.应用嵌入式操作系统.使其尽可能地发挥出强大的软件控制功能,满足用户对通信电源控制的各种要求。与传统
    发表于 09-20 06:46

    简化超高速数字系统确定性延迟的设计

    电子发烧友网站提供《简化超高速数字系统确定性延迟的设计.pdf》资料免费下载
    发表于 09-14 09:27 0次下载
    简化超高速数字<b class='flag-5'>系统</b>中<b class='flag-5'>确定性</b>延迟的设计

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统
    发表于 09-11 07:24

    确定性时代下的新投资范式

    对此,广发证券在研报中指出,全球新投资范式的表象是拥抱“确定性资产”,这种确定性一方面体现为低估低波稳定分红永续经营的确定性,另一方面是新科技创新周期的远景确定性,本质都是对
    的头像 发表于 07-10 10:51 451次阅读
    不<b class='flag-5'>确定性</b>时代下的新投资范式

    什么是ARM-Linux嵌入式操作系统移植呢?

    什么是ARM-Linux嵌入式操作系统移植呢?
    发表于 05-16 10:22

    系统升级 | RK3568开发平台成功搭载SylixOS国产实时操作系统

    SylixOS 是一款大型嵌入式实时操作系统,诞生于2006年,起初它只是一个小型多任务调度器,经过多年开发,SylixOS 目前已经成为一个功能完善、性能卓越、可靠稳定的嵌入式系统
    发表于 04-25 14:18

    嵌入式实时虚拟机ZVM介绍

    嵌入式实时虚拟化技术是一种允许在单个硬件平台上同时运行多个操作系统、并保持确定性和时间关键性能的技术,该技术可为嵌入式
    的头像 发表于 03-25 09:45 1979次阅读

    RTOS和GPOS有什么区别?

    RTOS和GPOS是两种类型的操作系统,具有不同的设计目标和权衡。RTOS(实时操作系统)设计用于需要精确定时和确定性行为的系统,而GPOS
    发表于 03-22 13:51