嵌入式操作系统.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第7章嵌入式操作系统操作系统基本概念计算机硬件和软件两个组成部分。软件包括应用软件和系统软件,操作系统是现代通用计算机中最重要的系统软件操作系统是一组管理程序,管理计算机的硬件资源和软件资源,为应用软件的提供运行“平台”,使用户更方便、有效地使用计算机。主要功能包括:接口管理、处理器管理、存储管理、设备管理、文件管理等嵌入式OS与通用OS相同点嵌入式OS同样具有通用OS的几个基本功能能够有效管理越来越复杂的系统资源把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来提供库函数、驱动程序、工具集以及应用程序嵌入式OS及软件的固化8Mx16位flash嵌入式系统不一定需要操作系统在PC机中,操作系统是必不可少的系统软件嵌入式系统中不一定有操作系统功能简单系统中,即没有支持操作系统运行的硬件资源,也没有使用操作系统的必要高性能嵌入式系统完成复杂的功能,如果仍延续基于裸机的开发方式,软件工作量过于庞大,甚至是不可能完成的任务,这时需要使用操作系统两类嵌入式系统基于裸机的系统设计中,用户软件不仅要实现应用功能,还需要完成硬件初始化、设备管理、中断管理、内存分配等所有的软件任务,工作繁琐,但灵活性强基于操作系统,在设计嵌入式系统应用软件时可专注于应用功能的设计,而不需在系统管理上耗费过多的精力。但资源占用大,带来额外的成本。嵌入式操作系统特点模块化,可定制实时性强稳定性要求高代码有固化的要求具有良好的硬件适应性,便于移植嵌入式系统的组成嵌入式应用软件微处理器存储器外围控制器嵌入式硬件平台硬件抽象层嵌入式操作系统嵌入式应用软件微处理器存储器外围控制器嵌入式硬件平台嵌入式操作系统嵌入式系统硬件抽象层硬件抽象层是一组系统软件,通过统一的编程接口为操作系统和应用软件提供一个抽象化的运行平台硬件抽象层位于操作系统和硬件之间,实现对硬件的操作,并通过标准化的接口为操作系统提供服务,向操作系统提供硬件平台的信息,并根据操作系统的要求完成对硬件的操作只要在硬件平台上实现硬件抽象层,那么操作系统就可以移植到该平台上板级支持包BSP(BoardSupportPackage)是硬件抽象层的一种实现,很多情况下,二者表达的是同一个含义嵌入式系统硬件抽象层结构操作系统硬件抽象层编程接口外围控制器管理定时器管理中断管理任务上下文管理启动初始化定时器1定时器2···网络控制器UART···中断1···中断2上下文的切换上下文的创建上下文的删除其它设置工作方式设置地址映射实时计算机系统概述实时系统是能及时响应外部发生的随机事件,并以足够快的速度完成对事件处理的计算机系统实时系统的正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间计算机系统是一个激励-响应系统,激励-响应周期T,代表着计算机的响应能力。应用对象所规定的响应时间Ta,若T≤Ta,这个系统便是实时系统。实时系统特点实时系统具有复杂的约束性:时间约束、资源约束、执行顺序约束和性能约束实时任务的执行具有可预测性:系统能够对实时任务的执行时间进行预测,判断是否能够满足任务的时限要求。是实时系统最基本的性能指标实时系统具有高可靠性的要求实时系统需要与外部环境进行交互实时系统需要满足一定的峰值负荷要求硬实时系统与软实时系统在硬实时系统中,系统要确保在最坏情况下的服务时间,即对事件响应时间的截止期限必须得到满足。在这样的系统里,如果一个事件在规定期限内不能得到及时处理则会导致致命的系统错误。在软实时系统中,从统计的角度看,任务能够得到足够的处理时间,到达系统的事件也能够在截止期限前得到处理,但系统不能保证时刻都能满足这样的条件,截止期限条件偶尔没得到满足时并不会带来致命的系统错误。满足硬实时的系统一定满足软实时的要求,反之未必嵌入式系统实时性嵌入式系统是一种计算机,基于硬件平台,用软件实现事件的检测、数据的收发、信息的处理、控制信号的产生嵌入式系统与应用对象之间的交互往往有时间限制,这就是嵌入式系统的实时性特点嵌入式系统激励-响应时间T包括硬件响应时间Th和软件响应时间Ts软件响应时间是主要因素,这增加了系统实时设计的复杂性系统性能与实时性的关系系统运行速度高不代表实时性好同样的硬件、软件设计,速度快的系统实时性会更强当系统不能满足实时性要求时,可以通过提高系统的运行速度来弥补,但会带来负面影响:功耗加大、电磁兼容性能下降、可靠性降低裸机中的实时软件设计后台任务二后台任务一后台任务三后台任务四中断服务程序一中断服务程序二中断服务程序三后台任务循环响应中断响应中断响应高级中断时间前/后台的程序结构:实时性要求高的任务放在中断服务程序(前台)中,而其它实时性要求低的任务放在主程序(后台)中嵌入式操作系统实时性实时性反映了设备“及时”处理事件的能力嵌入式操作系统管理着嵌入式计算机的硬件、软件资源,必须支持实时任务调度,才能确保整个系统对事件响应的实时性运行在嵌入式实时系统中,支持系统实现实时任务调度的操作系统,称为嵌入式实时操作系统按系统对事件响应的时间约束,嵌入式操作系统有硬实时和软实时两种类型实时OS与通用OS设计目标通用操作系统中,强调的是系统的平均表现嵌入式实时操作系统首要目标不是提高系统的平均表现,而是通过资源管理、任务调度,确保每个实时任务在最坏情况下也能满足其实时性要求通用操作系统注重的是整体表现,实时操作系统注重的是每个任务的表现,更准确地讲是任务在最坏情况下的表现嵌入式RTOS与通用OS设计上的差别任务调度策略不同:通用OS为动态优先级+时间片轮转;实时OS为静态表驱动方式和静态优先级抢占式调度方式内存管理方式不同:通用OS采用硬盘虚拟内存,实时OS不采用虚拟内存或对虚拟内存进行特殊设计中断处理方式不同:通用OS中断处理程序的优先级被设定为高于任何用户进程;实时OS不合适采用这样的中断处理机制共享资源的互斥访问机制不同:通用OS采用信号量机制来解决共享资源的互斥访问问题;实时OS中,往往对传统的信号量机制进行了一些扩展,避免普通信号量机制引起的优先级倒置问题:优先级继承协议和优先级顶置协议。嵌入式RTOS与通用OS设计上的差别(续)系统调用以及系统内部操作的时间开销有差别:实时OS中所有系统调用以及系统内部操作的时间开销都应是有界的;通用操作系统中对这些时间开销则未做如此限制系统的可重入性:通用OS核心态系统调用往往是不可重入的;实时OS中核心态系统调用往往设计为可重入的,确保系统的可预测性辅助工具:实时操作系统额外提供了一些辅助工具,如实时任务在最坏情况下的执行时间估算工具、系统的实时性验证工具等实时操作系统对系统硬件设计也提出了一些要求:DMA、Cache评价一个实时操作系统任务调度机制内存管理:实模式和保护模式最小内存开销中断禁止时间与中断延迟时间任务切换时间当实时操作系统运行在核心态或执行某些系统调用的时候,不会因为外部中断的到来而中断执行,只有当操作系统重新回到用户态时才响应外部中断清求,这一过程所需的最大时间就是中断禁止时间。中断延时时间是指系统确认中断开始直到执行中断服务程序的第一条指令为止的整个过程所需要的时间。嵌入式操作系统选型实时性系统定制能力可移植性可用的软件、硬件技术资源对网络的支持能力对图形界面的支持能力语言支持系统的稳定性对硬件资源的要求研发团队已有技术条件系统的使用授权费用常用嵌入式操作系统桌面操作系统种类有限:Windows系列、Linux、UNIX等嵌入式操作系统有几十种:WindowsCE、Nucleus、VxWorks、uC/OS、嵌入式Linux、QNX、pSOS等等桌面操作系统因为其通用性,容易形成垄断,而嵌入式操作系统因具有应用针对性,种类繁多,百花齐放嵌入式LinuxLinux简介Linux最初由芬兰赫尔辛基大学的学生(LinusTorvalds)于1991年开始开发1994年按完全自由扩散版权形式发布了Linux的第一个正式版本1.0为鼓励商业公司参与Linux的开发应用,Linux后来转向GPLGeneralPublicLicense社会公众享有运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。只要这种修改文本在整体上或者其某个部分来源于遵循GPL的程序,该修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制GNU/LinuxLinux只是一个操作系统内核,提供系统服务,如任务管理、虚拟内存、设备管理等。通常所说的Linux,指的是GNU/Linux,即采用Linux内核的GNU操作系统,在该操作系统中,以Linux为内核,使用了大量的GNU软件,包括了shell程序、工具、程序库、编译器及工具,还有许多其他程序GNU'sNotUnixRichardStallmanGNU/Linux操作系统体系结构硬件平台板级支持包(BSP)Linux内核系统调用接口GNUC语言库(glibc)用户应用程序用户空间内核空间Linux内核结构内存管理网络通信进程管理虚拟文件系统系统调用接口体系结构相关代码设备驱动程序嵌入式Linux嵌入式Linux内核由标准Linux内核裁剪而来系统模块化,支持用户定制经过裁剪、压缩后的系统内核一般只有几百KB已有多种版本的嵌入式Linux操作系统嵌入式Linux支持从FLASH或ROM的启动嵌入式Linux的特点支持多种硬件平台:x86、ARM、MIPS、ALPHA、PowerPC高效稳定的系统内核开放源码,软件丰富完善的开发工具:完整的工具链(ToolChain),实现从操作系统定制及应用软件的设计、调试完善的网络通信支持多种文件系统:EXT2、FAT32、ROMFS支持多种图形用户界面:Microwindows、MiniGUI、TinyX、Qt/EmbeddedLinux操作系统类型RTLinuxuClinuxEOSnux、Midinux……RTLinuxLinux原本是个通用操作系统,没有实时任务调度能力1996年,第一个Linux实时系统发布,这就是RTLinux。RTLinux的实时内核处于Linux内核和硬件平台之间,为Linux内核提供一个“虚拟机”环境RTLinux是一个硬实时的嵌入式Linux操作系统RTLinux实现方法:另外设计一个实时内核,把标准的Linux内核作为该实时内核的一个进程,同用户的实时进程一起调度。避免对Linux内核的大规模改动,也有利于充分利用Linux现有的丰富软件资源RTLinux操作系统原理硬件平台实时任务1实时任务2实时任务N···标准Linux内核RTLinux实时内核任务管理器中断管理器Linux进程1···Linux进程2Linux进程M···软件中断硬件中断···uClinuxMMU实现虚拟地址到物理地址的转换以及任务内存空间的保护标准Linux在硬件上需要MMU支持为了能在没有集成MMU的低成本嵌入式微处理器上运行,改造Linux内核——uCLinuxuCLinux与标准LinuxuCLinux是精巧的Linux版本,适合低成本、小型化嵌入式系统具有标准Linux的大多数优点:稳定、可移植性好、对网络的支持好、支持多种文件系统、支持丰富的标准化用户应用编程接口支持多种不同体系结构的硬件平台uClinux同标准Linux的最大区别就在于内存管理。不能使用标准Linux的虚拟地址管理技术,而是采用实地址进行内存管理。所有程序都直接使用真实的物理地址。操作系统不提供对内存空间保护uClinux并不是为了解决Linux实时性而设计的,在这方面与标准Linux并无实质的差别uCLinux内核结构用户进程函数库系统调用文件系统内存管理进程管理uC/OS-IIuC/OS-II1992年是美国工程师JeanJ.Lab

1 / 92
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功