eMCOS®的特性
现代多内核设计
eMCOS 是世界上第一个支持现代多内核架构(又称分布式微内核)的、高度可扩展的,商用实时操作系统 (RTOS)。
与所有其他传统 RTOS 架构相比,这种新的操作系统架构提供了一种可扩展性,不仅支持更多的核心数量,而且还支持异构硬件配置。
这包括各种架构,例如片上闪存微控制器、SoC、DSP 和 FPGA。
该平台不仅已经移植到各种硬件架构,而且其高度可移植的源代码和设计也让它更加容易移植到新平台。
传统单个微内核操作系统架构是为单核芯片而设计的, 它无法将不同的处理器架构进行集成处理,因此无法提供优化的性能。
要实现异构多核/众核计算的高效 HPC,我们需要一个支持现代多内核架构的操作系统。
该操作系统需要具备高并行性,每个处理器都有各自针对异构计算优化的独立微内核。
此外,eMCOS 独特的调度算法, 在提供嵌入式系统所必需的实时功能的同时,提供多核/众核处理器应有的高性能。
eMCOS 为单核和多核处理器提供的编程模型和接口,与其他广泛使用的 RTOS 相同, 应用开发者可以很快的熟悉 eMCOS 的开发风格。
具有不同可靠性的完全隔离和紧密耦合的应用
因为每个内核上的应用都是独立处理的, 所以应用程序的运行环境是完全隔离。
应用程序通过非常快速的轻量级消息与在其他内核上的应用程序进行通信。
现代多内核(分布式微内核)
在多内核架构中,每个内核上都运行着一个独立的微内核。
这些微内核非常精简 ,仅包含轻量级、快速的功能, 它们提供内核之间的消息传输、内核本地调度、线程管理等基本服务。
更高级别的操作系统服务(例如文件管理, 网络服务, 以及其他中间件和设备驱动程序)作为独立于微内核的线程服务器分布在多个内核中,并以面向服务的架构 (SOA) 的客户端-服务器模式运行。
应用程序被划分为进程(Process),然后进程被划分为线程(Thread)。
这些线程随后可以在不同的内核上并行执行。
为确保所有内核都得到高效使用,这些线程组(Thread Group) 会根据线程优先级和各个内核的运行状态来调度和执行。
高性能、真正的并行处理
这些线程都通过微内核消息传输互连。
从应用的角度来看,操作系统服务和中间件 API 仍然可以像正常的 C/C++ 语言函数一样使用。
由于集成了消息传递功能,用户 API 不需要进一步考虑这种底层机制。
每个内核上都有一个独立的微内核在运行,这种架构减少了资源争用,并实现了高吞吐量。
通过保持分开每个内核的独立线程数据库 (TDB),一个内核上的线程切换就不会干扰其他内核的线程执行。
使用传统的(单个)微内核 RTOS,不同内核之间的每次通信都会停止所有内核,因为该架构的确定性仅基于单个线程数据库。这意味着用户应用必须处理全局内核锁,这会产生复杂的应用行为。
在现代多内核中,每个核心都有一个内核和自己的线程数据库。所以在内核间通信期间, 通信内核只需要处理更短的本地同步锁。
这样一方面通过应用通信减少了 RTOS 瓶颈,另一方面通过改进的抗干扰性 (FFI) 提高了功能安全。
以下的示例说明了传统微内核 RTOS 的任务切换时间如何随着内核数量的增加而增加,而现代多内核 RTOS 的任务切换时间完全与内核数量无关。
为了运行一些需要高度并行化的应用程序,例如编码和图像处理, eMCOS 还提供了线程池和快速消息传递库,以便以最小的努力实现并行线程执行的通信和同步。
Back to top
基于半优先级的调度器 (专利)
基于半优先级的调度
eMCOS 专属的调度算法:“基于半优先级的调度”(日本专利号 5734941、5945617), 不仅确保了嵌入式系统的实时确定性,还通过负载平衡提供最大性能。
在基于半优先级的调度中,两种调度器并行运行。各个线程可以配置为硬实时(内核亲和度功能)或软实时线程(启用负载平衡)。
在保持实时性能的同时提高吞吐量
第一个调度器在每个内核上独立运行,它使用基于优先级的调度算法,来选择要执行的线程。
因为每个内核都是独立运行的,所以调度和上下文切换类似于单核系统(内核之间没有同步)。
第二个调度器通过定期测量每个线程的 CPU 利用率来分配负载。
它考虑到了低优先级线程组(软实时线程)、处理器内核的相对吞吐量,还有各自线程的优先级。
为了最大程度提高多核/众核处理器的整体性能,它可以将低优先级的线程转移到不太繁忙的内核。
提供时间保护以实现更安全的系统集成
高优先级线程(硬实时线程、内核亲和度功能)保持不被第二个调度器触及,以确保系统的确定性。
在这种情况下,没有处理器内核的迁移,没有执行中断。应用开发者可以精确地计算出这些高优先级线程的处理时间,一遍符合实时处理限制的需求。
这种半优先级调度的性能明显优于其他调度算法,特别是在一些有线程工作负载波动较大的线程配置里。
通过时间分区改进系统集成
应用程序不仅需要空间分离(内存、I/O 访问),还需要时间分离。
eMCOS POSIX 应用程序可以通过其基于“优先级分区调度”的智能时间分区功能进行调度。
软件集成工程师通过优先级分区调度,来管理大量优先级,并对具有混合关键性的应用保持高水平的抗干扰性 (FFI)。
大多数软件模块都是独立开发和测试的,因此它们不必与其他软件共享 CPU。
在紧张的软件集成阶段,当越来越多的应用软件集成在同一个 CPU 上时,时间分区能让客户进一步增强线程优先级的管理,从而避免应用程序行为的复杂化。
软件集成工程师可以通过使用调度集群窗口来管理应用程序,并持续更新其应用 和 规避零星的复杂效应
时间分区包括进程及其线程。
这些分区被分配给由一组 CPU 核心组成的“调度集群”。
在调度集群“窗口”内,时间分区将按顺序配置。在每个时间分区中,各个活动分区的应用(进程/线程)具有最高的优先级。但是,如果活动分区处于空闲状态,其他分区可以根据其优先级使用该空闲时间。
调度集群窗口会不断重复。
与其他时间分区方法相比,优先级分区调度提供了一种非常方便的机制,通过将线程优先级与“应用时隙”分开来控制应用级别的优先级,同时还注意高效利用所有 CPU 空闲时间。
Back to top
硬件和软件的高度可扩展性
从单核到异构多核/众核的硬件可扩展性
现代 eMCOS 多内核架构(分布式微内核)从单核微控制器扩展到异构多/众核处理器和多芯片系统。
eMCOS 不仅兼容同构多核/众核处理器(无缓存同调功能), 还兼容不同架构的异构多核/众核处理器。
除此之外,它还简化了基于多芯片系统架构的开发。
现有 API 和编程模型的软件可扩展性
eMCOS 应用程序的编程模型独立于底层 CPU 指令集。
eMCOS 的应用程序界面可以与常规开发语言(如C或C++)一起使用 。如果需要,我们也可以提供其它编程语言解释器, 例如 Rust。
eMCOS 具有不同的配置,例如多进程 POSIX 和 AUTOSAR(SC1 和 SC3)。它还为混合临界应用程序提供Hypervisor功能选项。
对 POSIX 和 AUTOSAR APIs 的支持,可以使 eMCOS 轻松地再利用 Linux 和 AUTOSAR 的软件资源。
兼容 POSIX 的配置文件:eMCOS POSIX
eMCOS POSIX 是符合 POSIX 1003.13 PSE 53 并支持多进程编程的 eMCOS 配置文件。
在不降低 eMCOS 的可扩展性和实时性能的情况下支持 POSIX API 规范。
通过使用高度可移植的 POSIX 应用程序接口,可以在系统中轻松实现 Linux 和 Android 等通用操作系统的各种现有库中的功能。这提供了 eMCOS POSIX 特性,例如进程和系统级别的线程、信号和进程间通信。
它符合 POSIX 1003.13 PRE53 并支持 PSE 51(一个用于具有多线程控制的单个 POSIX 进程的配置文件)以及用于多 POSIX 进程的 PSE 53。因此,可以轻松集成使用 POSIX 标准的各种库,例如 ROS 和 AUTOSAR Adaptive。
eMCOS 为用户提供了基于高度创新架构的传统 POSIX 用户界面。
了解更多
Type 1.5 Hypervisor :eMCOS Hypervisor
eMCOS Hypervisor作为eMCOS POSIX 的扩展功能选项, 这意味着 eMCOS POSIX 的实时和安全关键型应用可以与 Linux 和 Android 客户机操作系统一起部署在同一硬件平台上。
了解更多
软件开发的可扩展性
通过 eSOL 高度灵活且易于使用的 IDE,开发团队可以使用便捷的工具进行调试和性能优化。
eSOL 的IDE 支持 备受嵌入式开发人员青睐 的 Eclipse 和 Visual Studio Code 编辑器。
其基于 CMake 的构建流程能够大量的简化应用程序的移植,特别是现有的 Linux 应用程序。eSOL 预制的工具链经过安全认证, 并且同时支持仿真开发、模拟器开发和模型开发。
此外,作为 eMCOS SDK 的一部分,还为 eMCOS 提供了基本板级支持包 (Basic BSP)、各种中间件和设备驱动程序等运行时软件和开发工具,以支持高效开发高性能应用。
除了我们的 COTS 产品,我们还提供专业服务和包括产品支持、培训、定制和移植在内的一站式服务。
了解更多
Back to top
安全性
ISO 26262 ASIL D 认证
eMCOS在2018年3月获得作为功能安全标准第三方认证机构的德国SGS-TUV Saar GmbH公司所颁发的功能安全标准ISO 26262(汽车)的最高安全等级(ASIL D)认证。
作为安全相关文档,eSOL将提供安全手册和安全报告。安全手册中记载了eMCOS的安全理念、其实现方案和妥当性确认方法、以及考虑了对系统安全性影响的eMCOS使用方法。安全报告中记载了使用安全手册中记载的妥当性确认方法确认妥当性的结果。通过有效利用该安全相关文档,与采用非认证OS时相比,进行测试用例的制作、测试、基于测试的证据制作以及OS相关安全性说明作业时可以更省力,也可以降低符合用户最终产品标准所需的成本。
eMCOS 已获得以下第三方功能安全标准认证。
|
Back to top
eMCOS Hypervisor
eMCOS Hypervisor支持在单一硬件平台上的通用操作系统上集成安全的实时应用和功能丰富的应用。这就允许根据适用的行业标准开发和认证混合关键性系统。
eMCOS Hypervisor是作为 eMCOS POSIX 的扩展选项来实现的。
混合临界性
这意味着 eMCOS POSIX 的实时和安全关键型应用可以与 Linux 和 Android 客户机操作系统一起部署在同一硬件平台上。
这进一步增强了 eMCOS 的可扩展性,并为用户提供了更多选项来将各种功能集成到一个系统中,同时只需很少的更改,仍然能够使用现有的基于 Linux 或 Android 的平台。
Linux 和 Android 客户机操作系统提供必要的 POSIX 兼容 API,并支持广泛的开放式通信协议或图形显示解决方案。
这种组合为实施具有混合临界性的先进、开放和多样化的系统提供了更大的灵活性。
Hypervisor与容器
在安全相关互联应用的联合软件开发过程中,云开发者和嵌入式开发者之间经常会产生误解。
其中之一就是用不同的方法来隔离在硬件上运行的应用程序。
尽管容器经常在云开发中被用到,但具使用使用Hypervisor 更加符合嵌入式系统开发的高功能安全需求。
Hypervisor提供比容器更高的应用程序隔离。
然后Hypervisor上的客户操作系统可以利用容器的优势,比如把容器部署到CI持续开发中。
类别 | Hypervisor | 类别 |
通用设置 | Hypervisor是一种强大的虚拟化技术:每个环境都在一个完整的虚拟机 (VM) 中运行 | 容器是一种较弱的虚拟化技术:应用组共享相同的操作系统服务 |
精细度 | 应用组 + 客户机操作系统 | 具有应用组的一个操作系统 |
MMU 使用情况 | 2 级Hypervisor,1 级客户机操作系统 | 1 级主机操作系统 |
性能 | 上下文切换的成本更高 | 只是主机操作系统 |
整合过程 | 增量集成 | 所有应用必须一起验证 |
软件更新 | 影响一个客户机操作系统 | 影响整个平台 |
安全漏洞 | 影响一个客户机操作系统 | 影响整个平台 |
安全问题 | 可以分解成子系统 | 必须考虑所有应用 |
Type 1.5 Hypervisor
eMCOS Hypervisor提供 Type 1.5 Hypervisor功能,与普通 Type 1 Hypervisor (bare metal)不同的是,它还通过其 POSIX APIs 提供直接的实时功能。
因此,客户机操作系统可以由虚拟机管理器控制,同时本机 POSIX 进程应用可以实时得到处理。
此处像 virtio 等类似的软件标准 也被集成到了eMCOS Hypervisor 产品中, 以便更加容易重新使用已有的源代码。
eMCOS Hypervisor设备管理
eMCOS 提供了四种不同的共享设备访问模式。
总结
eMCOS Hypervisor提供了一般Hypervisor的所有优势,可用于快速开发具有混合临界性和高性能的应用程序。
Back to top