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

    文章

    20154

    浏览量

    247419
  • 嵌入式
    +关注

    关注

    5186

    文章

    20166

    浏览量

    329097
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11223

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是嵌入式操作系统

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

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

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

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

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

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

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

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

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

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

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

    什么样的才叫实时工业操作系统

    实时工业操作系统的核心是在严格时间约束下保证任务执行的确定性、可靠性和安全性,通常需通过专用架构、实时调度算法和工业级认证来满足严苛的工业环境需求。选择时需根据具体场景的实时性等级(硬/软)、硬件兼容性及安全标准进行匹配。
    的头像 发表于 04-17 10:09 568次阅读
    什么样的才叫实时工业<b class='flag-5'>操作系统</b>

    RT-Thread嵌入式操作系统专业培训班-深圳站重磅开启!

    RT-Thread官方将在深圳举办为期三天的嵌入式操作系统专业培训班!本次培训将深入讲解RT-Thread嵌入式实时操作系统的核心技术与实战应用,助力开发者快速掌握RTOS开发精髓。无
    的头像 发表于 04-11 18:18 659次阅读
    RT-Thread<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>专业培训班-深圳站重磅开启!

    如何正确选择嵌入式文件系统

    Linux嵌入式系统中,文件系统和缓存机制常导致数据存储稳定性问题。本文通过案例分析原因,对比不同文件系统特性,为开发者提供优化建议,助力提
    的头像 发表于 03-17 11:35 871次阅读
    如何正确选择<b class='flag-5'>嵌入式</b>文件<b class='flag-5'>系统</b>?

    RT-Thread嵌入式操作系统专业培训班来上海啦!

    RT-Thread官方将在上海(RT-Thread大本营)发起为期三天的嵌入式操作系统专业培训班!本次培训将会深入讲解RT-Thread嵌入式实时操作系统的核心概念、实战技巧和应用场景
    的头像 发表于 02-27 17:27 832次阅读
    RT-Thread<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>专业培训班来上海啦!

    RT-Thread嵌入式操作系统专业培训班登陆郑州!

    RT-Thread官方将在河南-郑州发起为期三天的嵌入式操作系统专业培训班!本次培训将深入讲解RT-Thread嵌入式实时操作系统的核心概念、实战技巧和应用场景。无论您是刚接触
    的头像 发表于 02-12 18:28 726次阅读
    RT-Thread<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>专业培训班登陆郑州!

    2025嵌入式操作系统专业培训班正式启动!

    RT-Thread官方将在河南-郑州发起为期三天的嵌入式操作系统专业培训班!本次培训将会深入讲解RT-Thread嵌入式实时操作系统的核心概念、实战技巧和应用场景!无论企业团队/工程师
    的头像 发表于 01-09 18:46 1376次阅读
    2025<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>专业培训班正式启动!

    ARM嵌入式实时操作系统比较

    嵌入式系统领域,实时操作系统(RTOS)是确保任务按时完成的关键技术。ARM架构因其低功耗、高性能的特点,在嵌入式系统中得到了广泛应用。本
    的头像 发表于 12-28 09:15 2465次阅读

    鸿道Intewell工业操作系统,三大关键技术,领跑行业前沿

    鸿道工业操作系统,是软件定义控制的工业实时操作系统,具备三大关键技术:1、确定性计算与高实时响应(微秒级、关键指标)提供确定性的计算与高实时的系统
    的头像 发表于 12-25 14:46 784次阅读

    新手怎么学嵌入式?

    基本的概念。嵌入式系统是一种将计算机技术嵌入到特定设备中的系统,它通常具有特定的功能和有限的资源。你需要学习一些计算机基础知识,如数据结构、操作系统
    发表于 12-12 10:51