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

    文章

    19183

    浏览量

    229226
  • 嵌入式
    +关注

    关注

    5073

    文章

    19038

    浏览量

    303596
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10832

    浏览量

    211229
收藏 人收藏

    评论

    相关推荐

    科技云报到:数字化转型,从不确定性确定性的关键路径

    科技云报到:数字化转型,从不确定性确定性的关键路径
    的头像 发表于 11-16 16:52 274次阅读
    科技云报到:数字化转型,从不<b class='flag-5'>确定性</b>到<b class='flag-5'>确定性</b>的关键路径

    什么是嵌入式操作系统?

    什么是嵌入式操作系统? 想象一下,如果一个智能设备,比如你口袋里的智能手机,是一个有头脑的机器人,那么嵌入式操作系统(Embedded Operating System,简称EOS)就
    发表于 11-08 15:07

    嵌入式 Linux 操作系统配置

    随着物联网(IoT)和智能设备的快速发展,嵌入式系统在各个领域扮演着越来越重要的角色。Linux因其开源、灵活和稳定的特性,成为嵌入式系统的首选操作
    的头像 发表于 11-06 10:22 239次阅读

    ARM开发板上的实时操作系统介绍

    在现代电子设备中,嵌入式系统扮演着越来越重要的角色。ARM处理器因其低功耗、高性能的特点,成为了许多嵌入式系统的首选平台。 一、实时操作系统
    的头像 发表于 11-05 11:34 299次阅读

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+ 了解Hypervisor

    被称为主管(Supervisor),而虚拟机监控程序用来托管主管,称为超级主管,即Hypervisor,也被称为虚拟机管理器。看来Hypervisor是用来实现主机虚拟化的,同时管理多个异构
    发表于 10-13 16:47

    嵌入式linux开发板怎么操作

    嵌入式Linux开发板是一种基于Linux操作系统嵌入式系统开发平台。它通常包括一个处理器、内存、存储器、输入/输出接口等硬件组件,以及一个基于Linux的
    的头像 发表于 09-02 09:09 332次阅读

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

    探索及实践”的专题报告。张云飞介绍了麒麟软件基于RUST语言实现的嵌入式虚拟化软件-Kvisor,,该软件支持实时与非实时操作系统混合部署与通信。最后分享了针对实际应用场景应用探索与实践。 本届论坛
    发表于 08-30 17:24

    RT-Thread出席第六届中国嵌入式技术大会,共话嵌入式操作系统与智能工业

    第六届中国嵌入式技术大会将于8月27-28日在深圳会展中心(福田)1号馆举行。本届大会以“AI与开源,开启嵌入式系统智能新时代”为主题,聚焦人工智能与嵌入式应用、
    的头像 发表于 08-03 08:35 373次阅读
    RT-Thread出席第六届中国<b class='flag-5'>嵌入式</b>技术大会,共话<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>与智能工业

    第六届国产嵌入式操作系统技术与产业发展论坛议程发布

    每年一度的国产嵌入式操作系统论坛即将在杭州滨江举办,今年是第六届了,又是中国嵌入式系统新朋老友相聚的时刻。大模型催生AI走人千家万户、唤醒端侧AI的需求爆发。以机器人、无人驾驶和智能制
    发表于 07-26 10:54

    嵌入式系统怎么学?

    开发工具:熟悉常用的嵌入式系统开发工具,包括集成开发环境(IDE)、编译器、调试器(如Keil、IAREmbedded Workbench、Eclipse)等。 5、实时操作系统(RTOS):了解实时
    发表于 07-02 10:10

    ETAS推出Time-Triggered Scheduling (TTS)的确定性调度解决方案

    在2024年2月26日,ETAS推出了名为“Time-Triggered Scheduling (TTS)”的确定性调度解决方案。
    的头像 发表于 04-25 16:56 2264次阅读
    ETAS推出Time-Triggered Scheduling (TTS)<b class='flag-5'>的确定性</b>调度解决方案

    什么是嵌入式实时系统的确定性?简析EDMS中的确定性

    ETAS Deterministic Middleware Solution点击跳转(EDMS,前身为AOS) 确定性中间件解决方案,是一个中间件框架,旨在面向汽车领域内应用程序的独特挑战和需求
    的头像 发表于 04-15 11:22 1064次阅读
    什么是<b class='flag-5'>嵌入式</b>实时<b class='flag-5'>系统</b><b class='flag-5'>的确定性</b>?简析EDMS中<b class='flag-5'>的确定性</b>

    再谈嵌入式实时操作系统

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

    瑞萨CTSU程序在向嵌入式OS操作系统移植时的注意事项

    瑞萨CTSU程序在向嵌入式OS操作系统移植时的注意事项
    的头像 发表于 03-29 08:05 323次阅读
    瑞萨CTSU程序在向<b class='flag-5'>嵌入式</b>OS<b class='flag-5'>操作系统</b>移植时的注意事项

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

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