嵌入式操作系统概述.ppt
1,1.嵌入式操作系统概述,2,一,三,二,操作系统概述,常见的嵌入式操作系统介绍,嵌入式操作系统,3,操作系统的发展历程:,多道程序批处理系统分时操作系统实时操作系统,嵌入式操作系统概述,一、操作系统概述,4,批处理操作系统,用户将作业交给系统操作员;系统操作员将许多用户的作业组成一批作业;之后输入到计算机中,在系统中形成一个自动转接的连续的作业流;启动操作系统;系统自动、依次执行每个作业;最后由操作员将作业结果交给用户;,嵌入式操作系统概述,5,批处理操作系统的工作方式:,一台主机连接了若干个终端;每个终端有一个用户在使用;交互式的向系统提出命令请求;系统接受每个用户的命令;采用时间片轮转方式处理服务请求;并通过交互方式在终端上向用户显示结果;用户根据上步结果发出下道命令;,嵌入式操作系统概述,6,批处理操作系统工作方式示意图,嵌入式操作系统概述,7,分时操作系统,一般采用时间片的办法:操作系统将CPU的时间划分成若干个片段,称为时间片;操作系统以时间片为单位,轮流为每个终端用户服务;每次服务一个时间片;(其特点是利用人的错觉,使人感觉不到);,嵌入式操作系统概述,8,通用操作系统,分时系统与批处理系统结合原则:分时优先,批处理在后“前台”:需频繁交互的作业“后台”:时间性要求不强的作业,嵌入式操作系统概述,9,实时操作系统,实时操作系统的目标:对外部请求在严格时间范围内作出反应;高可靠性;安全性;完整性;,嵌入式操作系统概述,10,网络操作系统,它是基于计算机网络的是在各种计算机操作系统上按网络体系结构协议标准开发的软件包括网络管理,通信,安全,资源共享和各种网络应用目标:是相互通信及资源共享,嵌入式操作系统概述,11,分布式操作系统,特征:1.是一个统一的操作系统;2.资源进一步共享;3.透明性:资源共享,分布。用户并不知道,对用户来讲是透明的;4.自治性:处于分布式系统的多个主机处于平等地位,无主从关系;5.处理能力增强、速度更快、可靠性增强;,嵌入式操作系统概述,12,嵌入式操作系统,何谓嵌入式系统:在各种设备、装置或系统中,完成特定功能的软硬件系统。它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”。通常工作在反应式或对处理时间有较严格要求环境中。由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统。,嵌入式操作系统概述,13,典型的嵌入式系统结构:,嵌入式操作系统概述,14,嵌入式操作系统的特点,完成某一项或有限项功能;在性能和实时性方面有严格的限制;能源、成本和可靠性通常是影响设计的重要因素;占有资源少、易于连接;系统功能可针对需求进行裁剪、调整,以便满足最终产品的设计要求。,嵌入式操作系统概述,二、嵌入式操作系统,15,评价嵌入式实时操作系统的指标,嵌入式实时系统中主要有三个指标来衡量系统的性能:响应时间(Response Time)生存时间(Survival Time)吞吐量(Throughput),嵌入式实时操作系统,16,响应时间,响应时间(Response Time):是计算机识别一个外部事件到作出响应的时间,在控制应用中它是最重要的指标。对于不同的过程有不同的响应时间要求。对于有些慢变化过程具有几分钟甚至更长的响应时间都可以认为是实时的,对于快速过程其响应时间可能要求达到毫秒微秒级甚至更短。实时性不能单纯从绝对的响应时间长短上来衡量,应当根据不同的对象在相对意义上进行评价。,嵌入式实时操作系统,17,生存时间和吞吐量,生存时间(Survival Time):是数据有效等待时间,在这段时间里数据是有效的。吞吐量(Throughput):是在一给定时间内,系统可以处理的事件总数例如通讯控制器用每秒钟处理的字符数来表示吞吐量,吞吐量可能是平均响应时间的倒数但它通常要小一些因为在每次响应后可能需要一段时间进行清理(clean up),这段时间就称为恢复时间(recovery time).实时系统强调的是实时性和可靠性,这两方面除了与计算机硬件有关(如CPU 的速度,访问存贮器的速度等)外,还与实时系统的软件密切相关。硬件是实时的而软件往往不一定是实时的。,嵌入式实时操作系统,18,嵌入式实时系统的分类,可按速度、系统响应时间(Response time)或吞吐量(Throughput)、确定性及软件结构分类:,嵌入式实时操作系统,19,按速度来分类:,按实时性的强弱(即根据系统响应时间的长短)可将嵌入式实时系统大致分为以下几种:1.强实时系统,其系统响应时间在毫秒或微秒级;2.一般实时系统,其系统响应时间在几秒的数量级上,其实时性的要求比强实时系统要差一些;3.弱实时系统,其系统响应时间约为数十秒或更长这种系统的响应时间可能随系统负载的轻重而变化,即负载轻时系统响应时间可能较短,实时性好一些,反之系统响应时间可能加长。,嵌入式实时操作系统,20,按确定性来分类:,按确定性来分可分为硬实时和软实时硬实时系统对系统响应时间有严格的要求如果系统响应时间不能满足就要引起系统崩溃或致命的错误;软实时系统对系统响应时间有要求但是如果系统响应时间不能满足不会导致系统出现致命的错误或崩溃。,嵌入式实时操作系统,21,按软件结构来分类:,循环轮询系统:(Polling Loop)最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理;事件驱动系统:(Event-Driven system)事件驱动系统是能对外部事件直接响应的系统它包括前后台实时多任务多处理器三个系统是嵌入式实时系统的主要形式。,嵌入式实时操作系统,22,嵌入式操作系统与多任务,多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。,嵌入式实时操作系统,23,嵌入式应用中任务的划分,在将一个软件系统分解成并行任务时,主要需考虑的是系统内功能的异步性;分析数据流图中的变换,确定哪些变换可以并行,而哪些变换在本质上是顺序的,通过这种方法,划分出任务:一个变换对应一个任务,或者一个任务包括几个变换;一个变换是应该成为一个独立的任务,还是应该和其它变换一起组成一个任务,决定的原则如下:,嵌入式实时操作系统,24,I/O 依赖性(Dependency on Input/Output Device)时间关键性的功能(Time-critical functions-Hard Deadline)计算量大的功能 Heavy Computation function 功能内聚 Functional relations 时间内聚 Temporal relations 周期执行的功能 Cyclic executing function,嵌入式实时操作系统,25,I/O 依赖性,如果变换依赖于I/O,那么它运行的速度常常受限于与它互操作的I/O设备设备的速度。在这种情况下,变换应成为一个独立的任务 在系统中创建多个与I/O设备相当数目的I/O任务 I/O任务只实现与设备相关的代码 I/O任务的执行只受限于I/O设备的速度而不是处 理器 在任务中分离设备相关性,嵌入式实时操作系统,26,时间关键性的功能,将有时间关键性的功能分离出来组成独立运行的任务赋予这些任务高的优先级以满足对时间的需要,嵌入式实时操作系统,27,计算功能,计算功能占用CPU的时间多捆绑计算功能成任务赋予它们较低优先级运行,能被高优先级的任务抢占消耗CPU的剩余时间保持高优先级的任务是轻量级的多个计算任务可安排成同优先级按时间片循环轮转,嵌入式实时操作系统,28,功能内聚,各紧密相关的功能不能分别对应不同的任务.将这些紧密相关的功能组组成一个任务,使各功能共享资源或相同事件的驱动.组成一个任务会减少通信的开销而且不仅保证了模块级的功能内聚,也保证了任务级的功能内聚.,嵌入式实时操作系统,29,时间内聚,将在同一时间内完成的各功能即使这些功能是不相关的组成功能组形成一个任务.功能组的各功能是由相同的外部事件驱动的,如时钟等,这样每次任务接收到一个事件,它们都可以同时执行.组成一个任务减少了系统的开销.虽然时间内聚在结构化设计中并不被认为是一个好的模块分解原则,但在任务级是可以被接受的。每个功能都作为一个独立的模块来实现,从而达到了模块级的功能内聚,这些模块组合在一起,又达到了任务级的时间内聚.,嵌入式实时操作系统,30,周期执行功能,将在相同周期内执行的各功能组成一个任务.频率高的赋予高优先级.,嵌入式实时操作系统,31,任务划分的注意点,一些错误的任务划分,例如:(1)任务使用SUPSPEND/RESUME 太频繁;这是由于任务划分过细造成的。改进的方法是将任务变成子程序使用,当事件发生时调用子程序。(2)任务划分的太粗将子程序划分为任务,得到消息后又立即检查另外的信息。(3)不使用轮循的方式,直接使用事件驱动方式。,嵌入式实时操作系统,32,(4)当高优先级的任务向低优先级的任务发送消息时,如果使用信箱机制就可能出现高优先级的任务要等待低优先级的任务接收消息以后才能发送消息。使用队列机制就可以避免这个问题.(5)当低优先级的任务向高优先级的任务发送消息时高优先级的任务不能运行直到低优先级的任务发送消息后才能运行.这种情况下就没有必要分为两个任务只需要使低优先级的任务调用子程序即可.,嵌入式实时操作系统,任务划分的注意点,33,WinCE Linux Palm VxWorks uCOS,常见的嵌入式操作系统介绍,三、常见的嵌入式操作系统介绍,34,嵌入式操作系统 WinCE,Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是一个基于掌上型电脑类的电子设备的操作系统。Windows CE是精简的Windows 95。Windows CE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200K的ROM。,常见的嵌入式操作系统介绍,35,嵌入式操作系统 WinCE,Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98/2000上的编程工具(如Visual Basic、Visual C+等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用目前主要应用于PDA,跟微软一系列Windows系统一样,Windows CE也承袭了原有的缺点:耗系统资源、不稳定、效率不佳.等等。后来将整个架构重新改写后推出 Windows CE 3.0 版,或称为 Pocket PC。,常见的嵌入式操作系统介绍,36,嵌入式操作系统 Linux,Linux是一个类似于Unix的操作系统。它起源于芬兰一个名为 Linus Torvalds 的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。Linux从1991年问世到现在,短短10几年的时间内已发展成为一个功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的Linux OS已成为Microsoft公司Windows 95/98的强劲对手。Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,在各种嵌入式Linux OS迅速发展的状况下,Linux OS逐渐形成了可与Windows CE等EOS进行抗衡的局面。目前正在开发的嵌入式系统中,50%以上的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。,常见的嵌入式操作系统介绍,37,嵌入式操作系统Linux,开放原始码、模块化设计 Linux采用GPL授权,除了把原始码公开以外,任何人都可以自由使用、修改、散布,而Linux核心本身采用模块化设计,让人很容易增减功能,例如我的平台并不需要蓝牙的功能,我只要不把这项功能加入,有需要就加入,不需要就删除,由于这样的高的弹性,我们可以调校出最适合我们硬件平台的核心出来。相较于Uinux,Windows是走封闭原始码路线,所以我们完全无法得知或修改它的核心部份。而对Linux则完全不同。,常见的嵌入式操作系统介绍,38,嵌入式操作系统 Linux,嵌入式Linux OS的特点精简的内核,性能高、稳定,多任务。适用于不同的CPU,支持多种体系结构,如X86、ARM、MIPS、ALPHA、SPARC等。能够提供完善的嵌入式GUI以及嵌入式X-Windows。提供嵌入式浏览器、邮件程序、MP3播放器、MPEG播放器、记事本等多种应用。提供完整的开发工具和SDK,同时提供PC上的开发版本。,常见的嵌入式操作系统介绍,39,嵌入式操作系统 Linux,用户可定制,可提供图形化的定制和配置工具。支持常用嵌入式芯片的驱动,支持大量的周边硬件设备,驱动丰富。针对嵌入式的存储方案,提供实时版本和完善的嵌入式解决方案。完善的中文支持,强大的技术支持,完整的文档。开放源码,丰富的软件资源,广泛的软件开发者的支持,价格低廉,结构灵活,适用面广。,常见的嵌入式操作系统介绍,40,嵌入式操作系统 Palm,由Palm Computing公司的嵌入式操作系统,目前最大的应用在PDA,是市场占有率最高的PDA操作系统。Palm操作系统架构非常简洁,可以非常不耗系统资源,硬件需求低,连带的整体耗电量便可压缩到非常低,因此采用Palm操作系统的PDA都有待机时间长的优点。,常见的嵌入式操作系统介绍,41,嵌入式操作系统 VxWorks,VxWorks是目前嵌入式系统领域中使用广泛、市场占有率较高的一个操作系统。它支持多种处理器,如x86、i960、Sun Sparc、ARM、Motorola MC68xxx、MIPS RX000、POWER PC等等。大多数的VxWorks API是专有的。采用GNU的编译和调试器。,常见的嵌入式操作系统介绍,42,嵌入式操作系统 uC/OS,C/OS简介:美国人Jean Labrosse 1992年完成.应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等.1998年C/OS-II,目前的版本 C/OS-II V2.61;2000年,得到美国航空管理局(FAA)的认证,可以用于飞行器中.网站 www.ucos-II.com().,常见的嵌入式操作系统介绍,43,嵌入式操作系统uC/OS,(1)公开源代码(2)可移植性(Portable)绝大部分 C/OS-II 的源码是用移植性很强的ANSI C写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得 C/OS-II 便于移植到其他微处理器上。C/OS-II 可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。,常见的嵌入式操作系统介绍,该操作系统有如下特点:,44,(3)可固化(ROMable)C/OS-II 是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C 编译、连接、下载和固化),C/OS-II 可以嵌入到读者的产品中成为产品的一部分。,嵌入式操作系统uC/OS,45,(4)可裁剪(Scalable):可以只使用 C/OS-II 中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个 C/OS-II 调用,而另一个产品则使用了几乎所有 C/OS-II 的功能,这样可以减少产品中的 C/OS-II 所需的存储器空间(RAM和ROM)。这种可剪裁性是靠条件编译实现的。,常见的嵌入式操作系统介绍,嵌入式操作系统uC/OS,46,嵌入式操作系统uCOS,(5)任务栈:每个任务有自己单独的栈,C/OS-II 允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。多任务:C/OS-II 可以管理 64 个任务,然而,目前这一版本保留 8 个给系统。应用程序最多可以有 56 个任务。,常见的嵌入式操作系统介绍,47,嵌入式操作系统uCOS,(6)可确定性:全部 C/OS-II 的函数调用与服务的执行时间具有可确定性。(7)系统服务:C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。,48,嵌入式操作系统uCOS,(8)中断管理:中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达 255 层。,49,其他嵌入式操作系统,QNX 的 QNX OS、WindRiver 的 VxWorks、Microware 的 OS 9、pSOS 等等。,常见的嵌入式操作系统介绍,