- 典型架构
- 层次式模式架构
- 位于高层的抽象概念与低层的更加具体的概念之间存在依赖关系
- 主要设计思想
- 抽象概念需要具体的低层概念实现
- 只包含一个主要的元素和它的接口
- 封闭型和开放型
- 递归模式架构
- 需要将一个非常复杂的系统进行分解
- 工程流程
- 自顶向下:从系统层级开始并标识结构对象
- 自底向上:专注于域的构造——首先确定域中的关键类和关系
- 层次式模式架构
- 嵌入式操作系统
- 包含与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器
- 4 种结构:整体结构、层次结构、C/S 结构和面向对象结构
- 整体结构也称为模块结构或无序结构,基于结构化程序设计
- 内核是核心部分,管理系统的各种资源,直接运行在硬件上的最基础的软件实体,宏内核微内核
- 任务管理:任务是嵌入式操作系统调度的最小单位,类似于进程或线程的概念
- 调度方法:离线和在线调度、抢占和非抢占调度、静态和动态调度
- 强实时调度算法
- 最早截止时间优先
- 最低松弛度优先
- 单调速率调度算法
- 任务之间关系:互相独立、竞争、同步、通信
- 通信方式
- 共享内存
- 信号量
- 消息队列
- Socket 和远程调用
- 信号
- 嵌入式数据库
- 分为
- 基于内存:实时系统和数据库系统的有机结合,活动事务只与实时内存数据库的内存拷贝打交道
- 基于文件:以文件方式存储数据库数据,按照一定格式储存在磁盘中,应用程序通过对应的驱动程序甚至直接对数据文件进行读写
- 基于网络:基于移动通信基础上的数据库,嵌入式设备看作远程服务器的客户端。主要由三部分组成:客户端、通信协议和远程服务器
- 数据库服务器架构:客户端通过数据库驱动程序,数据库服务器再操作数据库文件。可以位于不同的计算机甚至网络
- 嵌入式数据库架构,不需要数据库驱动,数据库的库文件连接到应用程序中,应用程序通过 API 访问数据库
- 对比
- 数据库服务器允许非开发人员操作,嵌入式只允许应用程序
- 数据库服务器数据程序分离,嵌入式访问控制交给应用程序
- 独立安装、部署和管理;嵌入式和应用程序一起发布
- 需要具备的功能
- 数据存储
- 数据安全
- 事务管理
- 数据库恢复
- 划分为数据库运行处理、数据库存取、数据库管理、数据库维护和数据库定义
- 需要解决以下设计问题
- 存储空间管理
- 数据安全性、完整性控制
- 事务并发控制
- 实时数据转储
- 运行日志管理
- 分为
- 嵌入式中间件
- 处于嵌入式应用和 OS 之间的中间软件,屏蔽 OS 的异构性,如网络通信、内存管理和数据处理
- 平台 + 通信
- 提供对以下环境的支持
- 网络化
- 流媒体
- QoS 质量品质
- 适应性
- 嵌入式系统软件架构设计方法
- 自顶向下
- 基于架构的软件设计 ABSD
- 属性驱动的软件设计 ADD,对质量属性实现与架构设计之间的关系的了解
- 评审
- 选择驱动因子:使用开发模型去选择设计的回合
- 选择系统元素:选择一个或者多个系统元素来细化
- 选择设计概念:选择设计概念来细化,对驱动因子进行细化
- 实体化元素和定义接口:包括所选择的实例化元素的设计概念
- 草拟视图:文字或图
- 分析评价:创建好了部分设计
- 实时系统设计方法 DARTS
- 将实时系统分解为多个并发任务,定义这些任务之间的接口。提供一些分解规则和一套处理并发任务的设计步骤
- 实时结构化分析 RTSA:扩充了行为建模部分
- 实时结构化设计 RESD:内聚和耦合原则进行程序设计
- 任务结构化标准:为实时系统分解为并发任务的时候提供帮助。确定任务过程中主要考虑系统内部功能的并发特性
- 实时结构化分析和设计方法 RTSAD 使用任务架构图来显示系统分解为并发任务的过程
- 实时结构化分析方法 RTSA 开发系统规范:开发系统环境图 SCD 和状态转换图 STD
- 将系统划分为多个并发任务
- 定义任务间接口
- 设计每个任务
- 设计过程的成果
- DARTS 优势
- 系统分解为并发的任务
- 详细的定义任务间接口的指南
- 用任务结构图 STD 的重要性
- 从 RTSA 规格到实时设计的转换
- DARTS 劣势
- 并非完全用 IHM 来封装数据存储
- 过于依赖 RTSA 阶段