9. 嵌入式系统开发:安全性与可靠性设计模式---引言

在复杂的嵌入式系统设计中,为了提高嵌入式系统安全性并保护嵌入式系统免受各种潜在故障的影响,可以采用不同的设计模式。这些模式各自有优势和适用的场景:

1. 受保护的单通道模式(Protected Single Channel Pattern)

这种模式通常包含一个执行通道和一些保护机制。保护机制可以是辅助系统或程序,用于监控执行通道。如果检测到错误或失败,这些保护机制会采取措施,例如将系统置于安全状态或进行重置。

这种模式的优点是:

  • 成本和复杂性相对较低,因为不需要系统有完整的冗余复制。
  • 对单一执行通道的可靠性要求较高。

2. 同质冗余模式(Homogeneous Redundancy)

同质冗余是指使用一组完全相同的通道来增加总体的可靠性(例如双通道、三通道)。当执行通道发生随机故障时,其他备份通道可以继续运行,保证系统不会全部失败。

这种模式的优点是:

  • 可以有效地应对因随机故障带来的影响
  • 遇到共同的系统性错误时可能无法提供保护,因为所有同质组件可能都会受到影响。
  • 实现相对简单。

3. 三通道冗余模式(Triple Modular Redundancy)

三通道模式(Triple Modular Redundancy, TMR)通常指的是一种冗余策略,是一种特定类型的同质冗余,其中三个独立的子系统完成同样的任务,然后通过多数表决系统(voting system)来决定哪个结果是正确的。

这种模式的优点是:

  • 可以极大地提高系统针对单一随机故障的容错能力。
  • 遇到共同的系统性错误时可能无法提供保护,因为所有同质组件可能都会受到影响。
  • 实现相对简单。

4. 异质冗余模式(Heterogeneous Redundancy)

异质冗余模式(Heterogeneous Redundancy)是一种系统设计策略,每个通道拥有独立的额设计和实现,用于提高系统的鲁棒性和可靠性,尤其是在高安全性和高可用性要求的领域,如航空航天、军事和核设施等。

这种模式的优点是:

  • 可以抵御共同的系统性错误
  • 降低了整个系统失效的风险(因设计缺陷或生产问题而导致的系统风险)。

5. 监控-执行器模式(Monitor-Actuator Pattern)

这种模式通常由两个通道组成:一个监控通道和一个执行器通道。尤其常见于嵌入式系统、工业控制系统和安全关键的应用中。监控通道用于监控系统状态或环境条件的“监控通道”,执行器通道则会根据监控通道的输出做出反应。当检测通道检测到异常(超出容忍范围)时,监控通道强制执行通道进入安全失败状态。

这种模式的优点是:

  • 异常发生时可以有效地将系统置于安全状态,避免事故发生。
  • 实现相对简单。

6. 理智检查模式(Sanity Check Pattern)

理智检查模式是一种轻量级的保护机制,它在系统中设置了一系列的“理智检查”(Sanity Checks),以确保数据、计算或行为在合理预期和定义良好的操作范围内。一旦检测到超出正常范围的行为,系统可以采取纠正措施。

这种模式的优点是:

  • 可以有效地防止错误蔓延。
  • 实现相对简单。

7. 看门狗模式(Watchdog Pattern)

看门狗是一种定时器,用于检测软件系统是否陷入死锁或无响应状态。如果看门狗定时器在设定的时间间隔内没有被重置,就会假定一个错误已经发生,并采取恢复措施,比如重启系统或将系统置于安全状态。

这种模式的优点是:

  • 可以有效地检测和恢复死锁或无响应状态。
  • 实现相对简单。

8. 安全执行模式(Safety Executive Pattern)

安全执行模式适用于复杂和关键安全的系统,其中一个独立的安全管理组件负责按照定义良好的规则来协调系统的各个部分。它确保在出现故障时,系统能够以一种预定义的安全方式进入安全状态。

这种模式的优点是:

  • 可以确保系统在出现故障时能够安全地运行。
  • 适用于复杂和关键安全的系统。

在实际应用中,上述模式的选择和实现通常取决于特定系统的需求、环境以及安全和可靠性目标。每种模式都有其特定上下文中的优缺点,设计时需综合考量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/652672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaSE篇】——数组练习

目录 🚩数组转字符串 🚩数组拷贝 🎈拷贝的实质 🎈copyOf方法(new) 🍭copyOf扩容 🎈arraycopy方法(局部的拷贝)(系统类) 🎈copyOfRange方法(局部拷贝) 🎈原数组.clone() &a…

竞赛练一练 第30期:GESP和电子学会相关题目练习

Day14:CIE一级2022.06_报时的公鸡 故事背景:公鸡在黎明时分会打鸣迎接太阳升起,古人也将鸡鸣声当做晨起的“闹钟”。 1. 准备工作 (1)背景:根据下图绘制两张背景; 01 02 (2&…

python 获取未提前定义的属性报错 KeyError

python 获取未提前定义的属性报错 正文 最近用python编写了一个脚本,是对象形式的数据结构。发现python中对于没有定义的属性名,直接用中括号获取会报错。这一点有别于js。简单记录一下啊具体情况如下: obj {"a": 1,"b&qu…

代码随想录算法训练营Day42|0-1背包理论基础、416. 分割等和子集

目录 0-1背包理论基础 0-1背包问题 二维dp数组01背包 算法实现 一维dp数组01背包 ​编辑算法实现 416. 分割等和子集 前言 思路 算法实现 总结 0-1背包理论基础 0-1背包问题 题目链接https://kamacoder.com/problempage.php?pid1046 有n件物品…

【Javaweb程序设计】【C00162】基于SSM的儿童众筹救助系统(论文+PPT)

基于SSM的儿童众筹救助系统(论文PPT) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的儿童众筹救助系统 本系统分为登录模块、前台模块、管理员模块、用户模块以及发起人模块5个功能模块. 登录模块:这个功能模块用来让…

如何让haproxy不命中已经失效的服务器

最近在做负载均衡时,服务总是不稳定,经过日志分析,发现是haproxy负载代理时,命中了已经失效的服务节点。那么如何让haproxy不命中已经失效的服务器呢? 你可以配置服务器的健康检查(Health Check&#xff09…

vs2019报错MSB4019 找不到导入的项目“BuildCustomizations\CUDA 9.2.props”

在VS中执行生成,报错如下:严重性 代码 说明 项目 文件 行 禁止显示状态 错误 MSB4019 找不到导入的项目“D:\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 9.2.props”。请确认 Import 声明“D:\Microso…

C++进阶(七)AVL树

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、AVL树的概念二、AVL树的旋转1、左单旋2、右单旋3、左右双旋4、右左双旋 三、AVL树的基本实…

jszip和pizzip中文乱码的解决方案

jszip中文乱码的解决方案 jszip官方文档地址:https://stuk.github.io/jszip/ 1、问题分析 在JavaScript中需要用到对Zip压缩包进行操作时,我们往往会使用jszip对压缩包进行编辑。 但是,当我们使用jszip来读取包含中文名的文件时&#xff…

使用ollama本地跑大模型

大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。 1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员… 2、这几年,我整理了很多IT技术相关的教程给大家,爱生活、爱分享。 3、如果您觉得文章有用,请收藏,…

SpringCloud--FeignGateWay

Feign 创建项目勾选web SpringWeb 1.0 创建生产者SpringCloudFeignProvider 端口号:8081 pom.xml引入依赖 <!--nacos依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery<…

C语言基础:写一个函数,输入一行字符,将此字符串最长的单词输出

方法一&#xff1a; #include<string.h> int find_longest(char line[])//把数组传过来 {int is_alphabetic(char word);int i 0;int length 0;//统计每个字符串的长度int max 0;//比max长就把值赋值给maxint place 0;//最长单词的起始位置int point;//每个字符串第…

JVM-字节码文件的组成

Java虚拟机的组成 Java虚拟机主要分为以下几个组成部分&#xff1a; 类加载子系统&#xff1a;核心组件类加载器&#xff0c;负责将字节码文件中的内容加载到内存中。 运行时数据区&#xff1a;JVM管理的内存&#xff0c;创建出来的对象、类的信息等等内容都会放在这块区域中。…

100.乐理基础-五线谱-是否需要学习五线谱

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;99.乐理基础-简谱的多声部-CSDN博客 简谱与五线谱的区别&#xff0c;各自的优劣势、使用场景、范围等&#xff1a; 要搞懂这个问题&#xff0c;其实核心就是四个词&#xff1a;首调、固定调、单声部、多声部 首调、…

如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改au…

TypeScript(二) 基础类型

1. typescript的基础类型 数据类型关键字描述任意类型any生命any的变量可以赋值任意类型的值数字类型number整数或分数字符串类型string使用单引号&#xff08;‘’&#xff09;或者双引号&#xff08;“”&#xff09;来表示字符串类型。反引号&#xff08;&#xff09;来定义…

前端 HTML 知识点之 HTML 介绍

1.1 HTML 1.1.1 定义 超文本标记语言&#xff08;英语&#xff1a;HyperTextMarkupLanguage&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言 HTML元素是构建网站的基石 标记语言&#xff08;markup language &#xff09; 由无数个标记&#…

黑马程序员-瑞吉外卖-day5

修改实体类 package com.itheima.reggie.entity;import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode;i…

kali系统入侵电脑windows(win11系统)渗透测试,骇入电脑教学

本次渗透测试将使用kali虚拟机&#xff08;攻击机&#xff09;对本机&#xff08;靶机&#xff09;进行入侵并监控屏幕 声明&#xff1a;本篇仅仅是将本机作为靶机的一次简易渗透测试&#xff0c;实际情况中基本不可能出现如此简单的木马骇入&#xff08;往往在上传木马时就被防…

【Linux】第三十八站:信号处理

文章目录 一、信号处理二、再谈进程地址空间三、内核如何实现信号的捕捉四、sigaction 一、信号处理 我们知道&#xff0c;信号保存以后&#xff0c;会在合适的时候进行处理这个信号。 那么信号是如何被处理的&#xff1f;什么时候进行处理呢&#xff1f; 当我们的进程从内核…