当前位置: 首页 > news >正文

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.lryc.cn/news/289692.html

相关文章:

  • 内网安全:Exchange服务
  • Flask介绍和优势
  • 喜报|「云原生数据库PolarDB」、「阿里云瑶池一站式数据管理平台」揽获“2023技术卓越奖”
  • 【动态规划】【字符串】【行程码】1531. 压缩字符串
  • 检测头篇 | 原创自研 | YOLOv8 更换 SEResNeXtBottleneck 头 | 附详细结构图
  • PHP语法
  • MySQL:三大日志(binlog、redolog、undolog)
  • 【QT+QGIS跨平台编译】之十二:【libpng+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • Windows 和 Anolis 通过 Docker 安装 Milvus 2.3.4
  • JUC并发编程与源码分析学习笔记(三)
  • 力扣日记1.28-【回溯算法篇】93. 复原 IP 地址
  • Java 的反射学习总结
  • 图论第二天|695. 岛屿的最大面积 1020. 飞地的数量 130. 被围绕的区域 417. 太平洋大西洋水流问题 827.最大人工岛
  • 【JavaScript 基础入门】02 JavaScrip 详细介绍
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之CheckboxGroup组件
  • 【极数系列】Flink配置参数如何获取?(06)
  • 【docker】linux系统docker的安装及使用
  • 【C++】一题掌握空指针
  • 初识HarmonyOS
  • 备战蓝桥杯---二分(入门)
  • 开发 Chrome 浏览器插件时进行 Vue3+Vite 多页面多入口配置
  • MacOS X 中 OpenGL 环境搭建 Makefile的方式
  • 前端工程化之:webpack1-6(编译过程)
  • javaweb学习问题集
  • java—AWT
  • SQL注入-sqli-labs-master第一关
  • 简述云原生基础定义及关键技术
  • 游戏中排行榜的后台实现
  • 《动手学深度学习(PyTorch版)》笔记3.1
  • 【贪吃蛇:C语言实现】