




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章第七章 嵌入式操作系统嵌入式操作系统梁声灼南昌大学计算机科学与技术系email:电话录目录v操作系统的基本概念v嵌入式操作系统的基本概念v嵌入式实时操作系统v常见的嵌入式操作系统v bootloadervu-boot第七章第七章 嵌入式操作系统嵌入式操作系统操作系统的基本概念操作系统的基本概念操作系统的基本概念v操作系统是软硬件资源的控制中心,它以尽量合理有效的方法组织多个用户共享计算机的各种资源,其目的是提供一台功能强大的虚拟机,给用户一个方便、有效、安全的工作环境。v计算机有很多资源,它们分别用于数据的传输、处理或存储以及这些操作的控制。这些资源的管理工作就
2、交给了操作系统。 操作系统的基本概念操作系统的基本概念v操作系统的一般结构 驱动程序 内核 接口库 外围操作系统的基本概念操作系统的基本概念v大内核模式 操作系统的基本概念操作系统的基本概念v微内核模式 操作系统的基本概念操作系统的基本概念v微内核微内核 vmach 首先使用微内核结构v通过划分系统程序和用户程序,把所有不必要的部件移出内核,形成一个小内核v微内核提供最少量的进程管理、存储管理,以及通信功能 操作系统的基本概念操作系统的基本概念v微内核特点微内核特点1 1 v接口一致(uniform interface):n所有进程请求使用统一的接口,进程不需要区分内核模式和用户模式服务,由于
3、这些服务全部通过消息传递提供。 操作系统的基本概念操作系统的基本概念v微内核特点微内核特点2 2v扩展性(extensibility):n由于新型硬件设备和新型软件技术不断发展,任何操作系统不可避免地需要修改,微内核结构允许加入新的服务,支持在同一功能区内提供多重服务。使用微内核结构,加入一个新特点仅仅需要修改或者加入被选择的服务,新的或者修改的服务影响限制在系统的一个子集,进一步地,修改不需要建立一个新的内核。操作系统的基本概念操作系统的基本概念v微内核特点微内核特点3 3v 移植性(portability):n在微内核结构中,所有与特定处理机的代码仅仅存在微内核中,因此,需要将这个系统移植
4、到新的处理机需要作的变化可以尽可能地少。操作系统的基本概念操作系统的基本概念v微内核特点微内核特点4 4v可靠性(reliability):n软件规模越大,确保可靠性越难。尽管模块化设计帮助我们增强了可靠性,但是微内核结构带来了更多的收益。一个小型微内核可以严格地进行测试,它使用少量的应用程序接口有助于内核模式之外的操作系统服务代码提高质量。系统只需要掌握一个有限数量的(api),程序员之间的相互交互也有限,因而对于系统其它组件的影响最小。操作系统的基本概念操作系统的基本概念v微内核特点微内核特点5 5v分布系统支持(distributed system support):n微内核适合于由分布
5、操作系统控制的集群系统。当一个消息从客户发到服务器进程,该消息必须包含请求服务的标识符。当一个分布系统(如集群系统)被配置为所有的进程和服务有唯一的标识符,那么似乎在内核模式下存在单一的系统映象,一个进程能够在不知道目标服务驻留在哪台机器情况下发送消息。操作系统的基本概念操作系统的基本概念v微内核特点微内核特点6 6v面向对象操作系统(object-oriented operating system):n微内核结构非常适合面向对象操作系统的要求,一个面向对象的方法有助于一个微内核的设计和操作系统的模块化扩充。将微内核结构和面向对象操作系统原理结合起来的例子是组件的使用,组件是清楚定义了接口的对
6、象,它们能够互连起来以预制建筑块的方式形成软件,使用组件之间的接口实现组件之间的全部相互作用。操作系统的基本概念操作系统的基本概念v操作系统组成模块n进程管理n主存管理n二级储存器管理ni/o系统管理n文件管理n保护系统n网络处理n命令解释器系统 操作系统的基本概念操作系统的基本概念v操作系统服务1 程序执行:调入一个程序进内存并运行之的系统能力。一个程序的运行离不开操作系统的配合,其中包括指令和数据载入内存,i/o 设备和文件系统的初始化等等。 i/o操作:由于用户程序不能直接执行i/o操作,操作系统必须提供手段完成i/o操作。每种i/o 设备的管理和使用都有自己的特点。而操作系统接管了这些
7、工作,从而使得用户在使用这些i/o 设备的过程中会感觉更方便。 操作系统的基本概念操作系统的基本概念v操作系统服务2 文件系统操作:读、写、创建和删除文件的能力。文件访问不仅需要熟悉相关i/o 设备(磁盘驱动器等)的特点,而且还要熟悉相关的文件格式。另外,对于多用户操作系统或者网络操作系统,从计算机安全角度考虑,需要对文件的访问权限做出相应的规定和处理。这些都是操作系统所要完成的工作。 通信:运行的进程在同一计算机或由网络连接的不同系统中交换信息。通过共享存储器或消息传递实现。 操作系统的基本概念操作系统的基本概念v操作系统服务3 出错检测:探测在cpu与内存硬件中,在i/o设备中,或在用户程
8、序中的错误,确保正确运算。当系统运行时,会出现这样那样的问题。操作系统应当提供相应的机制来检测这些信息,并且能对某些问题给出合理的处理或者报告用户。 程序开发:一般操作系统都会提供丰富的api 供程序员开发应用程序,并且很多程序编辑工具,集成开发环境等等也都是通过操作系统提供的。 操作系统的基本概念操作系统的基本概念v其他操作系统功能 v其他的功能不是用于帮助用户,而是为了系统效率的: 资源分配:把资源分配给多个用户或多个同时运行的作业 帐务:跟踪和记录用户对资源的使用,用于帐单和统计 保护:确保对资源的所有访问均在控制中操作系统的基本概念操作系统的基本概念v系统设计目标 v用户目标:操作系统
9、应该便于使用,易学,可靠,安全并且快捷 v系统目标:操作系统应该容易设计、实现和维护,还要灵活、可靠、无错误和高效 操作系统的基本概念操作系统的基本概念v系统实现 传统上用汇编语言编写,现在可用高级语言编写 v用高级语言编写代码: 编码快 更紧凑 容易理解和调试 v以高级语言编写的操作系统更容易移植 第七章第七章 嵌入式操作系统嵌入式操作系统嵌入式操作系统的基本概念嵌入式操作系统的基本概念嵌入式操作系统基本概念嵌入式操作系统基本概念v定义:定义:v嵌入式操作系统(eos)是支持嵌入式系统工作的操作系统。它是一种用途广泛的系统软件,过去主要应用于工业控制和国防。eos负责嵌入式系统的全部软、硬件
10、资源的分配、调度、控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统嵌入式操作系统eoseos发展发展v近些年来,eos得到飞速的发展,随着internet技术的发展、信息家电的普及应用及eos的微型化和专业化,eos开始从单一的弱功能向高专业化的强大功能方向发展。 从支持8位微处理器到16位、32位甚至64位微处理器; 从支持单一品种的微处理器芯片到支持多品种微处理器芯片; 从只有内核到除了内核外还提供其他功能模块,如文件系统,tcp/ip网络系统,窗口图形系统等。嵌入式操作系统基本概念嵌入
11、式操作系统基本概念v发展历程无操作系统的嵌入算法阶段以嵌入式cpu为基础、以简单操作系统为核心的嵌入式系统通用的嵌入式实时操作系统阶段基于internet的嵌入式系统嵌入式操作系统基本概念嵌入式操作系统基本概念v 第一阶段v 无操作系统的嵌入算法阶段 以单芯片为核心的可编程控制器形式的系统。 具有与监测、伺服、指示设备相配合的功能。 大部分应用于一些专业性极强的工业控制系统中 一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。v 特点: 系统结构和功能都相对单一 处理效率较低 存储容量较小 几乎没有用户接口。 使用简便、价格很低 嵌入式操作系统基本概念嵌入式操作系
12、统基本概念v 第二阶段v 以嵌入式cpu为基础、以简单操作系统为核心的嵌入式系统。v 特点 cpu种类繁多 通用性比较差 系统开销小 效率高 一般配备系统仿真器,操作系统具有一定的兼容性和扩展性 应用软件较专业,用户界面不够友好 系统主要用来控制系统负载以及监控应用程序运行 嵌入式操作系统基本概念嵌入式操作系统基本概念v 第三阶段v 通用的以嵌入式操作系统为核心的嵌入式实时系统阶段v 特点 嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好; 操作系统内核精小、效率高,并且具有高度的模块化和扩展性 具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能 具有大量的应用
13、程序接口(api),开发应用程序简单 嵌入式应用软件丰富。 嵌入式操作系统基本概念嵌入式操作系统基本概念v第四阶段v 基于internet为标志的嵌入式系统 正在迅速发展的阶段。 目前大多数嵌入式系统还孤立于internet之外,但随着internet的发展以及internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与internet的结合将代表着嵌入式技术的真正未来。 嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统技术现状嵌入式操作系统技术现状v适应不同的嵌入式硬件平台,具有可移植、可伸适应不同的嵌入式硬件平台,具有可移植、可伸缩能力缩能力。v采用的主要技术: 编
14、程语言普遍采用高级语言实现,主要以c语言为主。 体系结构采用分层和模块化结构或微内核结构。嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统技术现状(续)嵌入式操作系统技术现状(续)v分层和模块化结构分层和模块化结构,将操作系统分为: 硬件无关层 硬件抽象层 硬件相关层 每层再划分功能模块 移植工作集中在硬件相关层硬件相关层,与其余两层无关 功能的伸缩集中在模块上,从而确保了系统具有良好的可移植性和可伸缩性。嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统技术现状(续)嵌入式操作系统技术现状(续)v功能复杂,具有可剪裁、可配置的能力功能复杂,具有可剪裁、可配置的能力 v采
15、用的主要技术: 可剪裁技术。操作系统以内核为中心,包括很多独立的功能组件如文件、网络等。除内核外其他组件的选择任意搭配,由应用决定。 可配置技术。每个功能组件都可以根据应用的要求进行配置,比如最大任务数、内存地址、堆栈大小、系统任务的优先级、缓冲区大小及文件数等。嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统技术现状(续)嵌入式操作系统技术现状(续)v 良好的实时性良好的实时性:时间确定性是嵌入式实时操作系统必备的特点,特别对于强实时嵌入式系统而言尤为重要。 v 采用的主要技术: 采用实时调度算法。主要采用静态优先级的可抢占式调度、比率单调算法等。 采用内存静态分配策略和零拷贝技
16、术保证确定性。 内存管理不采用虚存管理机制 采用优先级继承和优先级天花板两种技术解决优先级反转(倒置)问题嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统技术现状(续)嵌入式操作系统技术现状(续)v可靠性和高可用 v采用的主要技术: 利用存储管理单元(mmu)、用户态和核心态机制,实现操作系统与应用程序的隔离,以及应用程序和应用程序之间的隔离,以防止应用程序破坏操作系统的代码、数据。嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统的发展趋势嵌入式操作系统的发展趋势v体系结构向微内核方向发展 可伸缩、可移植、可剪裁、可配置v行业的标准:多种操作系统平台,应用决定操作系统v
17、结构紧凑、功能强大v高可用(high available)、高可靠(high reliable )、支持多处理器和分布式计算v可动态加载和升级软件v与开发工具有机的结合起来嵌入式操作系统基本概念嵌入式操作系统基本概念v依赖于相关技术的发展 嵌入式操作系统基本概念嵌入式操作系统基本概念v行业标准行业标准v行业性嵌入式软硬件平台v嵌入式系统是以应用为中心的系统,不会象pc一样只有一种平台v吸取pc的成功经验,形成不同行业的标准。v统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容、维护方便和合作生产的特点,是增强行业性产品竞争能力的有效手段。嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌
18、入式操作系统的特点嵌入式操作系统的特点veos是相对于一般操作系统而言的,它除具备一般操作系统最基本的功能(如任务调度、同步机制、中断处理、文件处理等)外,还有以下特点: 可装卸性,即具有开放性、可伸缩性的体系结构。 强实时性,可应用于各种实时控制。 统一的接口,提供各种设备的驱动。 操作方便、简单,提供友好的图形gui,易学易用。嵌入式操作系统基本概念嵌入式操作系统基本概念 能够提供强大的网络功能,支持包括传输控制协议/internet协议(tcp/ip,transmission control protocol/internet protocol)、用户数据报协议(udp,user dat
19、agram protocol)、端对端协议(ppp,peer-peer protocol)等协议,以及统一的媒体访问控制(mac,medium access control)层接口,为各种移动计算设备预留接口。嵌入式操作系统基本概念嵌入式操作系统基本概念 强稳定性和弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要求负责系统管理的eos具有较强的稳定性;eos的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。 固化代码。在嵌入式系统中,eos和asw被固化在它的rom中,辅助存储器很少使用。 对硬件有着良好的适应性,容易被移植到多种硬件平台上。嵌入式操作系统基本
20、概念嵌入式操作系统基本概念v概括起来,嵌入式操作系统的特点:概括起来,嵌入式操作系统的特点:微内核、模块化、可方便裁减微内核、模块化、可方便裁减实时性,尤其对于控制系统实时性,尤其对于控制系统强大的网络功能强大的网络功能稳定性强、不依赖于交互操作稳定性强、不依赖于交互操作代码固化代码固化可以执行好,适应多种体系结构可以执行好,适应多种体系结构 嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式系统对操作系统的要求嵌入式系统对操作系统的要求v在设计各种嵌入式产品时,采用什么样的嵌入式操作系统是一个至关重要的决定,因为这将影响产品的全局特别是今后软件的维护。一般而言,在选择嵌入式操作系统时,可以
21、遵循以下原则,或归纳成“作加法还是作减法”的问题。嵌入式操作系统基本概念嵌入式操作系统基本概念v(1)市场进入时间 产品从开发到进入市场的时间表与选择的操作系统关系密切。从人力资源的角度来说,目前windows程序员可能是最丰富的,因此使用windows ce(简称wince)能够很快进入市场。产品基于wince+x86看起来像作加法实际上是在作减法,因为去掉不要的功能就可以很快地出产品,但可能由于很多人都会做而使得核心竞争力变差。反之,如果采用某些高效的操作系统,优点是针对性强且能够形成自主的知识产权,但却可能由于编程人员缺乏,或由于这方面的技术积累不够,而影响开发进度。嵌入式操作系统基本概
22、念嵌入式操作系统基本概念v(2)可移植性 当进行嵌入式软件开发时,可移植性是要重点考虑的问题。软件的通用性和软件的性能通常是矛盾的,往往不得不以损失某些特定情况下的优化性能为代价。一个好的嵌入式操作系统应该能够在不同平台、不同系统上运行,或者稍加修改即可运行,这就是它的可移植性。实际上,当平台和操作系统紧密结合而融于产品之中时,产品的特色也就蕴涵其中了。嵌入式操作系统基本概念嵌入式操作系统基本概念v(3)可利用资源 产品开发有别于学术研究,它通常以快速、低成本、高质量地推出适合用户需求的产品为目的。将研发的精力首先集中在产品的特色上,其他功能尽量由操作系统或采用第三方产品来完成,这就是说操作系
23、统的可利用资源对于选型来说是一个重要的参考条件。linux和wince都有大量的资源可以利用,这是它们被看好的重要原因。其他有些实时操作系统由于比较封闭,开发时可以利用的资源比较少,因此多数功能需要自己独立开发,从而影响开发进度。近来的市场需求显示,越来越多的嵌入式系统要求提供全功能的web浏览器,而这要求有一个高性能、高可靠性的gui的支持。嵌入式操作系统基本概念嵌入式操作系统基本概念v(4)系统定制能力 形形色色的电子信息类产品不同于传统pc的wintel(windows & intel,即由windows操作系统和intel的cpu组成)结构的单纯性,用户的需求千差万别,硬件平台也都不一
24、样,这就对系统的定制能力提出了要求。要分析产品是否对系统底层有改动的需求,以及这种改动是否涉及产品特色。 linux的源代码是开放的,在定制能力方面颇具魅力;随着wince 3.0原码的开放及微软(ms,microsoft)在嵌入式领域加强了投入力度,其定制能力亦呈上升趋势。嵌入式操作系统基本概念嵌入式操作系统基本概念v(5)成本 成本是所有产品都得重点考虑的问题。操作系统的选择会对成本有什么影响?linux免费,wince等商业系统需要支付许可证使用费,但这都不是问题的实质。成本是需要综合权衡的:选择某一系统可能会对其他一系列的因素产生影响,如对硬件设备的选型、人员投入、公司管理、与其他合作
25、伙伴之间的沟通等。嵌入式操作系统基本概念嵌入式操作系统基本概念v(6)中文内核支持 国内产品需要对中文的支持。由于操作系统多数采用西文方式,因此,是否支持双字节编码方式,是否符合我国的相关国家标准,能否采用中文输入与处理,能否提供第三方中文输入接口等,是针对国内用户的嵌入式产品所必须考虑的重要因素。嵌入式操作系统基本概念嵌入式操作系统基本概念v上面提到用wince+x86出产品是一种减法,这实际上就是所谓的pc家电化;另外一种是作加法,即利用家电行业的硬件解决方案加以改进,它们绝大部分是非x86的,加上嵌入式操作系统,再加上应用软件,就形成了所谓家电pc化。这种加法的优势是成本低,特色突出,缺
26、点是产品研发周期长,难度大,因为需要深入了解硬件和操作系统两者。对于这种做法,linux是一个好的选择,它能让研发者深入到系统底层,其前提是愿意且有能力。嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统架构嵌入式操作系统架构 嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统分类嵌入式操作系统分类v嵌入式操作系统的分类方法较多。可以按照源代码是否开放、实时性能和内核结构来分类。v(1) 按照源代码分类,可分为商用型和开源型。v商用型实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵。v开源型实时操作系统在开发成本方面具有优势,clinux、rtlinu
27、x、nucleus plus、ecos和c/os-是主要的开源型嵌入式操作系统。嵌入式操作系统基本概念嵌入式操作系统基本概念v(2) 按照实时性能分类,可分为强实时型和普通实时型。v强实时型嵌入式操作系统有vxworks、psos、c/os-等。v普通实时型嵌入式操作系统有windows embedded、clinux、symbian等。嵌入式操作系统基本概念嵌入式操作系统基本概念v(3) 按照内核结构分类,可分为单内核型和微内核型。v单内核是传统型操作系统内核,有时也称为宏内核。第七章第七章 嵌入式操作系统嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统嵌入式实时操作系统嵌入式实时操作系统
28、v嵌入式操作系统常常有实时要求 早期:嵌入式操作系统 = 实时操作系统 近期: 1)手持计算机和掌上计算机的出现; 2)cpu速度的提高; 3)常规操作系统增加实时进程调度的支持,如posix.4 嵌入式操作系统 实时操作系统嵌入式实时操作系统嵌入式实时操作系统v嵌入式系统与实时系统嵌入式系统与实时系统v嵌入式系统不一定是实时系统v实时系统一般都是嵌入式系统嵌入式实时操作系统嵌入式实时操作系统v什么是实时系统? v ieee(美国电气电子工程师协会) 实时系统为“那些正确性不仅取决于计算的逻辑结果,也取决于产生结果所花费的时间的系统”。 实时嵌入式系统必须在一个可预测可保证的时间段内做出对外部
29、事件的反应。如果没有达到上述要求,那么系统就会做出错误的操作。v posix standard 1003.1操作系统中实时的定义: 操作系统有能力在限定响应时间范围内,提供满足需求的服务。 嵌入式实时操作系统嵌入式实时操作系统v实时系统指标 响应时间(response time): 是计算机识别一个外部事件到作出响应的时间, 生存时间(survival time): 是数据有效等待时间, 在这段时间里数据是有效的。 吞吐量(throughput): 是在一给定时间内,系统可以处理的事件总数。嵌入式实时操作系统嵌入式实时操作系统v实时系统到底有多快?v 实时系统的响应“足够快” 满足要求即可v
30、实时软件时限 十微秒的时间内对外部事件做出可靠的响应v 实时系统是最快的吗? 不一定是运行速度最快的代码 可预测性比速度更重要 嵌入式实时操作系统嵌入式实时操作系统v怎么达到实时的要求呢? 充分发挥硬件的功能 微处理器的中断机制 简单的单线程循环程序 基于实时操作系统的复杂多线程程序 以硬件的方式实现软件 嵌入式实时操作系统嵌入式实时操作系统v由于通常具有实时性的要求,又称为实时操作系统rtos(real-time operating system)v为什么使用rtos? 支持多任务 简化应用软件的开发难度v实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占
31、有cpu的控制权。嵌入式实时操作系统嵌入式实时操作系统v实时操作系统是实时多任务操作系统(rtos,real time multi-tasking operation system)的简称,是嵌入式应用软件的基础和开发平台。v目前在我国,大多数嵌入式软件开发还是基于处理器直接编写的,没有采用商品化的rtos,不能将系统软件和应用软件分开处理,仍要有一个主程序负责调度各个任务。嵌入式实时操作系统嵌入式实时操作系统vrtos是一段嵌入在目标代码中的软件,用户的其他应用程序都建立在它之上。不但如此,rtos还是一个可靠性和可信性很高的标准的实时内核,将cpu时间、中断、i/o、定时器等资源都包装起来
32、,留给用户一个标准的api,并根据各个任务的优先级,合理地在不同任务之间分配cpu时间。嵌入式实时操作系统嵌入式实时操作系统vrtos是针对不同处理器优化设计的高效率实时多任务内核。优秀的商品化rtos可以面对几十个系列的嵌入式处理器,如mpu、mcu、dsp、soc等,提供类同的api接口,这是rtos基于设备独立的应用程序开发基础。因此,基于rtos的c语言程序具有很好的可移植性,例如,在一个好的rtos上跨处理器平台的程序移植能够做到只修改15%的内容。在rtos基础上可以编写出各种硬件驱动程序、专家库函数、行业库函数、产品库函数等,和具有通用性的应用程序一起,可以作为产品销售,促进行业
33、内的知识产权交流,因此从这一意义上讲,rtos又是一个软件开发平台。嵌入式实时操作系统嵌入式实时操作系统vrtosrtos的基本结构的基本结构vrtos最关键的部分是实时多任务内核,它的基本功能包括:任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理等。这些管理功能是通过内核服务函数形式交给用户调用的,也就是rtos的api。嵌入式实时操作系统嵌入式实时操作系统v实时操作系统内核实时操作系统内核 嵌入式实时操作系统嵌入式实时操作系统v实时操作系统组成实时操作系统组成 嵌入式实时操作系统嵌入式实时操作系统v最简内核纳核v 实时操作系统内核代码大约1k到100k 用
34、户可裁减掉程序员认为没有使用到的功能,直到只剩下最简内核(任务的管理与调度,称其为纳核,可以只有1k) 如何得到最简内核是嵌入式系统开发中非常重要的一环!嵌入式实时操作系统嵌入式实时操作系统v什么样的os才是实时os呢?v 实时操作系统ieee实时unix分委会要求 异步的事件响应 切换时间和中断延迟时间确定 优先级中断和调度 抢占式调度 内存锁定 连续文件 同步嵌入式实时操作系统嵌入式实时操作系统v实时操作系统实时操作系统rtosrtos的基本特征:的基本特征: 高效的任务管理 快速灵活的任务间通信 高度的可剪裁性 动态链接与部件增量加载 快速有效的中断和异常事件处理 优化的浮点支持 动态内
35、存管理 系统时钟和定时器嵌入式操作系统基本概念嵌入式操作系统基本概念v实时操作系统特点v 确定性(determinism)v 响应性(responsiveness)v 用户控制(user control)v 可靠性(reliability)v 软失败操作(fail-soft operation) 嵌入式操作系统基本概念嵌入式操作系统基本概念v确定性v实时软件对于外部事件的响应时间必须是实时的、确定的和可以重复实现的,不管当时系统内部状态如何,都是可预测的。v一个测量操作系统确定性能力的指标是从一个高优先级设备中断到达到开始服务的最大延迟最大延迟。 在非实时操作系统中,这个延迟可能是几十到数百毫
36、秒; 在实时操作系统中有一个明确的上界,从几个微秒到一毫秒不等。 嵌入式操作系统基本概念嵌入式操作系统基本概念v响应性v响应性是在应答中断后,操作系统服务中断时间。 初始化中断处理和开始执行中断服务程序(isr)需要的时间。如果是要求一个进程切换的isr执行,那么比在当前进程上下文中的isr执行延迟更长时间。 执行isr需要的时间。这通常依赖于硬件平台。 中断嵌套的作用。如果一个isr可能被另一个中断的到达而中断,那么它的服务将被延迟。 嵌入式操作系统基本概念嵌入式操作系统基本概念v 响应时间v 确定性和响应性共同构成了对于外部事件的响应时间。v 响应时间对于rtos是至关重要的,由于系统必须
37、满足系统外部个人、设备或者数据流的定时要求。 嵌入式操作系统基本概念嵌入式操作系统基本概念v 用户控制v 在一个典型的非实时操作系统中,用户或者不能控制操作系统的调度功能,或者只能提供粗略的指导,如将用户编组进入多于一个优先级的类别。v 在rtos中,允许用户精细控制任务优先级是基本功能。 用户应该能够区分硬实时任务和软实时任务,并在每个类别中指定相对的优先级。 一个rtos也能够指定这类特征,如分页或者进程切换,哪些进程必须总是驻留在主存中,使用哪个磁盘传输算法,在各种优先级类别中的进程有哪些权利,等等。 嵌入式操作系统基本概念嵌入式操作系统基本概念v可靠性v 在非实时系统中一个瞬时错误可以
38、简单地通过重新引导系统来解决 v 在多处理机非实时系统中一个处理机的失败可能在修复或代替该处理机之前造成服务级别的降低。v 但是,实时系统需要实时响应和控制事件,性能的丧失或降低可能造成灾难性的后果。 嵌入式操作系统基本概念嵌入式操作系统基本概念v 软失败操作v 软失败操作是指这样一个特征,系统能够以这样一种方式失败,它能够尽可能地保留能力和数据。 一个典型的传统unix系统,当它检测到内核数据的误用,在系统控制台上发出失败消息,将内存内容倒到磁盘用于以后的失败分析,同时终止系统的执行。 与此相反,rtos将试图或者纠正这个问题或者最小化它的影响,同时继续运行。典型情况下,系统通告用户或者用户
39、进程,它将试图进行纠正动作,然后继续操作,或许此时降低了服务级别。 嵌入式实时操作系统嵌入式实时操作系统vrtosrtos是嵌入式系统的软件开发平台是嵌入式系统的软件开发平台vrtos的引入,解决了嵌入式软件开发标准化的难题。随着嵌入式系统中软件的比重不断上升、应用程序越来越大,对开发人员、应用程序接口、程序档案的组织管理等已成为大的课题。引入rtos相当于引入了一种新的管理模式,对于开发单位和开发人员都是一个提高。而基于rtos开发出的程序,具有较高的可移植性,一些成熟的通用程序可以作为专家库函数产品推向社会。嵌入式软件的函数化、产品化能够促进行业交流以及社会分工专业化,减少重复劳动,提高知
40、识创新的效率。嵌入式实时操作系统嵌入式实时操作系统v实时操作系统的发展过程实时操作系统的发展过程v近些年来,嵌入式实时操作系统得到了飞速的发展。v目前,国际上已成功地推出了百余种可供嵌入式应用的实时操作系统,例如mentor(原microtec)公司的vrtx、integrated system公司(简称isi)的psos、wind river公司的vxworks等,微软的wince以及嵌入式linux也是嵌入式实时操作系统。这些操作系统适用于实时多任务应用环境,而且还具有功能齐全的交叉开发环境。嵌入式实时操作系统嵌入式实时操作系统v从系统结构上看,rtos经历了如下三个阶段。v(1)早期的实
41、时操作系统v早期的实时操作系统还不能称为真正的rtos,它只是小而简单、带有一定专用性的软件,功能较弱,和现在的某些实时监控程序相当,一般仅能为用户提供对系统的初始化管理及简单的实时时钟管理,稍好一点的引入了任务调度及简单的任务间协调等功能。这个时期,实时应用尚为简单,实时性要求也不高,应用程序、实时监控程序和硬件运行平台往往是紧密联系在一起的。嵌入式实时操作系统嵌入式实时操作系统v(2)专用实时操作系统v随着应用的发展,早期的rtos越来越不能满足需求。有些实时系统的开发者为了满足实时应用的需要,自己研制与特定硬件相匹配的实时操作系统,这就是专用实时操作系统。它通常是用户为满足自身开发的需要
42、而研制的,一般只能适用于特定的硬件环境,且缺乏严格的测试和评估,移植性也不太好。属于这类实时操作系统的有intel公司的imax86等。嵌入式实时操作系统嵌入式实时操作系统v(3)通用实时操作系统v 在各种专用rtos中,一些多任务的机制,如基于优先级的调度、实时时钟管理、任务间的通信、同步互斥机构等,基本上是相同的,不同的只是面向各自的硬件环境与应用目标。实际上,相同的多任务机制是能够共享的,因而可以把这部分很好地组织起来,形成一个通用的实时操作系统内核。这类实时操作系统大多采用软组件结构,以一个个软件“标准组件”构成通用的操作系统通用的操作系统。一方面,在rtos内核的底层将不同的硬件特性
43、屏蔽掉;另一方面,对不同的应用环境提供标准的、可剪裁的系统服务软组件。这使得用户可根据不同的实时应用要求及硬件环境选择不同的软组件,也使得实时操作系统开发商在开发过程中减少了重复性的工作。嵌入式实时操作系统嵌入式实时操作系统v这类通用实时操作系统,有integrated system公司的psos+、intel公司的irmx386、ready system公司(后与microtec research合并)的vrtx32等。它们一般都提供实时性较好的内核、多种任务通信机制、基于tcp/ip的网络组件、文件管理及i/o服务,提供集编辑、编译、调试、仿真为一体的集成开发环境,支持用户使用c、c+进行
44、应用程序的开发。嵌入式实时操作系统嵌入式实时操作系统vrtosrtos的研究的研究v rtos经过多年的发展,已形成操作系统研究领域中的一个重要分支。今后,rtos研究将主要集中在如下3个方面:v (1)标准化v 现在,全球rtos开发商提供了上百个rtos,它们各具特色,但这也给应用开发者带来了难题,例如,当选择不同的rtos开发时,往往不能保护用户已有的软件投资,给用户带来应用代码难以重复使用的问题。由此,rtos的标准化研究越来越被重视,美国ieee在unix的基础上,制定了实时unix系统的标准posix 1001.4系列协议,但仍有许多工作要做。嵌入式实时操作系统嵌入式实时操作系统v
45、(2)多处理器结构、分布式和网络的实时性v实时应用的飞速发展对rtos的性能提出了更高的要求,单处理器的计算机系统已不能很好地满足某些复杂实时应用系统的需要,开发支持多处理器结构的rtos已成为发展方向,这方面比较成功的系统有psos+m等。至于分布式rtos,国际上虽已推出了部分产品(如qnx、chorus、plan 9等),但还不是很成熟,特别是在网络实时性和多处理器间任务调度算法上还需要进一步研究。嵌入式实时操作系统嵌入式实时操作系统v(3)集成的开放式开发环境vrtos研究的另一个重要方向是集成开发环境。开发实时应用系统,只有rtos是不够的,需要集编辑、编译、调试、模拟仿真等功能为一
46、体的开发环境的支持。开发环境的研究还包括网络上多主机间协作开发与调试应用技术的研究、rtos与环境的无缝连接技术等。嵌入式实时操作系统嵌入式实时操作系统vrtosrtos的几个评价指标的几个评价指标vrtos是操作系统的一个重要分支,它与一般商用多任务os,如unix、windows、multifinder等,既有共同的一面,也有不同的一面。对于商用多任务os,其目的是方便用户管理计算机资源,追求系统资源的最大利用率;而rtos追求的是实时性、可确定性和可靠性。一般可以从如下几个方面评价一个实时操作系统:嵌入式实时操作系统嵌入式实时操作系统v(1)任务调度机制vrtos的实时性和多任务能力在很
47、大程度上取决于它的任务调度机制。从调度策略上来讲,分为优先级和时间片轮转两种;从调度方式上来讲,分为可抢占、不可抢占、选择可抢占等;从时间片来看,分为固定与可变时间片轮转两种。嵌入式实时操作系统嵌入式实时操作系统v(2)内存管理和最小内存开销v内存管理方面,可分为实模式与保护模式两种。vrtos的设计过程中,最小内存开销是一个较重要的指标。这是因为,在工业控制领域中的某些工控机(如上下位机控制系统中的下位机),基于降低成本的考虑,其内存的配置一般都不大,而在有限的空间内不仅要装载实时操作系统,还要装载用户程序。因此,在rtos的设计中,其占用内存大小是一个很重要的指标,这是rtos设计与其他操
48、作系统设计的明显区别之一。嵌入式实时操作系统嵌入式实时操作系统v(3)最大中断禁止时间v当rtos运行在核态或执行某些系统调用时,是不会因为外部中断的到来而中断执行的。只有当rtos重新回到用户态时才响应外部中断请求,这一过程所需的最大时间就是最大中断禁止时间。v(4)任务切换时间v当由于某种原因使一个任务退出运行时,rtos保存它的运行现场信息,插入相应队列,并依据一定的调度算法重新选择一个任务使之投入运行,这一过程所需时间称为任务切换时间。嵌入式实时操作系统嵌入式实时操作系统v嵌入式操作系统与通用操作系统的区别嵌入式操作系统与通用操作系统的区别v许多初学者可能会有这样的疑问:任务管理、定时
49、器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理等好像所有的操作系统(os)都有,那么嵌入式操作系统(eos)和通用os之间到底有什么区别?v既然称之为操作系统,eos必须要有通用os的基本功能。不过顾名思义,eos应该是os的一个子集,而区别就在于embedded。嵌入式实时操作系统嵌入式实时操作系统veos要嵌入到各种各样的芯片当中,而各种芯片又是不同的mpu或mcu,内存访问可能是总线方式也可能是片上的ram/rom方式,可能用外接中断控制芯片也可能是在片上集成了中断功能,各种芯片的内部体系结构不同且永远不可能相同,等等。这就使得eos百花齐放而不像pc平台的wind
50、ows那样一枝独秀,因为后者只是建立在intel体系之上。另外,大多数应用要求eos是一个实时内核,例如,前面提到的汽车abs系统,它不能像windows那样经常在延迟之后才对某些事件做出反应。嵌入式实时操作系统嵌入式实时操作系统v从某种意义上讲,eos最关注的是对特殊芯片的控制性和实时性,而通用os更注重的是体系结构及更高层次的封装,但它底层的核心可以说是实时性不太好的eos。其实,现在用的windows已经有很大部分超越了os概念,更多的是在基于os内核的系统级应用程序。嵌入式实时操作系统嵌入式实时操作系统v实时操作系统的选择v嵌入式软件工程师开发应用程序经常处于从零开始的状态,很难决定是
51、买一个rtos还是自己动手做;如果要买的话,还必须决定买哪一种、从哪家供应商买等。v一般认为,学习硬件开发时的经验大有裨益。在做硬件为主的新设计时,总是先选择现成的集成电路,不到万不得已决不自己设计。同样,对以软件为主的新设计来说,使用前人的工作成果来达到目标的第一步就是选择一种rtos,这时就应考虑以下几个问题。嵌入式实时操作系统嵌入式实时操作系统v1 1使用使用rtosrtos的必要性的必要性v 在选择一个rtos之前必须弄清楚下面的问题:为什么需要它?软件系统在rtos的支持下能否工作得更好?v 使用rtos虽然可以使产品开发的速度加快,但它可能要求一些额外的开销。在实际应用中,有很多简
52、单的产品不够大也不够复杂,根本负担不起额外的开销,正如有的应用仍推崇汇编语言一样,在这种情况下,采用更简单的结构可能就足够了,因此不能指望在所有的嵌入式系统里面都安装一个rtos。但是随着技术的进步,rtos的额外开销正在迅速变小,尽管在一些应用中可能仅使用它的一部分功能,但综合考虑时间、人力资源、成本及后续改进等因素,将会有越来越多的场合使用rtos更合算。嵌入式实时操作系统嵌入式实时操作系统v2 2自建还是购买自建还是购买v这永远都是要仔细权衡的问题。在大多数情况下,购买rtos可能是较好的选择,但在某些情况下,现成的操作系统满足不了要求,就只能选择自建。在嵌入式系统中,为了使用专用代码而
53、安装的基础系统相当大,因此把老代码剥离出来移植到新的操作系统上不一定是个明智的主意,而将产品移植到一种新的微处理器上是说得通的。如果该专用rtos尚未被移植到新的微处理器上,可能使用现成的rtos更好些。嵌入式实时操作系统嵌入式实时操作系统v3 3调试工具和工具间的相互关系调试工具和工具间的相互关系vrtos的供应商通常还提供有助于找到错误的调试工具,用它可以找到某些用其他源码级调试器难于发现的错误(如死锁)。许多工具允许开发者在任务之间相互传递信号标志时,在任务切换时和发生中断时进行监测,当然这将以增加cpu开销为代价。v有些供应商还会提供集成开发环境给用户。嵌入式实时操作系统嵌入式实时操作
54、系统v因此,在选择rtos时就应该考虑与之相关的各种工具。微处理器、在线仿真器ice、编译器、汇编器、连接器、调试器及模拟器等都会影响操作系统。有些ice供应商提供ice与rtos接口的软件,它们能否协同工作,在调试那些最隐蔽的小错误(bugs)时是很有用的。另外,也要了解ice对要设计的嵌入式系统性能的影响,因为当ice执行操作时会增加额外的开销(如中断某行源代码在某个任务中的执行)。总之,应该确认供应商到底提供什么样的支持,例如,选用的rtos与编译器能否合作等。嵌入式实时操作系统嵌入式实时操作系统4 4选择准则选择准则v在选择rtos的过程中有两个基本的准则。首先,需要考察rtos与整个
55、产品线的兼容性,例如,与已经选用或准备选用的其他微处理器是否兼容,它在近几年是否仍会发展,现在正在使用的工具哪些要与rtos一起继续使用等。其次,创建一个能尽快实现部分功能的框架,这样做虽然有点违背购买现成rtos的目的,但深入了解rtos的结构和全部功能必然有一个过程,开发者很难预料在整个设计过程中需要rtos的哪些服务,因此,应尽快建立一个框架,试图在新的rtos中找出一些已经熟悉的特性,然后逐步深入。嵌入式实时操作系统嵌入式实时操作系统v需要选择rtos的时候,通常已经选定了微处理器,可以先列出一份可供选择的rtos清单,据此可以立即划掉不支持所选微处理器的rtos,从而得到较短的清单。
56、如果有困难,应积极地寻求供应商和有经验工程师的技术支持。嵌入式实时操作系统嵌入式实时操作系统v5 5性能和供应商的技术支持性能和供应商的技术支持v对所有的产品或系统来说,性能都是最重要的。在开发之前,应该首先注意可能对系统性能造成影响的一些问题,例如,供应商使用的是什么评估板?微处理器的时钟频率是多少?使用的什么存储系统?存储器访问使用了几个等待周期?然后再进行公平的对比。另外,性能建模工具可以帮助建立系统性能模型,随着设计的深入,还应继续细化性能模型。嵌入式实时操作系统嵌入式实时操作系统v内核要求的最小存储容量反映了rtos的重要性能。尽管rtos可以被装入一个非常小的内存中,但当某种嵌入式
57、芯片给出了内核要求的最小存储器大小时,很重要的一点就是要了解这个内核中包括了什么,因为最小的内核经常仅支持很少的功能,而典型的配置又可能产生大得多的内核。如果系统非常在乎ram或rom的大小,一定要注意这个问题。有时供应商会提供详细的列表,说明创建包含不同服务的内核所需要的ram和rom。嵌入式实时操作系统嵌入式实时操作系统v有些操作系统的供应商会将其某些特性、功能或驱动程序作为可选配件,理论上它们是操作系统的一部分,但却被单独包装,还可以从其他供应商获得,因此在与供应商交涉时,还要弄清楚感兴趣的rtos里到底集成了哪些组件。v购买了rtos之后,能否获得必要和及时的技术支持对系统研发是极为重
58、要的方面。rtos供应商通常承诺提供多种支持渠道,但是要确认这种支持在购买之后能持续多久,最好能用提前感受一下供应商技术支持的质量,例如,培训、提供几个附带的高质量文档实例、请求协助解决某个技术问题等。嵌入式实时操作系统嵌入式实时操作系统v6 6标准或兼容性标准或兼容性v嵌入式系统将来可能无所不在,开发者也不可能什么事情都自己做,依赖于他人开发的组件是常有的事。为了增强不同厂家不同型号的产品或系统之间的互操作性,在开发之初就应该通过各种标准加大开发需求的互操作性,包括通信协议、服务、库或者其他组件,嵌入式实时操作系统嵌入式实时操作系统v例如:tcp/ip,telnet,超文本传输协议(http
59、,hypertext transfer protocol),文件传输协议(ftp,file transfer protocol),简单网络管理协议(snmp,simple network management protocol)等。类似地,在购买板卡或ic时,要确定能否得到设备驱动程序。如果将要开发的系统对其安全性是敏感的,就应该考虑一下该行业所要求的安全标准及相关的认证。嵌入式实时操作系统嵌入式实时操作系统v7 7许可方面许可方面v购买某些高级的rtos属于重大的商业事务,有许多费用要考虑。在许多情况下,开发工具的费用是由rtos供应商来承担的,用户有了rtos供应商发放的许可证才可以开发产
60、品。在具体操作上,有的供应商一次性地收取一大笔费用,而有的供应商采用提成方式,其收费遍及每个用户、每个平台、每个产品、每个位置直至达到某一数字为止。第七章第七章 嵌入式操作系统嵌入式操作系统常见的嵌入式操作系统常见的嵌入式操作系统常见的嵌入式操作系统常见的嵌入式操作系统v几种最常见的实时操作系统rtosv软实时rtos 嵌入式linux win cev硬实时rtos vxworks rt linux常见的嵌入式操作系统常见的嵌入式操作系统v几种最常见的实时操作系统rtosv著名的open rtos uc/os-ii rtemsv自主知识产权的rtos hopen delta os常见的嵌入式操
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 别墅花园装修合同范本
- 《锦瑟》教学设计 2024-2025学年统编版高中语文选择性必修中册
- 借贷合同范本u
- 劳动合同范本陕西
- 传销性质合同范本
- 产品销售协议合同范本
- 企业授权合同范本
- 2024年重庆大学机器人研究所招聘笔试真题
- 上海货物短途运输合同范本
- 2024年温州苍南农商银行招聘笔试真题
- 期末练习卷(模拟试题)-2024-2025学年 一年级上册数学人教版
- 白血病合并感染
- GB/T 18601-2024天然花岗石建筑板材
- 致病菌引起的食品安全事件
- 有机肥配施氮肥对玉米根系生长、氮素利用及产量和品质的影响
- 2024年山西省中考语文试卷
- 《大学美育教程》第二单元-心灵的熏陶:审美活动
- 浙江省温州市(2024年-2025年小学五年级语文)人教版期中考试(下学期)试卷及答案
- 数据要素白皮书(2024年)-中国通信标准化协会
- 2023年云南公务员录用考试《行测》题
- 电子商务运营(第二版) 课件 项目1 认识电商运营
评论
0/150
提交评论