您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 第5讲嵌入式软件系统及其设计.
姚英彪杭州电子科技大学嵌入式软件系统及其设计软件软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。其中:程序是按照事先设计的功能和性能要求执行的指令序列;数据是程序能正常操纵信息的数据结构;文档是与程序开发维护和使用有关的各种图文资料。软件分类按照应用的观点,软件可分为系统软件、支撑软件和应用软件三类系统软件位于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。如编译程序和操作系统等。支撑软件即支撑其他软件的编制和维护的软件。主要包括各种接口软件和工具软件。应用软件特定应用领域专用的软件,例如字处理程序。软件分类最下面是硬件系统;最上面是使用计算机的人,即各种各样的用户;人与硬件系统之间是软件系统。系统软件是最靠近硬件的一层,其次是支撑软件和应用软件。软件设计概念软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。从技术观点来看,软件设计包括数据设计、体系结构设计、接口设计、过程设计。数据设计将实体关系图中描述的对象和关系,以及数据字典中描述的详细数据内容转化为数据结构的定义。体系结构设计定义软件系统各主要成份之间的关系。接口设计根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制。过程设计则是把结构成份转换成软件的过程性描述。为什么要软件设计软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构。设计编码测试维护测试编码维护有软件设计没有软件设计软件设计步骤从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计将软件需求转化为软件体系结构确定系统级接口全局数据结构或数据库模式。详细设计确立每个模块的实现算法和局部数据结构用适当方法表示算法和数据结构的细节软件设计既是过程又是模型。设计过程是一系列的迭代步骤,使设计人员能够描述目标系统的各个侧面。设计模型首先描述目标系统的整体架构,然后逐步细化架构得到构造每个细节的指导原则,从而得到系统的一系列不同的视图。良好的设计原则可为设计过程导航衡量设计过程的技术原则设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。对于开发者和未来的维护者而言,设计必须是可读的、可理解的,使得将来易于编程、易于测试、易于维护。设计应该给出软件的全貌,包括从实现角度可看到的数据、功能、行为。衡量设计过程的技术原则①设计模型应该是一个分层与模块化结构。②设计应当建立具有独立功能特征的构件。③设计应当根据将要实现的对象和数据模式导出合适的数据结构。③设计应当包含数据、体系结构、接口和构件(模块)的清晰的视图。。④设计应当建立能够降低模块与外部环境之间复杂连接的接口。Davis的软件设计原则设计应具有可跟踪性,能回溯到软件需求;设计不必每次都从头做起,可以复用已有的设计模式和数据模式。设计不是编码,编码也不是设计。设计模型的抽象级别比源代码高。在编码级别上唯一的设计决策是补充一些实现细节。设计应具有容错性和异常处理能力。对于异常数据、事件、操作条件等能够平滑处理。在建立设计方案时就应能评估设计质量,而不是在软件编码之后。具体设计原则和设计手段设计应遵循抽象化原则,包含数据抽象和过程抽象。过程抽象:是指在软件设计中将处理过程的实现细节隐藏在数据抽象中,可以直接通过模块接口使用这些处理操作。数据抽象:是指采用抽象数据类型表示数据,实现数据封装,使得使用者可通过接口使用数据而不必关心数据结构的实现。设计应遵循自顶向下、逐步细化的原则,建立一个层次的结构。将软件体系结构自顶向下,对过程细节和数据细节从抽象到具体,逐层细化,直到用编程语言的语句能够实现为止。具体设计原则和设计手段设计应当遵循模块化的原则。每个模块可独立地开发、测试,最后组装成完整的程序。其出发点是本着将一种复杂问题“分而治之”的原则。其目的是使程序的结构清晰,容易阅读、理解、测试、修改。Meyer的良好模块设计方法的标准a)模块可分解性可将系统按问题/子问题分解的原则分解成系统的模块层次结构;b)模块可组装性可利用已有的设计构件组装成新系统,不必一切从头开始。c)模块可理解性一个模块可不参考其他模块而被理解;d)模块连续性对软件需求的一些微小变更只导致对某个模块的修改而整个系统不用大动;e)模块保护将模块内出现异常情况的影响范围限制在模块内部操作系统操作系统的地位操作系统实际上是一个计算机系统中硬、软件资源的总指挥部。操作系统定义是计算机系统中的一个系统软件,是能有效地组织和管理计算机系统中的硬件和软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机,并使整个计算机系统能高效地运行的一组程序模块的集合。操作系统的形成与发展无操作系统时的计算机系统人工操作方式由用户(即程序员)采用人工操作方式直接使用计算机硬件系统。缺点:用户独占全机、CPU等待人工操作。脱机输入输出方式程序和数据的输入输出都是在外围机的控制下完成。优点:减少了CPU的空闲时间、提高I/O速度。操作系统的形成与发展单道批处理系统系统对作业的处理都是成批地进行的、且在内存中始终只保持一道作业,故称为单道批处理系统。特征:自动性顺序性单道性操作系统的形成与发展多道批处理系统多道程序设计的基本概念把一个以上的作业(程序)存放在主存中,并且同时处于运行状态,共享处理机时间和外部设备等其他资源的方法。优点:提高了CPU的利用率提高了内存和I/O设备的利用率增加系统吞吐量多道批处理系统多道批处理系统的特征-多道性-无序性-调度性:作业调度和进程调度多道批处理系统的优缺点-优点:资源利用率高、系统吞吐量大-缺点:平均周转时间长、无交互能力多道批处理系统需要解决的问题-处理机管理问题-内存管理问题-I/O设备管理问题-文件管理问题-作业管理问题分时系统分时系统的产生人-机交互、共享主机、便于用户上机分时系统实现中的关键问题及时接收、及时处理分时系统的实现方法-作业直接进入内存-规定每个程序只运行一个时间片的时间。具体方法有以下几种:单道分时系统、具有“前台”和“后台”的分时系统、多道分时系统分时系统的特征-多路性、独立性、及时性、交互性实时系统实时系统的引入实时控制、实时信息处理实时系统定义-实时:所谓“实时”,是表示“及时”-实时系统:实时系统是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成该事件的处理,并控制所有实时任务协调一致地运行实时任务的类型-按任务执行时是否呈现周期性来划分:周期性实时任务、非周期性实时任务-根据对截止时间的要求来划分:强(硬)实时任务、弱(软)实时任务操作系统主要功能处理器管理存储管理设备管理文件管理作业管理处理器管理实质上是对处理器执行“时间”的管理单道程序系统和多道程序系统程序A程序B程序C程序A程序B程序C程序A程序B程序C单道程序系统中程序的执行多道程序系统中程序的执行程序和进程的概念程序是静态的进程是程序的执行活动。进程是可并发执行的程序在一个数据集合上的运行过程,可以申请和拥有系统资源。进程是个可以独立调度的基本单位进程是一个动态的概念,是活动的,有产生、运行、消亡的过程比较菜谱做菜程序CPU其他资源进程静态动态执行执行厨师材料线程为了更好地实现并发处理和共享资源,提高CPU的利用率,目前许多操作系统对进程进行“细分”,一个进程可再分为多个线程。目的:实现并发处理和共享资源,提高CPU的利用率UNIX:进程是CPU的分配单位Windows:线程是CPU的分配单位多任务执行并发式多任务:宏观上多任务同时执行微观上CPU轮流处理多个任务任务1任务2任务3任务4任务5时间存储管理实质上是对存储空间的管理,主要是对内存的管理。提高内存的利用率和从逻辑上扩充内存。主要包括以下四个方面的功能:内存分配为每道程序分配足够完整运行的内存空间,而且要提高存储器的利用率内存保护保证各道程序都能在自己的内存空间运行而互不干扰,尤其防止用户程序侵犯操作系统的内存区地址映射内存扩充内存分配inta;floatb;charc;符号名空间源程序a的逻辑地址逻辑地址空间目标程序b的逻辑地址c的逻辑地址……物理地址空间存储器a的物理地址b的物理地址c的物理地址……编译地址映射内存扩充利用虚拟存储技术,从逻辑上扩充内存容量,使系统能够运行对内存需求量远比物理内存大的多的作业利用硬盘上的一部分空间模拟内存,为用户提供一个比实际内存大得多的内存空间硬盘设备管理对计算机系统中除了CPU和内存以外的所有I/O设备的管理缓冲管理设备分配设备处理虚拟设备缓冲管理系统总线I/O控制器主机外设缓冲I/O控制器I/O控制器设备分配对用户请求的设备按某种分配策略进行分配将未获得所需设备的进程放进相应设备的等待队列使用完的设备回收由设备处理程序完成,又称设备驱动程序,其基本任务是:实现CPU和设备控制器之间的通信,由CPU向设备控制器发送I/O指令,启动指定的I/O设备完成用户规定的I/O操作文件管理文件是存储在外存储器中的一组相关信息的集合,例如:·一个程序·一张数码相片·一首MP3歌曲·一封电子邮件文件是外存中信息的存取(读出/写入)单位计算机中所有的程序和数据都组织成为文件存放在外存储器中,并使用其名字进行存取操作。文件系统是操作系统用于明确磁盘或分区上的文件的组织方法和数据结构。作业管理为用户使用系统提供一个良好环境,让用户有效地组织自己的工作流程使整个系统能高效地运行几种工作接口命令接口系统调用接口(应用程序编程接口)操作系统对运行程序提供服务的并与之通信的一种机构,供编程使用。低级语言:直接使用高级语言:调用过程(函数)使用如Windows的API函数图形用户接口问题:功能、性能要求价格、开发周期等约束设计:选择折衷分析比较计算评价嵌入式系统嵌入式系统的设计方法工具嵌入式系统要解决的主要问题需要用什么样的系统结构来实现?如何满足时限要求,如何处理多项功能在时间上的协调一致关系?如何保证系统可靠地工作?如何满足系统接口要求,嵌入式应用直接和系统接口输入输出信息?如何降低系统的功耗?如何使系统可升级?嵌入式系统设计的挑战性问题软硬件协同设计功耗的优化设计嵌入式操作系统开发环境成本和开发周期代码优化高效的输入和输出测试环境嵌入式系统是一个迭代优化的设计过程体系结构设计系统需求分析:规格说明书机械/结构设计硬件设计软件设计系统集成系统测试产品嵌入式系统的设计:只有更好,没有最好!TimetoMarket系统结构设计系统引入错误和修改错误开销分布引入错误数目修改错误开销开发周期系统结构设计软硬件详细设计软硬件实现软硬件的划分嵌入式系统的设计涉及硬件与软件部件,设计中必须决定什么功能由硬件实现,什么功能由软件实现。硬件和软件具有双重性软硬件变动对系统的决策造成影响划分和选择需要考虑多种因素硬件和软件的双重性是划分决策的前提软硬件协同设计的基本需求统一的软硬件描述方式软硬件支持统一的设计和分析工具(技术)允许在一个集成环境中仿真(评估)系统软硬件设计支持系统任务在软件和硬件设计之间的相互移植交互式软硬件划分技术允许多个不同的软硬件划分设计进行仿真和比较辅助最优系统实现方式决策嵌入式系统设计工具明确了系统的体系架构和开发流程以后,接下来就要进行开发、调试与测试,包括选择适当的开发环境和开发工具,例如编译器、链接器、定位器,或者直接使用集成开发环境(IDE),随后将编译好的程序转为映像(Image),下载到目标平台上,与开发平台连接后进行调试和测试。编译器编译器(Compiler
本文标题:第5讲嵌入式软件系统及其设计.
链接地址:https://www.777doc.com/doc-2110749 .html