实时操作系统的相关概念.ppt

上传人:夺命阿水 文档编号:248327 上传时间:2023-03-24 格式:PPT 页数:93 大小:3.27MB
返回 下载 相关 举报
实时操作系统的相关概念.ppt_第1页
第1页 / 共93页
实时操作系统的相关概念.ppt_第2页
第2页 / 共93页
实时操作系统的相关概念.ppt_第3页
第3页 / 共93页
实时操作系统的相关概念.ppt_第4页
第4页 / 共93页
实时操作系统的相关概念.ppt_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《实时操作系统的相关概念.ppt》由会员分享,可在线阅读,更多相关《实时操作系统的相关概念.ppt(93页珍藏版)》请在课桌文档上搜索。

1、,RTOS及相关技术,RTOS及相关知识,一、嵌入式实时系统基础二、实时多任务软件开发方法三、RTOS特点四、RTOS举例五、高速路由器开发工具选择,1.1实时系统,实时系统:对外来事件在限定时间内能做出反应的系统。分类:实时控制系统、实时信息处理系统。,1.1实时系统,衡量系统的实时性三个指标响应时间(Response Time):是计算机识别一个外部事件到作出响应的时间,生存时间(Survival Time):是数据有效等待时间,在这段时间里数据是有效的。吞吐量(Throughput):是在一给定时间内,系统可以处理的事件总数。,1.1实时系统,实现实时的应用系统的途径使用硬件的功能微处理

2、器的中断机制简单的单线程循环程序基于实时操作系统的复杂多线程程序。,1.2嵌入式应用,嵌入式应用:是一种计算机部件内装于专用设备/系统的应用。典型应用过程控制(process control)通讯设备(Telecommunication)智能仪器(Intelligent Instrument)消费产品(Consumer Products)机器人(Robots)计算机外设设备(Computer Peripherals)军事电子设备和现代武器,1.2嵌入式应用,嵌入式实时系统软件的基本特征具有高速处理、配置专一、结构紧凑和坚固可靠等特点的实时系统,相应的软件系统应是一种别有特色、要求更高的实时软件

3、。,1.3嵌入式实时系统特殊性,实时软件的主要要求1、实时性 2、有处理异步并发事件的能力3、快速启动、出错处理和自动复位功能4、嵌入式实时软件是应用程序和操作系统两种软件的一体化程序。5、嵌入式实时软件的开发需要独立的开发平台,1.3嵌入式实时系统特殊性,1.4嵌入式实时系统分类,按确定性来分嵌入式实时系统 硬实时系统对系统响应时间有严格的要求,如果系统响应时间不能满足,就要引起系统崩溃或致命的错误。软实时系统对系统响应时间有要求,但是如果系统响应时间不能满足,不会导致系统出现致命的错误或崩溃。,1.4嵌入式实时系统分类,按软件结构来分嵌入式实时系统单线程程序(Single-threaded

4、 program)(1)循环轮询系统(Polling Loop)(2)有限状态机(Finit State Machine)事件驱动系统:(Event-Driven system)(1)前后台系统(Foreground/Background)又叫中断驱动系统(2)实时多任务系统(Multitasking或Multi-thread Program Model)(3)多处理机系统,1.4嵌入式实时系统分类,循环轮询系统(Polling Loop)优点:对于简单的系统而言,便于编程和理解没有中断的机制,程序运行良好,不会出现随机的问题缺点:有限的应用领域(由于不可确定性)对于大量的I/O服务的应用,不

5、容易实现大的程序不便于调试,1.4嵌入式实时系统分类,有限状态机(Finit State Machine)优点:对于小的系统而言,便于编程和理解可以快速的执行只是通过改变输出功能来改变机器的响应缺点:有限的应用领域不能保证确定性对于大的应用系统,难于调试,1.4嵌入式实时系统分类,前后台系统(Foreground/Background)系统的性能:中断延迟时间(Interrupt latency time)响应时间(response time)恢复时间(recovery time),1.4嵌入式实时系统分类,实时多任务系统(Multitasking Model)优点:将复杂的系统分解为相对独立

6、的多个线程,达到“分而制之”的目的,从而降低系统的复杂性。保证系统的实时性系统的模块化好,提高系统的可维护性。缺点:需要采用一些新的软件软件设计方法需要增加功能:线程间的协调,同步和通信功能需要对每一个共享资源互斥导致线程间的竞争需要使用RTOS,RTOS要增加系统的开销,1.4嵌入式实时系统分类,多处理机系统分类:紧耦合系统(tightly-coupled system)多个处理器通过共享内存空间来交换信息(如:SMP),松耦合系统(loosely-coupled system)多个处理器通过通讯线路来连接和交换信息。,1.5嵌入式RTOS及其发展,监控程序(Monitor)操作系统(Ope

7、rating System)。1、多道批处理操作系统 2、分时操作系统 3、实时操作系统。,1.5嵌入式RTOS及其发展,多道批量处理系统一般用于计算中心较大的计算机系统中。由于它的硬件设备比较全,价格较高,所以此类系统十分注意CPU及其它设备的充分利用,追求高的吞吐量,不具备实时性。分时系统的主要目的是让多个计算机用户能共享系统的资源,能及时地响应和服务于联机用户,只具有很弱的实时功能,但与真正的实时操作系统仍然有明显的区别。,1.5嵌入式RTOS及其发展,实时操作系统IEEE实时UNIX分委会要求1.异步的事件响应2.切换时间和中断延迟时间确定3.优先级中断和调度4.抢占式调度5.内存锁定

8、6.连续文件7.同步,1.5嵌入式RTOS及其发展,嵌入式实时操作系统得到飞速的发展,从支持8位微处理器到16位、32位甚至64位,从支持单一品种的微处理器芯片到支持多品种微处理器芯片,从只有实时内核到除了内核外还提供其他功能模块如:高速文件系统,TCP/IP网络系统,GUI系统等。,1.5嵌入式RTOS及其发展,世界各国有四十多家公司,已成功的推出了200余种可供嵌入式应用的实时操作系统。国内常用的操作系统Microtec Research公司(MRI)的VRTXIntegrated System公司(ISI)的pSOSWind River 公司的VxWorks。,RTOS及相关知识,一、嵌

9、入式实时系统基础二、实时多任务软件开发方法三、RTOS特点四、RTOS举例五、高速路由器开发工具选择,2.1开发步骤,1.需求分析(Requirement specification)2.数据流分析(Data flow analysis)3.分解任务(Decompostion into tasks)4.定义任务间接口(Definiton of task interfaces)5.任务级的设计6.模块构筑7.任务与系统集成8.系统测试,2.2分解任务原则,I/O 依赖性(Dependency on Input/Output Device)时间关键性的功能(Time-critical functi

10、ons-Hard Deadline)计算量大的功能(Heavy Computation function)功能内聚(Functional relations)时间内聚(Temporal relations)周期执行的功能(Cyclic executing function),2.3分解任务评估,(1).错误的任务划分任务使用中挂起/恢复太频繁 是由于任务划分过细,任务的当成功能使用。应该将任务变成子程序使用。当事件发生时调用子程序 任务划分得太粗,应该将子程序划分为任务得到消息后,又立即检查另外的信息 不要使用轮循的方式,应该直接使用事件驱动方式,2.3分解任务评估,(2)优先级倒置之一 当高

11、优先级的任务向低优先级的任务发送消息时,如果使用信箱机制,就可能出现高优先级的任务要等待低优先级的任务接收消息以后,才能发送消息。应该使用队列机制就避免这个问题。,2.3分解任务评估,高优先级任务,低优先级任务,高优先级任务,低优先级任务,2.3分解任务评估,(3)优先级倒置之二当低优先级的任务向高优先级的任务发送消息时,高优先级的任务不能运行,直到低优先级的任务发送消息后才能运行。没有必要分为两个任务,应该使高优先级的任务直接调用子程序即可。,2.3分解任务评估,高优先级任务,低优先级任务,高优先级任务,子程序函数,调用,2.3分解任务评估,死锁和锁住死锁:两个任务同时相互等待对方的信号,导

12、致它们永远不能运行。为了避免死锁,将共享资源统一排序,所有的任务按序来访问多个资源。锁住:任务没有机会运行,可能是因为:它等待的事件没有发生过它具有太低的优先级,RTOS及相关知识,一、嵌入式实时系统基础二、实时多任务软件开发方法三、RTOS特点四、RTOS举例五、高速路由器开发工具选择,3.1概述,60年代以来,对于UNIX操作系统的研究和发展达到了几乎完美的程度。而商业RTOS正是基于UNIX思想的实时多任务操作系统,只是为了满足嵌入系统的特殊需要,系统对于外部事件的响应速度保证不大于某个特定的时间间隔。,3.1概述,商业RTOS利用了计算机科学数十年发展的精美成果,包含了软件理论最精华的

13、部分。这一点从内核技术上看得最为清楚,各个厂商的内核大同小异,通过考察各厂商普遍采用的微内核技术可以很好地看出这一点。,3.2操作系统发展,50年代中期到后期开发的操作系统几乎毫无结构可言,在这些整体操作系统(monolithic operation system)中,任何过程可以调用其它任何过程,由于低估了过程相互之间的依赖性和互操作性,产生了一系列问题。,3.2操作系统发展,为了解决这些问题,引入了模块化程序设计技术,特别是开发了分层操作系统(layered operation system)(如图5.2.1),这里功能按照层次组织,相互之间作用只能通过邻接层。使用分层方法,大多数层或者全

14、部层在内核模式下执行。,3.2操作系统发展,八十年代后期,国外提出了微内核(microkernel)(如图5.2.2)的思想,即将传统操作系统中的许多共性的东西抽象出来,构成操作系统的公共基础,即微内核,真正具体的操作系统功能则由构造在微内核之外的服务器实现。这是一种机制与策略分离的开放式设计思路。在理论上,这种方法提供了高度的灵活性、模块性和可移植性。,3.3微内核特点,微内核(microkernel)的思想是仅仅抽象必须在内核模式中执行的基本的核心操作系统功能,非基本的服务和应用构筑在微内核之上,并且在用户模式中执行。尽管微内核里面和外面的分界随着设计不同而不同,但是共同的特征是,许多传统

15、上是操作系统一部分的服务现在出现在内核模式外部,这些包括设备驱动程序、文件系统、虚拟内存管理程序、窗口系统和安全系统。,3.3微内核特点,微内核结构用水平结构代替了传统的垂直的分层结构,操作系统组件放在微内核外部,实现成服务器进程,它们的相互作用变成了对等的,典型地通过微内核传递消息,微内核功能成了消息交换:它验证消息,在组件之间传递它们,并且允许访问硬件。,3.3微内核特点,微内核组织的优点:接口一致(Uniform interface):所有进程请求使用统一的接口,进程不需要区分内核模式和用户模式服务,由于这些服务全部通过消息传递提供。,3.3微内核特点,扩展性(Extensibility

16、):由于新型硬件设备和新型软件技术不断发展,任何操作系统不可避免地需要修改,微内核结构允许加入新的服务,支持在同一功能区内提供多重服务。使用微内核结构,加入一个新特点仅仅需要修改或者加入被选择的服务,新的或者修改的服务影响限制在系统的一个子集,进一步地,修改不需要建立一个新的内核。,3.3微内核特点,移植性(Portability):在微内核结构中,所有与特定处理机的代码仅仅存在微内核中,因此,需要将这个系统移植到新的处理机需要作的变化可以尽可能地少。,3.3微内核特点,可靠性(Reliability):软件规模越大,确保可靠性越难。尽管模块化设计帮助我们增强了可靠性,但是微内核结构带来了更多

17、的收益。一个小型微内核可以严格地进行测试,它使用少量的应用程序接口有助于内核模式之外的操作系统服务代码提高质量。系统只需要掌握一个有限数量的(API),程序员之间的相互交互也有限,因而对于系统其它组件的影响最小。,3.3微内核特点,分布系统支持(Distributed system support):微内核适合于由分布操作系统控制的群集系统。当一个消息从客户发到服务器进程,该消息必须包含请求服务的标识符。当一个分布系统(如群集系统)被配置为所有的进程和服务有唯一的标识符,那么似乎在内核模式下存在单一的系统映象,一个进程能够在不知道目标服务驻留在哪台机器情况下发送消息。,3.3微内核特点,面向对

18、象操作系统(Object-oriented operating system):微内核结构非常适合面向对象操作系统的要求,一个面向对象的方法有助于一个微内核的设计和操作系统的模块化扩充。将微内核结构和面向对象操作系统原理结合起来的例子是组件的使用,组件是清楚定义了接口的对象,它们能够互连起来以预制建筑块的方式形成软件,使用组件之间的接口实现组件之间的全部相互作用。,3.4 RTOS特点,确定性(Determinism):实时软件对于外部事件的响应时间必须是实时的、确定的和可以重复实现的,不管当时系统内部状态如何,都是可预测的。一个测量操作系统确定性能力的指标是从一个高优先级设备中断到达到开始服

19、务的最大延迟。在非实时操作系统中,这个延迟可能是几十到数百毫秒;而在RTOS中有一个明确的上界,从几个微秒到一毫秒不等。,3.4 RTOS特点,响应性(Responsiveness):这是与确定性相关但是不同的特征。确定性考虑在应答一个中断前,操作系统延迟时间;而响应性是在应答中断后,操作系统服务中断时间。响应性包含以下几个方面:1、初始化中断处理和开始执行中断服务程序(ISR)需要的时间。如果是要求一个进程切换的ISR执行,那么比在当前进程上下文中的ISR执行延迟更长时间。2、执行ISR需要的时间。这通常依赖于硬件平台。3、中断嵌套的作用。如果一个ISR可能被另一个中断的到达而中断,那么它的

20、服务将被延迟。,3.4 RTOS特点,确定性和响应性共同构成了对于外部事件的响应时间。响应时间对于RTOS是至关重要的,由于系统必须满足系统外部个人、设备或者数据流的定时要求。,3.4 RTOS特点,用户控制(User control):这一点在RTOS中比在一般操作系统中更加宽广。在一个典型的非实时操作系统中,用户或者不能控制操作系统的调度功能,或者只能提供粗略的指导,如将用户编组进入多于一个优先级的类别。但是,在RTOS中,允许用户精细控制任务优先级是基本功能。用户应该能够区分硬实时任务和软实时任务,并在每个类别中指定相对的优先级。一个RTOS也能够指定这类特征,如分页或者进程切换,哪些进

21、程必须总是驻留在主存中,使用哪个磁盘传输算法,在各种优先级类别中的进程有哪些权利,等等。,3.4 RTOS特点,可靠性(Reliability):通常它在实时系统中比在非实时系统中更重要。在非实时系统中一个瞬时错误可以简单地通过重新引导系统来解决,在多处理机非实时系统中一个处理机的失败可能在修复或代替该处理机之前造成服务级别的降低。但是,实时系统需要实时响应和控制事件,性能的丧失或降低可能造成灾难性的后果。,3.4 RTOS特点,软失败操作(Fail-soft operation):与实时系统和非实时系统其它方面的差别一样,这里存在一个程度上的差别。软失败操作是指这样一个特征,系统能够以这样一

22、种方式失败,它能够尽可能地保留能力和数据。例如,一个典型的传统UNIX系统,当它检测到内核数据的误用,在系统控制台上发出失败消息,将内存内容倒到磁盘用于以后的失败分析,同时终止系统的执行。与此相反,RTOS将试图或者纠正这个问题或者最小化它的影响,同时继续运行。典型情况下,系统通告用户或者用户进程,它将试图进行纠正动作,然后继续操作,或许此时降低了服务级别。,3.5 商用RTOS一般特征,快速的进程或线程切换小规模(具有相关的最小功能)快速响应外部中断的能力带有诸如信号灯、信号量和事件等进程间通信工具的多任务编程能力使用特殊的顺序文件高速收集数据基于优先级抢占优先权调度最小化禁止中断的时间原语

23、支持延迟任务一段时间或者暂停/恢复任务特殊的告警和超时,3.5商用RTOS组成,商业RTOS开发工具交叉编译器,主要是C或C+编译器。RTOS本身,它的核心是Real Time Kernel,包括相关的函数库。软件调试工具包,没有这类工具,多任务的应用程序几乎是没有办法调试的。,3.6商用RTOS优点,商用RTOS的优点:充分满足了模块化设计的要求。可以把程序按照模块化设计要求自然分解成若干个独立的任务。提高了系统的可靠性。不仅可以把程序分解成独立的任务,而且可以另外启动一个监控任务,监视各任务的运行状况,遇到异常情况时采取一些措施,如将有问题的任务杀掉。提高了开发效率、缩短了开发周期。一个复

24、杂的应用程序可以分解成多个任务,每个任务的调试、修改几乎不影响其它模块。商业RTOS及其开发工具包一般提供了良好的多任务调试环境。另外,32位CPU本来是为多任务操作系统而设计,特别适合运行多任务实时系统。一些独具匠心的设计更加可以避免系统崩溃,保证系统长年累月运行不发生死机。在不断的软件升级中便于产品的迅速升级换代。,RTOS及相关知识,一、嵌入式实时系统基础二、实时多任务软件开发方法三、RTOS特点四、RTOS举例五、高速路由器开发工具选择,4.1嵌入式实时内核VRTXsa,VRTXsa是针对嵌入式应用的、通用的实时执行程序(内核)。它是实时多任务系统的基础,负责管理、调度任务(安排CPU

25、的时间)和任务间的通信、同步,提供时钟和中断管理机制。VRTXsa 与VRTX32是向下兼容的。,4.2 VRTXsa特点,支持实时多任务执行的特点 1.多任务支持 2.事件驱动,基于优先级的调度 3.任务间的通信与同步 4.动态存储分配 5.实时时钟控制,带有可选的时间片 6.字符I/O支持 7.完全可抢占内核,硬实时响应,4.2 VRTXsa特点,体系结构的特点1.目标环境独立性:VRTXsa 仅需要一个小存储容量的CPU,提供了真正的芯片级的支持。2.可扩充性:可以很容易地将应用专用的、系统级的软件和VRTXsa 结合起来。扩充的软件可以是独立运行自己的系统调用处理程序和例程,也可以是由

26、VRTXsa来统一管理,调用执行。3.位置无关性,4.3 VRTXsa体系结构,层 组 件 用户层 多任务应用程序 RTL MRI其他组件 操作系统层 VRTXsa Nanokernel层 Nanokernel库 RTL 板级支持层 与处理器/设备有关的库 机器层 CPU MEMORY FPU I/O CLK 基于VRTXsa应用系统的体系结构,4.3 VRTXsa体系结构,建立在VRTXsa基础上的系统根据功能来分层,每一层都使用下一层提供的功能。系统硬件构成了系统的最底层。紧接着一层包括了最简单的,大多是硬件相关的操作系统功能,最上层是应用程序。从技术的角度来看,每一层都为其上一层定义了一

27、个虚拟机。在更高的层上,是不能分辨出由软件提供的功能与由硬件提供的功能,每一层都增加了一些功能。,4.4如何使用VRTXsa,与C语言的接口 应用任务可通过C语言调用接口函数来调用VRTXsa提供的系统功能。VRTXsa的库与应用程序相连,且只有应用使用到的功能才被装入。所有VRTXsa 的C函数都遵循MRI的 MCC C编译器的调用协定。在库里面的每一个函数都与一个VRTXsa 系统调用相对应。其调用格式如下:函数返回值(或void)VRTXsa系统调用名(参数1,参数n,&err)与汇编语言的接口(无)参照C语言函数的参数压栈顺序,按照由左到右的顺序压栈,然后在调用该函数,返回参数放到相应

28、的寄存器中。函数的可重入性(Reentrancy),4.5任务管理,任务就是一个具有独立功能的无限循环的程序段的一次运行活动。动态性:任务的状态是不断变化的。并行性:系统中同时存在多个任务,它们宏观上是同时运行的异步独立性:任务是系统中独立运行的基本单元,也是内核分配和调度的基本单元,每个任务各自按相互独立的不可预知的速度运行,走走停停。,4.5任务管理,VRTXsa的任务任务有激活和非激活两种。非激活的任务是休眠态(dormant)的任务,它不竞争CPU。激活的任务具有运行,挂起和就绪三种状态。每个激活的任务都需按排一优先级(0-255),具有唯一的任务标识号(1-最大任务数),应用的最大激

29、活任务数(CFUTSKCT)需要在配置表中配置。VRTXsa根据优先级和引起重调度的系统调用将任务由一个状态变为另一个状态。,4.5任务管理,VRTXsa为每个激活的任务分配一任务控制块(TCB)和任务堆栈,以保存任务在非运行状态时的任务状态信息即上下文。任务可创建其它的任务。它们也可以删除、挂起、解挂任务,查询任务的状态,改变它们自身或其任务的优先级。任务还可锁住调度使其他任务抢占它,以运行其关键的临界代码区。任务可在管态,也可在用户态两种权限下运行,在管态下任务可以使用微处理器的全部指令集。,4.5任务管理,调用名 功能描述sc-tcreate 创建一个具有优先级,任务号,权限和任务代码起

30、始 地址的任务sc-tdelete 删除用任务ID和优先级指定的一个或多个任务 sc-tsuspend 挂起用任务ID和优先级指定的一个或多个任务 sc-tresume 解挂用任务ID和优先级指定的一个或多个任务 sc-tpiority 改变指定任务的优先级 sc-tinquiry 查询指定任务的状态 sc-lock 关调度,使调度锁加一 sc-unlock 开调度,使调度锁减一,4.5任务管理,任务调度就是从就绪状态的任务中,挑选一个任务到处理器上运行。负责任务调度功能的内核程序称为任务调度程序或任务调度器。它是内核的一个重要组成部分。在设计任务调度器时,首先要决定选择何种调度算法,然后根据

31、此算法来编制相应的调度程序。而调度算法实际上就是系统所采取的调度策略,选择时所要考虑的因素很多。如系统各类资源的均衡使用;对用户公平并使用户满意等。大多数实时内核都是采用优先级(priority)的调度算法。,4.5任务管理,优先级调度分:不可抢占(non-preemptive)的优先级调度法可抢占(preemptive)的优先级调度法为了使优先级相同的任务具有平等的运行权利,优先级调度法还可附加时间片(time slicing)循环轮转法,称为基于优先级的时间片循环轮转法。时间片大小的选择对系统的有效操作是有影响的,时间片太大,时间片轮转调度法就没有意义,时间片太小,任务切换过于频繁,处理器

32、开销大,真正用于运行应用程序的时间将会减小。,4.5任务管理,在用C编制的VRTXsa 多任务程序中,任务是用函数来表示的。这就意味着VRTXsa 任务能够用C语言提供给函数的所有机制。比如分块编译,和将多个函数集成为一个库的能力。一个用C语言写的VRTXsa 多任务系统包括了一些作为任务并行运行的函数和一些作为子程序顺序运行的函数。任务函数具有以下特性:必须被声明为void函数,因为不能返回一个函数值。不能够返回到调用者。,4.5任务管理,VRTXsa的任务有两种实现方式:任务是一个无限循环 任务当完成时删除它自身一个C函数可以表示多个任务。这时创建多个任务的sc_tcreate调用指向一个

33、相同的函数地址。如果使用这种方法,一定要确保共享的函数是可重入的。,4.6任务通信与同步,在多任务的实时系统中,一项工作的完成往往要通过多个任务或多个任务与多个中断处理过程(ISRs)共同完成。协调动作的需要是:任务能和其他任务及ISRs交换数据。任务能以以下方式与其他任务进行同步。单向同步:一个任务与另一个任务或一个ISR同步双向同步:两个任务相互同步与同步:一个任务与几个事件同时同步或同步:一个任务与几个事件中的任何第一个到达事件同步 任务必须能对共享资源进行互斥访问。VRTXsa提供了邮箱、队列、事件组、信号量和互斥量这五种机制。,4.6任务通信与同步,邮箱(Mailbox)一个邮箱是应

34、用在其内存定义的一个长字变量。允许任务传递32位的非0消息。VRTXsa 不创建邮箱,而是由应用在其内存中建立邮箱。应用应将邮箱初始化为一个恰当的值:为0时,邮箱可用,当邮箱用于互斥时为非0。,4.6任务通信与同步,队列(Queues)消息队列是应用动态创建的具有固定长度的缓冲区。队列是系统管理的结构,用队列的ID号来引用它。队列允许任务传递长字(32位)消息。(长度为1的队列从逻辑上来说就是一个邮箱)。可使用队列进行几个同种资源的互斥访问。队列的长度相当于该种资源的数目,它决定了有多少个任务能够同时使用该种资源。,4.6任务通信与同步,事件标志(Event Flag)一个事件标志组是VRTX

35、sa工作区中的一个32位的变量。32位中的每一位都是表示一个事件标志。事件标志有两种状态:设置(1)和清除(0)。当一个标志处于设置状态时,表示相关的事件已经发生了。任务和ISRs可以使用事件标志来向其他任务发送信号,表示事件已发生。,4.6任务通信与同步,信号量(Semaphore)VRTXsa为互斥提供计数信号量。一个计数信号量是VRTXsa 工作区中的一个16位的变量。初始值可以是065535。初始值为0表示资源开始处于锁住状态。一个非0的值表示有多个资源,供多个任务访问。,4.6任务通信与同步,互斥量(Mutexes)在多任务应用中,有可能出现两个或多个任务试图同时访问相同数据的情况,

36、这将会导致数据破坏。为了保护共享数据,必须串行地对它进行访问。用于实现这种访问的机制称为互斥量。一个互斥量就是一个同步对象。用于多个任务(线程)串行访问共享数据。VRTXsa允许将互斥量创建成具有优先级继承的互斥量以避免优先级反转的情况。在任何时候,只有一个任务可以获得和拥有一个互斥量,也只有这个任务随后才能够释放这个互斥量。,4.7中断处理,VRTX的中断中断是硬件机制,它向CPU发信号,表示外部异步事件发生。异步事件是指无一定时序关系的随机发生的事件。如外部设备完成数据传输,实时控制设备出现异常情况等。与应用任务相比,任务是由VRTX 同步调度的;而中断处理程序是异步地执行的不由VRTX

37、调度。当中断被触发时,中断处理程序就开始运行。中断处理和VRTX管理的多任务环境是相分离的。无需VRTX 的介入而直接进入ISRs。当硬件检测到了一个中断,所有多任务活动都停止并且将CPU控制权交给指定的ISRs。这个CPU的控制权由任务转到ISRs的过程完全由硬件来完成,VRTX不会造成任何开销。,4.7中断处理,VRTX为应用的中断处理程序(ISRs)提供了一些系统调用,以便ISRs能够与任务进行通信,这样对中断的处理就可以由ISR和任务共同来完成,ISR只做一些必要的操作如:输入数据,输出数据或将控制信息传递给任务,由任务来进行进一步的处理。,4.8内存管理,基于VRTXsa的应用系统的

38、存储映象包括:VRTXsa代码 可装入的应用模块 VRTXsa 工作区 堆管理VRTXsa管理的应用内存可选的MRI组件自己提供的可选组件,4.8内存管理,嵌入式软件是操作系统与应用软件一体化的软件,其内存管理比较简单。嵌入式实时操作系统内核通常使用下述两种方法进行内存分配:固定尺寸存储块的静态分配和可变尺寸存储块的动态分配。VRTXsa对这两种内存分配方法都提供了支持,它提供了分区和堆两种内存分配管理机制。,4.8内存管理,分区管理分区管理采用的是静态的内存分配方法,系统分配和回收固定大小的存储块。其优点是存储块的分配和回收时间是确定的,因为不会出现存储碎片,因而也不需要做回收存储碎片,进行

39、合并等工作。此外,分区存储分配系统还提供了很大的灵活性,不但具有时间确定、开销小的优点,而且具有可变存储块系统的大部分优点。,4.8内存管理,堆管理VRTXsa的堆管理可动态分配变长的存储块,并且能够有效的处理存储碎片。与在非实时系统中广泛应用的一种动态存储分配法伙伴系统相比,克服了时间的不可确定性的缺点。,4.9定时器和字符I/O,尽管VRTXsa自身的操作并不需要计数器-定时器、字符I/O这些设备,但许多VRTXsa的应用需要计数器定时器和字符I/O设备。VRTXsa支持这些设备的集成。为此,VRTXsa提供了用于实时时钟管理和字符I/O管理的系统调用。,4.9定时器和字符I/O,实时时钟

40、 在实时系统中,一般不能缺少实时时钟,它是实时软件运行的必不可少的硬件设施。实时时钟单纯地提供一个规则的脉冲序列,脉冲之间的间隔可以作为系统的时间基准称为时基,时基的大小代表了实时时钟的精度,这个精度取决于系统的要求。,4.9定时器和字符I/O,VRTX的时钟管理VRTXsa在系统中保存了一个32位的系统时钟,通过VRTXsa提供的系统调用ui_timer来计时。系统时钟从0开始计数,或者从应用设置的一个起始值开始计数。为了提供年月日时分秒的系统时间,VRTXsa提供了一些系统调用,可以设置起始系统时间,获得系统时间。系统时间都以1970年1月1日午夜为起始可把这个时间看成0秒,设置和获得的系

41、统时间都是以秒为单位的值。,4.9定时器和字符I/O,VRTXsa为I/O端口的输入和输出分别设置了64字符FIFO的输入缓冲区和64字符FIFO的输出缓冲区。并提供了用于任务和ISR的系统调用,RTOS举例,1993年,Microtec推出了世界上最先进的第三代嵌入式集成交叉开发系统Spectra。该系统可在UNIX及WINDOWS NT上建立起开放的、网络环境的交叉开发平台,能将多来源的开发工具有机地结成一体,对复杂的嵌入式应用开发提供全过程支持。,RTOS及相关知识,一、嵌入式实时系统基础二、实时多任务软件开发方法三、RTOS特点四、RTOS举例五、高速路由器开发工具选择,5.1选择背景

42、,为了首先满足开发周期短的要求,充分提高开发效率,同时不以牺牲其它指标为代价,在选择软件支持工具时必须在考虑了各种方案的优劣后进行必要的折中。一方面需要充分考虑本课题的特殊需要,另一方面需要充分利用一切可用的技术成果(包括自有的和商品化的)。,5.2可能选择,自主开发RTOS众所周知,国际上知名的路由器厂商,均使用自己编写的专用嵌入式操作系统。由于RTOS的理论已经是成熟和公开的,同时凭借NDSC在成功开发04机实践中积累的丰富经验,专门为高速路由器设计开发一个专用的嵌入式操作系统和开发环境也是可以的。,5.2可能选择,使用RTOS源码我们注意到,某些RTOS厂商正在直接提供RTOS源码,同时

43、Internet上也有大量的免费RTOS源码。显然,充分利用这些资源可以得到许多借鉴,使我们少走许多弯路。但是,所有具有软件开发实践经历的人员都知道,理解、消化开放的源码并用于某个应用系统是一项艰苦的工作,如果没有合适的调试手段(而又恰恰是对于源码普遍存在的事实),这一过程就更加漫长而艰苦。如果这仅仅用于培养对于计算机有深层次理解的高级人才还是卓有成效的,但用于开发实际产品就显得力不从心了。,5.2可能选择,选择商业RTOS随着这些年来RTOS及其开发工具的飞速发展,精心选择并且合理使用高性能的商业RTOS及其开发工具也能够完全满足高速路由器的开发需要。NDSC过去已经花费了很长时间,具体考察

44、了引入国内的几种典型的RTOS及其开发工具,并且分别购买了VRTX和VxWorks这两种商业RTOS及其开发工具包,同时分别在X86系列、68K系列和PowerPC系列上完成了各种开发任务,积累了丰富的经验和教训。,5.3初步考虑,实时应用比非实时应用存在更多的调试问题。由于软件经常是实时系统最关键的地方,软件和硬件或许需要并行开发,一旦硬件建立就要开发象初始化代码和设备驱动程序等底层系统软件,然后才能在目标系统上建立应用。由于实时系统不可能不涉及事件驱动实时硬时限问题,因此增加了系统的复杂性。这意味着应用不仅在逻辑上要正确,而且还必须按要求逻辑顺序在一个确定时限内完成,因而产生了关键时间问题

45、。为了满足这些挑战,要求有一个合适的调试环境,只有充分利用先进的开发工具,才能取得很好的结果。,5.3初步考虑,实时应用软件的特殊性,往往要求应用程序设计者具有一定的实时操作系统的专门知识,能合理地划分任务,合理的配置系统以及目标联机的调试。因此,要设计实现一个高性能的实时应用软件,需要强有力的交叉开发工具系统的支持。国外十分重视发展与实时操作系统配合的嵌入式应用的集成开发环境,现已发展到第三代,它以客户服务器的系统结构为基础,具有运行系统的无关性、连接的无关性、开放的软件接口(与嵌入式实时操作系统,与开发工具,与目标环境的接口)、环境的一致性、宿主机上的目标仿真的特点。,5.3初步考虑,只有在充分发挥自身的RTOS长处和商业开发工具的长处的前提下才能为完成高速路由器的开发提供全过程支持。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号