操作系统基础知识介绍之Mixed CriticalitySystems——混合关键系统
一、发展背景
在嵌入式场景中,虽然Linux已经得到了广泛应用,但并不能覆盖所有需求,例如高实时、高可靠、高安全的场合。这些场合往往是实时操作系统 的用武之地。有些应用场景既需要Linux的管理能力、丰富的生态又需要实时操作系统的高实时、高可靠、高安全,那么一种典型的设计是采用一颗性能较 强的处理器运行Linux负责富功能,一颗微控制器/DSP/实时处理器运行实时操作系统负责实时控制或者信号处理,两者之间通过I/O、网络或片外 总线的形式通信。这种方式存在的问题是,硬件上需要两套系统、集成度不高,通信受限与片外物理机制的限制如速度、时延等、软件上Linux和实时 操作系统两者之间是割裂的,在灵活性上、可维护性上存在改进空间。
受益于硬件技术的快速发展,嵌入式系统的硬件能力越来越强大,如单核能力不断提升、单核到多核、异构多核乃至众核的演进,虚拟化技术和可信执行环境(TEE) 技术的发展和应用,未来先进封装技术会带来更高的集成度等等,使得在一个片上系统中(SoC)部署多个OS具备了坚实的物理基础。
同时,受应用需求的推动,如物联网化、智能化、功能安全与信息安全等等,整个嵌入式软件系统也越发复杂,全部由单一OS承载所有功能所面临的挑战越来越大。 解决方式之一就是不同系统负责所各自所擅长的功能,如Windows的UI、Linux的网络通信与管理、实时操作系统的高实时与高可靠等,而且还要易于开发、部署、 扩展,实现的形式可以是容器、虚拟化等。
面对上述硬件和应用的变化,结合自身原有的特点,嵌入式系统未来演进的方向之一就是 混合关键性系统(MCS, Mixed Criticality System), 这可以从典型的 嵌入式系统-汽车电子的最近发展趋势略见一斑。
二、相关实例

从openEuler Embedded的角度,混合关键性系统的大致架构如上图所示,所面向的硬件是具有同构或异构多核的片上系统,从应用的角度看会同时部署多个OS/运行时,例如 Linux负责系统管理与服务、1个实时操作系统负责实时控制、1个实时操作系统负责系统可靠、1个裸金属运行时运行专用算法,全系统的功能是由各个OS/运行时协同完成。中间的 混合部署框架 和 嵌入式虚拟化 是具体的支撑技术。关键性(Criticality)狭义上主要是指功能安全等级,参考泛功能安全标准IEC-61508,Linux可以达到SIL1或SIL2级别, 实时操作系统可以达到最高等级SIL3; 广义上,关键性可以扩展至实时等级、功耗等级、信息安全等级等目标。
三 、解决问题与发展前景
在这样的系统中,需要解决如下几个问题:
-
高效地混合部署问题:如何高效地实现多OS协同开发、集成构建、独立部署、独立升级
-
高效地通信与协作问题: 系统的整体功能由各个域协同完成,因此如何高效地实现不同域之间高效、可扩展、实时、安全的通信
-
高效地隔离与保护问题: 如何高效地实现多个域之间的强隔离与保护,使得出故障时彼此不互相影响,以及较小的可信基(Trust Compute Base)
-
高效地资源共享与调度问题: 如何在满足不同目标约束下(实时、功能安全、性能、功耗),高效地管理调度资源,从而提升硬件资源利用率
对于上述问题,openEuler Embedded的当前思路是 混合关键性系统 = 部署 + 隔离 + 调度 , 即首先实现多OS的混合部署,再实现多OS之间的隔离与保护,最后通过 混合关键性调度提升资源利用率, 具体可以映射到 混合部署框架 和 嵌入式虚拟化。 混合部署框架解决 高效地混合部署问题 和 高效地通信与协作问题, 嵌入式虚拟化解决 高效地隔离与保护问题 和 高效地资源共享与调度问题。
相关文章:
操作系统基础知识介绍之Mixed CriticalitySystems——混合关键系统
一、发展背景 在嵌入式场景中,虽然Linux已经得到了广泛应用,但并不能覆盖所有需求,例如高实时、高可靠、高安全的场合。这些场合往往是实时操作系统 的用武之地。有些应用场景既需要Linux的管理能力、丰富的生态又需要实时操作系统的高实时、…...
【数据结构初阶】详解链表OJ题
目录一.删除链表中等于给定值的节点二.合并有序链表并返回三.链表的回文结构1.反转单链表2.返回非空链表的中间节点四.输出链表倒数第K个节点五.基于给定值x分割单链表六.返回两个链表的第一个中间节点一.删除链表中等于给定值的节点 我们先来看第一题(题目链接): 因为我们需…...
Java基本数据类型变量自动提升、强制类型转换、String基本类型使用
文章目录基本数据类型变量自动提升特殊情况强制类型转换String基本类型使用基本数据类型变量自动提升 规则: 将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大)的类型 。 byte、short、char-->int-->…...
Redis锁与幂等性不得不说的故事
前言: 相信很多小伙伴对缓存锁都不陌生,但是简单的缓存锁想要用好还是需要一些功力。本文总结了笔者多年使用缓存所的一些心得,欢迎交流探讨~ 幂等模型: 幂等场景一般由查重写入两步操作组成,两步操作组成一个最小完…...
Spark 应用调优
Spark 应用调优人数统计优化摇号次数分布优化Shuffle 常规优化数据分区合并加 Cache优化中签率的变化趋势中签率局部洞察优化倍率分析优化表信息 : apply : 申请者 : 事实表lucky : 中签者表 : 维度表两张表的 Schema ( batchNum,carNum ) : ( 摇号批次,…...
synchronized 与 volatile 关键字
目录1.前言1.synchronized 关键字1. 互斥2.保证内存可见性3.可重入2. volatile 关键字1.保证内存可见性2.无法保证原子性3.synchronized 与 volatile 的区别1.前言 synchronized关键字和volatile是大家在Java多线程学习时接触的两个关键字,很多同学可能学习完就忘记…...
【0成本搭建个人博客】——Hexo+Node.js+Gitee Pages
目录 1、下载安装Git 2、下载安装Node.js 3、使用Hexo进行博客的搭建 4、更改博客样式 5、将博客上传到Gitee 6、更新博客 首先看一下Hexo的博客的效果。 1、下载安装Git Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本…...
【面试实战】认证授权流程及原理分析
认证授权流程及原理分析 1、认证 (Authentication) 和授权 (Authorization)的区别是什么?2、什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?3、Cookie 和 Session 有什么区别?如何使用Session进行身份验证?1、认证 (Authentication) 和授权 (Authorizatio…...
TPM命令解析之tpm2_startauthsession
参考网址链接:tpm2-tools/tpm2_startauthsession.1.md at master tpm2-software/tpm2-tools GitHub 命令名称 tpm2_startauthsession 功能 启动一个TPM会话。 命令形式 tpm2_startauthsession [OPTIONS] 描述 启动一个TPM会话。默认是启动一个试验(…...
第14章 局部波动率模型
这学期会时不时更新一下伊曼纽尔德曼(Emanuel Derman) 教授与迈克尔B.米勒(Michael B. Miller)的《The Volatility Smile》这本书,本意是协助导师课程需要,发在这里有意的朋友们可以学习一下,思…...
云原生周刊:开源“赢了”,但它可持续吗?
日前召开的 State of Open 会议上,开源“赢了”,但如果政府和企业不站出来确保生态系统在未来的弹性和可持续性,那么它仍然会失败。 OpenUK 首席执行官 Amanda Brock 在开幕式上表示,数字化和开源在过去 5 到 10 年的进步提升了工…...
读《企业IT架构转型之道》
本书还没读完,暂摘抄一些概念,因为自身做的新系统也在转型,从单体式到一体化一年来遇到很多问题有技术上的,也有团队协作的,过程是痛苦且复杂的,所以在刚翻阅前几十页时候,对于淘宝技术团队转型…...
Qt中的QTcpSocket、QWebSocket和QLocalSocket
同时实现了QTcpSocket、QWebSocket和QLocalSocket的简单通讯deamon,支持自动获取本机ip,多个客户端交互。在这个基础上你可以自己加错误检测、心跳发送、包封装解析和客户端自动重连等功能。 获取本机电脑ip: QString Widget::getIp() {QSt…...
枚举学习贴
1. 概述 1.1 是什么 枚举对应英文(enumeration, 简写 enum)枚举是一组常量的集合。可以这里理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象 1.2 枚举的二种实现方式 自定义类实现枚举使用 enum 关键字实现枚举 1.3 什么时候用 存在有限…...
【C++】30h速成C++从入门到精通(继承)
继承的概念及定义继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序…...
Java多线程还不会的进来吧,为你量身打造
💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》…...
8 神经网络及Python实现
1 人工神经网络的历史 1.1 生物模型 1943年,心理学家W.S.McCulloch和数理逻辑学家W.Pitts基于神经元的生理特征,建立了单个神经元的数学模型(MP模型)。 1.2 数学模型 ykφ(∑i1mωkixibk)φ(WkTXb)y_{k}\varphi\left(\sum_{i1…...
使用QIS(Quantum Image Sensor)图像重建总结(1)
最近看了不少使用QIS重建图像的文章,觉得比较完整详细的还是Abhiram Gnanasambandam的博士论文:https://hammer.purdue.edu/articles/thesis/Computer_vision_at_low_light/20057081 1 介绍 讲述了又墨子的小孔成像原理,到交卷相机…...
【SpringCloud】SpringCloud教程之Nacos实战(二)
目录前言一.Nacos实现配置管理二.Nacos拉取配置三.Nacos配置热更新(自动刷新,不需要重启服务)1.在有Value注入变量所在类添加注解2.新建类用于属性加载和配置热更新四.Nacos多环境配置共享1.多环境共享配置2.配置的加载优先级测试3.配置优先级前言 Nacos实战一&…...
利用Qemu工具仿真ARM64平台
Windows系统利用Qemu仿真ARM64平台0 写在最前1 Windows安装Qemu1.1 下载Qemu1.2 安装Qemu1.3 添加环境变量1.4测试安装是否成功2. Qemu安装Ubuntu-Server-Arm-642.1 安装前的准备2.2 安装Ubuntu server arm 64位镜像3 Windows配置Qemu网络和传输文件3.1 参考内容3.2 Windows安装…...
实战避坑:在Windows上用C++/WinRT搞定双模蓝牙(EDR+Ble)通信的完整流程
实战避坑:在Windows上用C/WinRT搞定双模蓝牙(EDRBle)通信的完整流程 蓝牙技术在现代设备中无处不在,但对于开发者而言,实现Windows桌面应用与双模蓝牙设备(同时支持经典蓝牙EDR和低功耗蓝牙BLE)…...
Amlogic S9XXX Armbian刷机完全指南:从入门到进阶的5个关键问题
Amlogic S9XXX Armbian刷机完全指南:从入门到进阶的5个关键问题 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l,…...
手把手教程:在CSDN星图一键部署LFM2.5轻量模型,低配电脑也能跑AI
手把手教程:在CSDN星图一键部署LFM2.5轻量模型,低配电脑也能跑AI 还在为本地跑不动大模型而烦恼吗?今天我要分享一个好消息:即使你的电脑配置不高,也能轻松部署一个实用的AI文本生成模型。LFM2.5-1.2B-Thinking-GGUF就…...
HG-ha/MTools快速入门:3步部署,体验一体化桌面工具的魅力
HG-ha/MTools快速入门:3步部署,体验一体化桌面工具的魅力 1. 为什么选择MTools?——重新定义桌面生产力 现代开发者和创意工作者常常面临一个困境:需要在十几个专业软件之间来回切换,每个工具都有不同的操作逻辑和系…...
别再手写表单了!用Vue3+AI做个自己的低代码设计器,5分钟搞定一个页面
用Vue3AI打造个人专属低代码表单设计器:5分钟解放重复劳动 如果你是一名中后台开发者,每天被各种CRUD表单折磨得焦头烂额,这篇文章就是为你准备的。想象一下:当你接到第100个类似的用户管理表单需求时,不再需要从零开始…...
终极指南:NanoVG渲染管线深度解析与抗锯齿技术实战
终极指南:NanoVG渲染管线深度解析与抗锯齿技术实战 【免费下载链接】nanovg Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. 项目地址: https://gitcode.com/gh_mirrors/na/nanovg NanoVG是一款基于OpenGL的轻量级抗锯…...
【卷积神经网络作业实现人脸的关键点定位功能】
下面是完成这道题目的代码:import os import cv2 import numpy as np import pandas as pd import torch import torch.nn as nn from torch.utils.data import Dataset,DataLoader from torchvision import transforms import matplotlib.pyplot as plt1. 数据集定…...
如何用Wi-Fi信号实现非接触检测:ESP-CSI完整指南
如何用Wi-Fi信号实现非接触检测:ESP-CSI完整指南 【免费下载链接】esp-csi Applications based on Wi-Fi CSI (Channel state information), such as indoor positioning, human detection 项目地址: https://gitcode.com/GitHub_Trending/es/esp-csi 想要让…...
QQ空间记忆备份终极指南:3步永久保存你的数字青春
QQ空间记忆备份终极指南:3步永久保存你的数字青春 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心那些珍贵的QQ空间说说会随着时间消失?那些记录着青春…...
YimMenu:GTA V安全防护与体验增强工具完全指南
YimMenu:GTA V安全防护与体验增强工具完全指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...
