第5讲 嵌入式软件系统及其设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
时间
任务1 任务5 任务2 任务3
任务4
存储管理

实质上是对存储空间的管理,主要是对内存的管理。 提高内存的利用率和从逻辑上扩充内存。 主要包括以下四个方面的功能: 内存分配 为每道程序分配足够完整运行的内存空间,而且 要提高存储器的利用率 内存保护 保证各道程序都能在自己的内存空间运行而互不 干扰,尤其防止用户程序侵犯操作系统的内存区 地址映射 内存扩充
操作系统主要功能

处理器管理 存储管理 设备管理 文件管理 作业管理
处理器管理

实质上是对处理器执行“时间”的管理 单道程序系统和多道程序系统
程序A 程序B 程序C
单道程序系统中程序的执行
程序A 程序B 程序C 程序A 程序B 程序C
多道程序系统中程序的执行
程序和进程的概念
是计算机系统中的一个系统软件,是能有效地组织 和管理计算机系统中的硬件和软件资源,合理地组织计 算机工作流程,控制程序的执行,并向用户提供各种服 务功能,使得用户能够灵活、方便、有效地使用计算机 ,并使整个计算机系统能高效地运行的一组程序模块的 集合。
操作系统的形成与发展
无操作系统时的计算机系统 人工操作方式 由用户(即程序员)采用人工 操作方式直接使用计算机硬件 系统。缺点:用户独占全机、 CPU等待人工操作。 脱机输入输出方式 程序和数据的输入输出都是 在外围机的控制下完成。优点 :减少了CPU的空闲时间、提高 I/O速度。
嵌入式软件系统及其设计
姚英彪
杭州电子科技大学
软件

软 件 (software) 是 计 算 机 系 统 中 与 硬 件 (hardware)相互依存的另一部分,它包括程 序 (program) 、相关数据 (data) 及其说明文 档(document)。 其中:

程序 是按照事先设计的功能和性能要求执行的 指令序列; 数据是程序能正常操纵信息的数据结构; 文档 是与程序开发维护和使用有关的各种图文 资料。
维护
测试
维护 测试 编码
编码
设计
有软件设计 没有软件设计
软件设计步骤



从工程管理角度来看,软件设计分两步完成:概 要设计和详细设计。 概要设计 将软件需求转化为软件体系结构 确定系统级接口 全局数据结构或数据库模式。 详细设计 确立每个模块的实现算法和局部数据结构 用适当方法表示算法和数据结构的细节



软件设计既是过程又是模型。 设计过程是一系列的迭代步骤,使设计人员 能够描述目标系统的各个侧面。 设计模型首先描述目标系统的整体架构,然 后逐步细化架构得到构造每个细节的指导原 则,从而得到系统的一系列不同的视图。 良好的设计原则可为设计过程导航
衡量设计过程的技术原则



设计必须实现分析模型中描述的所有显式需求 ,必须满足用户希望的所有隐式需求。 对于开发者和未来的维护者而言,设计必须是 可读的、可理解的,使得将来易于编程、易于 测试、易于维护。 设计应该给出软件的全貌,包括从实现角度可 看到的数据、功能、行为。
硬盘
设备管理

对计算机系统中除了CPU和内存以外的所有 I/O设备的管理

缓冲管理 设备分配 设备处理 虚拟设备
缓冲管理
系统总线
缓 冲 I/O控制器
主 机
I/O控制器
I/O控制器
外 设

设备分配

对用户请求的设备按某种分配策略进行分配 将未获得所需设备的进程放进相应设备的等待队列 使用完的设备回收

将软件体系结构自顶向下,对过程细节和数据细节从抽象 到具体,逐层细化,直到用编程语言的语句能够实现为止。
具体设计原则和设计手段
设计应当遵循模块化的原则。
每个模块可独立地开发、测试,最后组装成完整的 程序。 其出发点是本着将一种复杂问题“分而治之”的原 则。其目的是使程序的结构清晰,容易阅读、理解、 测试、修改。 Meyer的良好模块设计方法的标准 a) 模块可分解性 可将系统按问题/子问题分解 的原则分解成系统的模块层次结构; b) 模块可组装性 可利用已有的设计构件组装成新 系统,不必一切从头开始。
程序是静态的 进程是程序的执行活动。 进程是可并发执行的程序在一个数据集合上的运行过 程,可以申请和拥有系统资源。 进程是个可以独立调度的基本单位 进程是一个动态的概念,是活动的,有产生、运行、 消亡的过程

比较
静态 菜谱 程序
执行
执行
动态 厨师 材料
做菜
进程 CPU 其他资源
线程
文件系统是操作系统用于明确磁盘或分区上的文件的
组织方法和数据结构。
作业管理

为用户使用系统提供一个良好环境,让用户有效地组 织自己的工作流程使整个系统能高效地运行 几种工作接口 命令接口 系统调用接口(应用程序编程接口) 操作系统对运行程序提供服务的并与之通信的 一种机构,供编程使用。 低级语言:直接使用 高级语言:调用过程(函数)使用 如Windows 的API函数 图形用户接口

由设备处理程序完成,又称设备驱动程序,其 基本任务是:


实现CPU和设备控制器之间的通信,由CPU向设备 控制器发送I/O指令,启动指定的I/O设备 完成用户规定的I/O操作
文件管理
文件是存储在外存储器中的一组相关信息的集合,例 如:
·一个程序
·一首MP3歌曲
·一张数码相片
·一封电子邮件
文件是外存中信息的存取(读出/写入)单位 计算机中所有的程序和数据都组织成为文件存放在外 存储器中,并使用其名字进行存取操作。
多道批处理系统



多道批处理系统的特征 -多道性 -无序性 -调度性:作业调度和进程调度 多道批处理系统的优缺点 -优点:资源利用率高、系统吞吐量大 - 缺点:平均周转时间长、无交互能力 多道批处理系统需要解决的问题 -处理机管理问题 -内存管理问题 -I/O设备管理问题 -文件管理问题 -作业管理问题
操作系统的形成与发展

单道批处理系统
系统对作业的处理 都是成批地进行的、 且在内存中始终只保 持一道作业,故称为 单道批处理系统 。 特征: 自动性 顺序性 单道性
操作系统的形成与发展

多道批处理系统 多道程序设计的基本概念 把一个以上的作业(程序)存放在主存中,并且同时 处于运行状态,共享处理机时间和外部设备等其他资 源的方法。 优点:提高了CPU的利用率 提高了内存和I/O设备的利用率 增加系统吞吐量
分时系统



分时系统的产生 人-机交互、共享主机、便于用户上机 分时系统实现中的关键问题 及时接收、及时处理 分时系统的实现方法 -作业直接进入内存 -规定每个程序只运行一个时间片的时间。 具体方法有以下几种:单道分时系统、具有“前台” 和“后台”的分时系统、多道分时系统 分时系统的特征 - 多路性、独立性、及时性、交互性
Davis的软件设计原则




设计应具有可跟踪性,能回溯到软件需求; 设计不必每次都从头做起,可以复用已有的设 计模式和数据模式。 设计不是编码,编码也不是设计。设计模型的 抽象级别比源代码高。在编码级别上唯一的设 计决策是补充一些实现细节。 设计应具有容错性和异常处理能力。对于异常 数据、事件、操作条件等能够平滑处理。 在建立设计方案时就应能评估设计质量,而不 是在软件编码之后。
为了更好地实现并发处理和共享资源,提高CPU的利 用率,目前许多操作系统对进程进行“细分”,一个 进程可再分为多个线程。
目的:实现并发处理和共享资源,提高CPU的利 用率
UNIX:进程是CPU的分配单位
Windows:线程是CPU的分配单位
多任务执行

并发式多任务:

宏观上多任务同时执行 微观上CPU轮流处理多个任务
嵌入式系统的设计
问题:
功能、性 能要求 价格、开 发周期等 约束
设计:
选择 折衷 分析比较 计算 评价
嵌入式系统
方法
工具
嵌入式系统要解决的主要问题

需要用什么样的系统结构来实现?
如何满足时限要求,如何处理多项功能在时间上的协
调一致关系? 如何保证系统可靠地工作? 如何满足系统接口要求,嵌入式应用直接和系统接口 输入输出信息?
机械/结构设 计
硬件设计
软件设计
Time to Market
系统集成
系统测试
产品
系统结构设计
系统引入错误和修改错误开销分布
引入错误数目
修改错误开销
系统结构 设计
软硬件 详细设计
软硬件 实现
开发周期
软件分类

按照应用的观点,软件可分为系统软件、支撑软 件和应用软件三类
系统软件 位于计算机系统中最靠近硬件的一层,其他软件一般 都通过系统软件发挥作用 。如编译程序和操作系统等。 支撑软件 即支撑其他软件的编制和维护的软件 。主要包括各种 接口软件和工具软件。 应用软件 特定应用领域专用的软件,例如字处理程序。



软件分类

最下面是硬件系统;最上面是使用计算机的人, 即各种各样的用户;人与硬件系统之间是软件系 统。系统软件是最靠近硬件的一层,其次是支撑 软件和应用软件。
软件设计概念

软件设计的基本目标是用比较抽象概括的方式 确定目标系统如何完成预定的任务,即软件设 计是确定系统的物理模型。 从技术观点来看,软件设计包括数据设计、体 系结构设计、接口设计、过程设计。 数据设计将实体关系图中描述的对象和关系, 以及数据字典中描述的详细数据内容转化为数 据结构的定义。
具体设计原则和设计手段
设计应遵循抽象化原则,包含数据抽象和过程抽象。

过程抽象:是指在软件设计中将处理过程的实现细节隐藏 在数据抽象中,可以直接通过模块接口使用这些处理操作。

数据抽象:是指采用抽象数据类型表示数据,实现数据封 装,使得使用者可通过接口使用数据而不必关心数据结构 的实现。
设计应遵循自顶向下、逐步细化的原则,建立一个 层次的结构。


如何降低系统的功耗?
如何使系统可升级?
嵌入式系统设计的挑战性问题

软硬件协同设计

功耗的优化设计
嵌入式操作系统


开发环境
成本和开发周期 代码优化 高效的输入和输出 测试环境
பைடு நூலகம்




嵌入式系统是一个迭代优化的设计过程
系统需求分析: 规格说明书
嵌入式系统的设计: 只有更好,没有最好!
体系结构设计
内存分配
源程序 目标程序 a的逻辑地址 b的逻辑地址 c的逻辑地址 …… 符号名空间 存储器 a的物理地址 b的物理地址 c的物理地址 …… 物理地址空间
int a; float b; char c;
逻辑地址空间
编译
地址映射
内存扩充


利用虚拟存储技术,从逻辑上扩充内存容量,使系统 能够运行对内存需求量远比物理内存大的多的作业 利用硬盘上的一部分空间模拟内存,为用户提供一个 比实际内存大得多的内存空间
c) 模块可理解性 一个模块可不参考其他模块而被 理解; d) 模块连续性 对软件需求的一些微小变更只导致 对某个模块的修改而整个系统不用大动; e) 模块保护 将模块内出现异常情况的影响范围限 制在模块内部
操作系统

操作系统的地位
操作系统实际上是一个计算机系统中硬、软件资源 的总指挥部。

操作系统定义
实时系统



实时系统的引入 实时控制、实时信息处理 实时系统定义 -实时:所谓“实时”,是表示“及时” -实时系统:实时系统是指系统能及时(或即时) 响应外部事件的请求,在规定的时间内完成该事件的 处理,并控制所有实时任务协调一致地运行 实时任务的类型 -按任务执行时是否呈现周期性来划分:周期性实 时任务、非周期性实时任务 -根据对截止时间的要求来划分 :强(硬)实时任 务 、弱(软)实时任务
衡量设计过程的技术原则
① 设计模型应该是一个分层与模块化结构。 ② 设计应当建立具有独立功能特征的构件。 ③ 设计应当根据将要实现的对象和数据模式导 出合适的数据结构。 ③ 设计应当包含数据、体系结构、接口和构件 (模块)的清晰的视图。。 ④ 设计应当建立能够降低模块与外部环境之间 复杂连接的接口。


体系结构设计定义软件系统各主要成份之间的 关系。
接口设计根据数据流图定义软件内部各成份之 间、软件与其它协同系统之间及软件与用户之 间的交互机制。 过程设计则是把结构成份转换成软件的过程性 描述。
为什么要软件设计
软件设计是后续开发步骤及软件维护工作的基础。 如果没有设计,只能建立一个不稳定的系统结构。
相关文档
最新文档