系统架构-嵌入式系统架构

原理与特征

嵌入式系统的典型架构可概括为两种模式,即层次化模式架构和递归模式架构

层次化模式架构,位于高层的抽象概念与低层的更加具体的概念之间存在着依赖关系,封闭型层次架构指的是,高层的对象只能调用同一层或下一层对象提供的方法

递归模式架构,将一个非常复杂的系统进行分解,自顶向下分解系统的功能

嵌入式操作系统(EOS),通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器

从嵌入式操作系统体系架构看,主要存在4种结构:整体结构、层次结构、客户/服务器结构和面向对象结构

整体结构:也称为模块结构或无序结构,它是基于结构化程序设计的一种软件设计方法。

典型的强实时调度算法:

  • 最早截止时间优先(Earlier Deadline First EDF),任务截止时间越早,优先级就越高
  • 最低松弛度优先(Least Laxity First LLF),松弛程度越低,优先级越高。松弛程度指任务最早运行时间与任务最晚运行时间差
  • 单调速率调度算法(Rate Monotonic Scheduling RMS)任务的执行周期越短,优先级越高

嵌入式数据库系统主要特点:嵌入式、实时性、移动性、伸缩性,按存储位置不同可分为三类:基于内存方式、基于文件方式、基于网络方式

  • 基于内存式数据库系统(MMDB)是实时系统和数据库系统的有机结合,即活动事务只与实时内存数据库的内存拷贝打交道,典型产品是eXtremeDB嵌入式数据库
  • 基于文件的数据库(FDB)是以文件方式存储数据库数据,即数据按照一定格式 存储在磁盘种。使用时由应用程序通过相应的驱动程序甚至直接对数据文件进行读写。典型产品是SQLite
  • 基于网络的数据库(NDB)基于手机4G/5G的移动通信基础上的数据库系统,在逻辑上可以把嵌入式设备看作远程服务器的一个客户端

设计方法

自顶向下的设计方法,基于架构的软件设计(ABSD)可适用于嵌入式系统的软件设计方法

属性驱动的软件设计(ADD)

利用对质量属性实现与架构设计之间的关系的了解对软件架构进行设计,需要经历评审、选择驱动因子、选择系统元素、选择设计概念、实体化元素和定义接口、草拟视图和分析评价七个阶段

实时系统设计方法(DARTS)

将实时系统分解为多个并发任务,并定义这些任务之间的接口。提供一些分解规则和一套处理并发任务的设计步骤。

起源于实时结构化分析和设计方法(RTSAD)主要分为实时结构化分析(RTSA)和实时结构化设计(RTSD))

DARTS方法主要由以下5个部分组成:

  1. 用实时结构化分析方法(RTSA)开发系统规范:需要产出开发系统环境图(SCD)和状态转换图(STD)
  2. 将系统划分为多个并发任务:产出初步任务架构图(TAD)
  3. 定义任务间的接口:用事件流的映射作为事件信号
  4. 设计每个任务
  5. 设计过程的成果:需要用文档或图示

图片来源于网络

相关推荐
要努力wow2 小时前
系统架构师 —— 系统架构设计
系统架构
HRTOS16 小时前
HRTOS:一个名字背后的目标——不断逼近硬实时
经验分享·单片机·系统架构·51单片机
沫璃染墨21 小时前
《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》
linux·运维·服务器·开发语言·c++·系统架构·信号处理
树下困觉眯1 天前
View绘制流程学习--获取WindowManager的三种方式
android·系统架构·view design
沫璃染墨2 天前
《从零入门Linux系统篇(五十六):线程篇·九——生产者消费者模型:从条件变量到BlockingQueue实现》
linux·服务器·c++·驱动开发·设计模式·架构·系统架构
艺杯羹2 天前
Anthropic突袭发布Claude Code Mods!用TypeScript编写智能体中间件:告别AI误删与失控
人工智能·typescript·系统架构
沫璃染墨3 天前
《从零入门Linux系统篇(五十四):线程篇·七——互斥锁底层原理:从原子交换到线程竞争与锁实现》
linux·运维·服务器·开发语言·c++·驱动开发·系统架构
诚心呈意共享外卖配送系统3 天前
共享骑手与聚合配送的区别及系统架构设计:运力池与订单聚合如何落地
架构·系统架构·创业创新
风123456789~3 天前
【架构设计】第17章 通信系统架构设计 2/2
系统架构
诚心呈意共享外卖配送系统4 天前
众包配送调度系统选什么?聊聊派单、抢单、合单与结算的技术设计
架构·系统架构·创业创新