系统架构设计师教程 第16章 16.2 嵌入式系统软件架构原理与特征 笔记

16.2 嵌入式系统软件架构原理与特征

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

典型架构:层次化模式架构和递归模式架构

1.层次化模式架构

位于高层的抽象概念与低层的更加具体的概念之间存在着依赖关系。

层次化模式架构主要设计思想是:

(1)当一个系统存在高层次的抽象,抽象的表现形式是一个个的抽象概念,这些抽象概念需要具体的低层概念进行实现时,就可采用层次化模式。

(2)分层模式结构只包含了一个主要的元素(域包)和它的接口,以及用来说明模式结构 的约束条件。

(3)分为两种:封闭型和开放性。

封闭型的特征是:一层中的对象只能调用同一层或下一个底层的对象提供的方法。移植性好

而开放型一层中的对象可以调用同一层或低于该层的任意一层的对象提供的方法。性能好

2.递归模式架构

将复杂的系统进行分解,并且保证分解过程是可扩展的,重复进行分解操作。

两种工作流程:

自顶向下:从系统层级开始标识结构对象,将系统分为多个子系统

自底向上:关注域的构造

16.2.2 嵌入式操作系统

1.嵌入式操作系统的定义及特点

嵌入式操作系统 (Embedded Operating System,EOS) 是指用于嵌入式系统的操作系统,负责嵌入式系统的全部软、硬件资源分配、任务调 度、控制、协调并行活动等工作。

通常包括与硬件相关的底层驱动软件、系统内核、设备驱动 接口、通信协议、图形界面、标准化浏览器等。

嵌入式操作系统主要特点:

(1)可剪裁性:支持开放性和可伸缩性的体系结构

(2)可移植性:可运行在不用体系结构的处理器和开发板上;

(3)强实时性:实时性通常较强,可用于各种设备的控制;

(4)强紧凑性:代码需要紧凑、精炼,

(5)高质量代码:要求代码质量要可靠,

(6)强定制性:可根据系统的不同需求,进行专业化定制;

(7)标准接口:提供设备统一的驱动接口;

(8)强稳定性、弱交互性:

(9)强确定性:确保任务在规定时间、容量内完成;

(10)操作简洁、方便

(11)较强的硬件适应性:可适应多种类型的硬件资源。(12)可固化性:固化在ROM中

2.嵌入式操作系统的分类

分为两类:面向控制、通信等领域的嵌入式实时操作系统,面向消费电子产品的嵌入式非实时操作系统

3.嵌入式操作系统的一般架构

嵌入式操作系统通常由硬件驱动程序、调试代理、操作系统内核、文件系统和可配置组件 等功能组成,为应用软件提供标准的API(Application Programming Interface) 接口服务。

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

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

嵌入式操作系统核心是由 操作系统内核和操作系统可配置库组成,

操作系统内核是系统主体, 其主要完成任务管理、内存管理、任务间通信管理、时钟管理和中断管理等功能。

操作系统可配置库是操作系统功能的延伸,为应用程序提供更加丰富的服务,可配置库是一种可配置、可 剪裁库代码,用户可根据目标系统的需求,进行静态或动态裁剪。其主要包括运行时库、设备管理、人机接口、图形图像以及 API 扩展等。

文件系统是嵌入式操作系统必须支持组件功能,主要是为嵌入式系统提供数据或程序的存储能力。

I/O 系统是嵌入式操作系统必须提供的组件功能,为嵌入式系统提供标准的出入输出管理。 主要功能是为数据传输操作选择输入/输出设备、控制被选输入/输出设备与主机之间的信息交换。

网络系统是嵌入式操作系统为满足嵌入式系统的互通互联所支持网络通信协议软件,如 TCP/IP、UDP等,同时可支持宿主机的软件开发。

4.嵌入式操作系统的基本功能

1)操作系统内核架构

内核是操作系统的核心,管理系统的各种资源,是直接运行在硬件上的最基础的软件实体。从内核架构来划分,可分为宏内核 (Monolithic Kernel) 和微内核 (Micro Kernel)。

宏内核:宏内核管理着用户程序和硬件之间的系统资源,在宏内核架构中,用户服务和内 核服务在同一空间中实现。

微内核:内核管理着所有的系统资源,在微内核中用户服务和内核服务在不同的地址空 间中实现。

2)任务管理

这里的任务 (task) 是指嵌入式操作系统调度 的最小单位,

任务的工作状态最简单的可分为三种:执行态、就绪态和阻 塞态

3)存储管理

管理的对象是主存,也称内存。主要功能包括分配和回收主存空间、提高主存利用率、扩充主存、对主存信息实现有效保护。

存储管理方法的主要目的是解决多个用户使用主存的问题,其存储管理方法主要包括分区存储管理、分页存储管理、分段存储管理、段页存储管理以及虚拟存储管理等5种。

4)任务间通信

主要为操作系统的应用程序提供多种类型的数据传输、任务同步/异步操作等手段。

任务之间的关系:

相互独立、竞争、同步、通信

常见通信方式:

● 共享内存:数据的简单共享。

● 信号量:基本的互斥和同步。

● 消息队列:同一CPU内多任务间消息传递。

● Socket和远程调用:任务间透明的网络通信。

● Signals (信号):用于异常处理。

16.2.3 嵌入式数据库

1.嵌入式数据库的定义及特点

嵌入式数据库是轻量级的,使用精简代码编写,速度更快。

在嵌入式系统中,对数据库的操作具有定时限制的特性,这里把应用于嵌入式系统的数据库系统称为嵌入式数据库系统或嵌入式实时数据库系统 (ERTDBS)。

主要特点:

嵌入式

实时性

移动性

伸缩性

2.嵌入式数据库的分类

按照嵌入对象的不同可分类为软件嵌入数据库、设备嵌 入数据库、内存数据库;

按照系统结构不同可分类嵌入数据库、移动数据库、小型C/S (客户机/服务器)结构数据库等。

按照数据库存储位置的不同可以划分为基于内存方式、基于文件方式和基于网络方式三类。

(1)基于内存的数据库系统 (Main Memory Database System,MMDB) 是实时系统和数据 库系统的有机结合。

(2)基于文件的数据库 (File Database,FDB) 系统就是以文件方式存储数据库数据,即数 据按照一定格式储存在磁盘中。

(3)基于网络的数据库 (Netware Database,NDB) 系统是基于手机4G/5G 的移动通信基础之上 的数据库系统

嵌入式网络数据库主要由三部分组成:客户端、通信协议和远程服务器。

客户端主要 负责提供接口给嵌入式程序,

通信协议负责规范客户端与远程服务器之间的通信,解决多客户端的并发问题,

远程服务器负责维护服务器上的数据库数据。

3.嵌入式数据库的一般架构

架构是以内存、文件和网络等三种为主。

1)基于内存的数据库系统

典型产品 eXtremeDB

eXtremeDB采用层次化设计结构,从上到下依次是:

1.数据库应用程序。

2.数据库静态接口 和根据数据库设计生成的接口,分别代表eXtremeDB提供的外部应用接口和通过数据库设计生成外部接口(主要是数据操作接口),用户调用这些外部接口进行数据库操作;

3.数据库内核的相关模块,包括记录管理器、事务管理器、索引管理器、数据字典;

4.存储管理 器,直接管理用户分配的内存空间。

2)基于文件的嵌入式数据库系统

以文件方式存储数据库数据。典型产品:SQLite轻量型嵌入式数据库系统

SQLite在架构上采用了模块的设计,它由公共接口、编译器系统、虚拟机和后端四个子系 统组成。

3)基于网络的数据库系统

以远程数据库为存储载体的,客户端通过移动网访问服务器上的 远程数据库。

基本子系统包括:远程数据库管理系统、远 程数据库、同步服务器、嵌入式数据库管理系统、嵌入式数据库和连接网络等

4.嵌入式数据库的主要功能

一般嵌入式数据库可划分成数据库运行处理、数据库存取、数据管理、数据库维护 和数据库定义等功能。

16.2.4 嵌入式中间件

1.嵌入式中间件的定义及特点

中间件 (Middleware) 是一种独立的系统软件或服务程序,分布式应用软件借助 这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算 资源和网络通信。

嵌入式中间件 (Embedded Middleware) 是在嵌入式系统中处于嵌入式应用和操作系统之间层次的中间软件,主要作用是对嵌入式应用屏蔽底层操作系统的异构性,常见功能有网络通信、内存管理和数据处理等。

中间件=平台+通信,具有以下共性特点:

通用性、异构性、分布性、

协议规范性

接口标准化

网络化

支持流媒体应用

QoS质量品质

适应性

2.嵌入式中间件的分类

仅保留消息中间件和交易中间件两种

通用中间件分类:

● 企业服务总线中间件 (Enterprise Service Bus,ESB):ESB是一种开放的、基于标准的 分布式同步/异步信息传递中间件。通过XML、Web服务接口以及标准化基于规则的路 由选择文档支持, ESB为企业应用程序提供安全互用性。

● 事务处理 (Transaction Processing,TP) 监控器:为发生在对象间的事务处理提供监控 功能,以保证操作成功。

● 分布式计算环境 (Distributed Computing Environment): 指创建运行在不同平台上的分 布式应用程序所需的一组技术服务。

● 远程过程调用 (Remote Procedure Call): 指客户机向服务器发送关于运行某程序的请 求时所需的标准。

● 对象请求代理 (Object Request Broker,ORB): 为用户提供与其他分布式网络环境中对 象通信的接口。

● 数据库访问中间件 (Database Access Middleware): 支持用户访问各种操作系统或应用 程序中的数据库。

● 消息传递 (Message passing): 电子邮件系统是该类中间件的其中之一。

● 基于XML的中间件 (XML-Based Middleware):XML允许开发人员为实现Internet中交 换结构化信息而创建文档。

嵌入式系统实时中间件包括通用对象请求代理体系结构 (Common Object Request Broker Architecture,CORBA) 和数据分发服务 (Data Distribution Service,DDS)。

3.嵌入式中间件的一般架构

通常嵌入式中间 件没有统一的架构

1)消息中间件

消息中间件是消息传输过程中保存消息的一种容器。

两个基本特点:

采用异步处理模式

应用程序间松耦合

消息传递服务模型有点对点模型 (PTP) 和发布-订阅模型 (Pub/Sub)

2)分布式对象中间件

分布式对象中间件是为了解决分布计算和软件复用过程中存在的异构问题,任务是处理分布式对象之间通信,是基于组件的思想,由一组对象来提供系统服务,对象之 间能够跨平台通信。

主要包括:应用对象、公共设施、对象请求代理、公共服务。

三个基本特点:

● 对象组件之间普遍采用软总线技术;

● 具有不依赖于编程语言、软硬件平台和网络协议等特点;

● 对象可以用任何一种软件开发商所支持的语言和平台来实现。

相关技术:公共对象请求代理结构 (CORBA)、分布式组件对象模型 (DCOM)、EJB

4.嵌入式中间件的主要功能

主要作用是对嵌入式应用屏蔽底层操作系统的异构性。其常用功能有网络通信、存储管理和数据处理等。

5.典型嵌入式中间件系统

使用最为广泛的中间件有两个产品,分别是公共对象请求代理结构 (CORBA) 和数据分发服务 (Data Distribution Service,DDS)。

CORBA使服务器真正能够实现高速度、高稳定性处理 大量用户的访问。

CORBA 的技术特征:

● 完整的作为事务代理的中间件;

● 客户端与服务器的可完全分离;

● 提供软件总线机制,支持多环境、多语种的分布式集成;

● 完整的对象内部细节的封装;

● 实时性强。

DDS 采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS 服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需 求。DDS信息分发中间件是一种轻便的、能够提供实时信息传送的中间件技术。

DDS 的技术特征:

● 灵活的发布/订阅模式;

● 完整DDS规范QoS服务质量策略;

● 已扩展的QoS服务质量策略;

● 互操作;

● 强实时;

● 跨平台;

● 支持多种底层物理通信协议;

● 支持仿真、测试和安装的全生命周期服务。

16.2.5 嵌入式系统软件开发环境

1.定义及特点

嵌入式系统软件开发环境是可帮助用户开发嵌入式软件的一组工具的集合,形成一套交叉平台开发方法 (Cross Platform Development,CPD)。

主要能力包括:集成开发、工程管理、编译(汇 编)器、批处理文件、构建 (Make)、 配置管理、调试、下载、模拟、版本控制及其他。

主要特点:

集成开发环境

交叉开发

开放式体系结构

可扩展性

良好的可操作性

可移植性

可配置性

代码实时性

可维护性

友好用户界面

2.分类

根据嵌入式系统软 件的调试方法的不同,可分为模拟器方法、在线仿真器方法、监控器方法、 JTAG仿真器等。

根据嵌入式应用软件的开发类型的不同,可分为无操作系统的软件开发和基于操作系统的软件开发

而目前基于嵌入式操作系统的软件开发方法是嵌入式系统软件开发方法的主流。

3.一般架构

Eclipse 框架是当前嵌入式系统软件开发环境被普遍公认的一种基础环境框架。目前大多数嵌入式软件开发环境都是建立在 Eclipse 框架之上的层次化架构,具备开放式、构件化、即插即用等特征。

通常,嵌入式软件开发环境按功能可划分为宿主层、基本工具层、应用工具层和驻留层。

宿主层、基本工具层和应用工具层运行在宿主机上,为用户提供嵌入式软件开发所需要的能力 工具;

驻留层作为一种可剪裁组件,运行在目标机上,为其他层工具运行提供宿主机与目标机 间的通信和代理服务。

4.主要功能

嵌入式系统的软件开发通常采用的是交叉开发方式

开发环境的主要功能包括:

工程管理

编辑器

构建管理

编译、汇编器

配置功能

调试器

目标机管理

仿真器

5.典型开发环境

三种典型开发环境:

基于GCC开源工具的软件开发环境: GCC是一个编译器集合,是GNU Compiler Collection 组织提供的一套面向嵌入式领域的交叉编译环境

Workbench 软件开发环境: Workbench集成了WindRiver 自己研制的一款高安全交叉编译器Diab, 较 GCC 而言,其编译效率更高、语义更严 谨、代码更安全。通

MULTI集成开发环境: MULTI是一款具有调试、编译器和闪存编程工具的嵌入式集成开发环境 (IDE)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值