系统架构设计师备考第61天——嵌入式系统架构模式&操作系统&数据库&中间件

一、两种典型的嵌入式系统架构模式

1. 层次化模式架构
  • 核心思想:通过抽象分层实现概念一致性,高层依赖低层实现具体功能。

  • 两种类型

    类型 调用规则 优点 缺点
    封闭型 仅能调用同层或相邻下层对象的方法 封装性好,易移植 性能较低
    开放型 可调用同层或任意下层对象的方法 性能高 破坏封装,移植性差
  • 适用场景:系统存在高层次抽象概念需低层实现时(如嵌入式GUI框架)。

  • 考点:开放型与封闭型的性能与移植性权衡。

2. 递归模式架构
  • 核心思想:通过自顶向下或自底向上分解复杂系统,实现逐步精细化设计。
  • 工作流程
    • 自顶向下:从系统级开始分解,确保需求不偏离用例(如航天控制系统)。
    • 自底向上:基于领域经验构建关键类,逐步抽象到子系统(如工业物联网节点)。
  • 适用场景:需持续分解验证可靠性与实时性的复杂系统(如自动驾驶子系统)。
  • 考点:递归模式解决复杂系统可扩展性问题的设计思想。

典型考题
层次化开放型架构的缺点是什么?
:破坏封装性,导致系统移植性降低。


二、嵌入式操作系统

1. 核心特性
特性 实现方式 应用场景
强实时性 优先级调度、时限任务管理 工业控制、航空航天
可剪裁性 静态编译移除未用模块 资源受限设备(IoT)
安全性 符合DO-178C等安全标准(A~E级) 汽车电子(A级系统)
确定性 静态资源分配、越界检查 医疗设备
2. 典型操作系统
  • VxWorks:高实时性,支持WindRiver Workbench开发环境。
  • 嵌入式Linux:开源可定制,适用于智能终端。
  • INTEGRITY:通过MULTI工具链认证,适用于安全攸关系统。

三、嵌入式数据库

1. 核心需求
  • 低资源占用:轻量级存储引擎(如SQLite)。
  • 高可靠性:事务ACID特性、断电保护(如eXtremeDB)。
  • 实时响应:内存数据库优化(如Redis嵌入式版)。
2. 应用场景
  • 车载系统:存储行驶数据,支持快速查询。
  • 工业传感器:实时记录环境参数。

典型考题
嵌入式数据库为何需支持ACID特性?
:确保在断电等异常场景下数据一致性与完整性。


四、嵌入式中间件

1. 定义与功能
  • 定位:介于OS与应用层之间,屏蔽底层异构性。
  • 核心功能:网络通信、内存管理、数据处理(如DDS/CORBA)。
2. 关键特性
特性 实现要求
通用性 支持多应用场景(如车载娱乐+控制)
异构性 兼容不同硬件/OS平台
QoS保障 满足实时性带宽约束(如视频流传输)
3. 典型中间件
  • 嵌入式Java中间件:跨平台移植(如Android IoT)。
  • DDS(数据分发服务):适用于分布式实时系统(如无人机集群)。

五、嵌入式系统软件开发环境

1. 开发模式
  • 交叉开发(CPD):宿主机(PC)开发 → 目标机运行。
  • 调试方式
    • 模拟器:主机模拟目标环境(低成本)。
    • JTAG仿真器:硬件级调试(高精度)。
    • 监控程序(Monitor):宿主机与目标机通信调试。
2. 开发环境架构(基于Eclipse)
层级 功能 关键组件
宿主层 基础支撑 Eclipse框架、JDK、CDT
基本工具层 交叉编译、调试、工程管理 编译器(GCC)、调试器
应用工具层 效能分析、部署维护 时间监视器、批量升级工具
驻留层 目标机代理程序(Agent) 通信代理、调试代理
3. 典型开发环境
  • GCC工具链:开源跨平台,支持多语言(C/C++/Java)。
  • WindRiver Workbench:高安全性,配套Diab编译器。
  • GreenHills MULTI:实时追踪与反向调试,代码优化效率提升20%。

典型考题
交叉开发环境中"驻留层"的作用是什么?
:在目标机运行代理程序,支持宿主机工具与目标机的通信及调试。


六、考点与考题汇总

  1. 架构模式:层次化封闭型 vs 开放型的移植性差异。
  2. 嵌入式OS安全等级:DO-178C标准(A级最高,如航空软件)。
  3. 中间件功能:DDS解决分布式实时通信问题。
  4. 开发环境核心:Eclipse框架的插件化扩展能力。
  5. 递归模式应用:自底向上构建工业物联网子系统。
相关推荐
q***428216 小时前
Redis 设置密码(配置文件、docker容器、命令行3种场景)
数据库·redis·docker
运维行者_17 小时前
网站出现 525 错误(SSL 握手失败)修复指南
服务器·网络·数据库·redis·网络协议·bootstrap·ssl
fruge17 小时前
openGauss数据库实操过程:从环境搭建到连接配置,第三方软件进行数据库管理
数据库·oracle
5***790017 小时前
后端服务监控面板,关键业务指标
数据库
倔强的石头_19 小时前
面向电力生产调度系统的数据库实践:从时序处理到多中心容灾
数据库
q***471819 小时前
MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互
java·数据库·mysql
杨云龙UP19 小时前
【MySQL逻辑备份】基于mysqldump的MySQL 8.0全量逻辑备份脚本
linux·运维·数据库·sql·mysql·mssql
一只爱学习的小鱼儿20 小时前
QT中3D的使用
开发语言·数据库·qt
q***965820 小时前
Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
java·数据库·spring boot
k***19521 小时前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis