《实时操作系统的相关概念.ppt》由会员分享,可在线阅读,更多相关《实时操作系统的相关概念.ppt(93页珍藏版)》请在第壹文秘上搜索。
1、RTOS及相关技术一、嵌入式实时系统基础二、实时多任务软件开发方法三、 RTOS特点四、 RTOS举例五、高速路由器开发工具选择实时系统:对外来事件在限定时间内能做出反应的系统。分类:实时控制系统、实时信息处理系统。衡量系统的实时性三个指标响应时间(Response Time): 是计算机识别一个外部事件到作出响应的时间, 生存时间(Survival Time): 是数据有效等待时间, 在这段时间里数据是有效的。吞吐量(Throughput): 是在一给定时间内, 系统可以处理的事件总数。实现实时的应用系统的途径使用硬件的功能微处理器的中断机制简单的单线程循环程序基于实时操作系统的复杂多线程程
2、序。嵌入式应用:是一种计算机部件内装于专用设备/系统的应用。典型应用过程控制(process control)通讯设备(Telecommunication)智能仪器(Intelligent Instrument)消费产品(Consumer Products)机器人(Robots)计算机外设设备(Computer Peripherals)军事电子设备和现代武器嵌入式实时系统软件的基本特征具有高速处理、配置专一、结构紧凑和坚固可靠等特点的实时系统,相应的软件系统应是一种别有特色、要求更高的实时软件。实时软件的主要要求1、实时性 2、有处理异步并发事件的能力3、快速启动、出错处理和自动复位功能4、嵌
3、入式实时软件是应用程序和操作系统两种软件的一体化程序。5、嵌入式实时软件的开发需要独立的开发平台宿主机目标机 按确定性来分嵌入式实时系统 硬实时系统对系统响应时间有严格的要求,如果系统响应时间不能满足,就要引起系统崩溃或致命的错误。 软实时系统对系统响应时间有要求,但是如果系统响应时间不能满足,不会导致系统出现致命的错误或崩溃。按软件结构来分嵌入式实时系统单线程程序(Single-threaded program)(1)循环轮询系统(Polling Loop)(2)有限状态机(Finit State Machine)事件驱动系统:(Event-Driven system)(1)前后台系统(Fo
4、reground/Background)又叫中断驱动系统(2)实时多任务系统(Multitasking或Multi-thread Program Model)(3)多处理机系统循环轮询系统(Polling Loop)优点:对于简单的系统而言,便于编程和理解没有中断的机制,程序运行良好,不会出现随机的问题缺点:有限的应用领域(由于不可确定性)对于大量的I/O服务的应用,不容易实现大的程序不便于调试有限状态机(Finit State Machine)优点:对于小的系统而言,便于编程和理解可以快速的执行只是通过改变输出功能来改变机器的响应缺点:有限的应用领域不能保证确定性对于大的应用系统,难于调试前
5、后台系统(Foreground/Background)系统的性能:中断延迟时间(Interrupt latency time)响应时间(response time)恢复时间(recovery time)实时多任务系统(Multitasking Model) 优点:将复杂的系统分解为相对独立的多个线程, 达到“分而制之”的目的,从而降低系统的复杂性。保证系统的实时性系统的模块化好,提高系统的可维护性。 缺点:需要采用一些新的软件软件设计方法需要增加功能:线程间的协调,同步和通信功能需要对每一个共享资源互斥导致线程间的竞争需要使用RTOS,RTOS要增加系统的开销多处理机系统分类:紧耦合系统(ti
6、ghtly-coupled system) 多个处理器通过共享内存空间来交换信息(如:SMP),松耦合系统(loosely-coupled system) 多个处理器通过通讯线路来连接和交换信息。监控程序(Monitor) 操作系统(Operating System)。 1、多道批处理操作系统 2、分时操作系统 3、实时操作系统。多道批量处理系统一般用于计算中心较大的计算机系统中。由于它的硬件设备比较全,价格较高,所以此类系统十分注意CPU及其它设备的充分利用,追求高的吞吐量,不具备实时性。分时系统的主要目的是让多个计算机用户能共享系统的资源,能及时地响应和服务于联机用户,只具有很弱的实时功能
7、,但与真正的实时操作系统仍然有明显的区别。实时操作系统IEEE实时UNIX分委会要求1.异步的事件响应2.切换时间和中断延迟时间确定3.优先级中断和调度4.抢占式调度5.内存锁定6.连续文件7.同步嵌入式实时操作系统得到飞速的发展,从支持8位微处理器到16位、32位甚至64位,从支持单一品种的微处理器芯片到支持多品种微处理器芯片, 从只有实时内核到除了内核外还提供其他功能模块如:高速文件系统,TCP/IP网络系统,GUI系统等。世界各国有四十多家公司,已成功的推出了200余种可供嵌入式应用的实时操作系统。国内常用的操作系统Microtec Research公司(MRI)的VRTXIntegra
8、ted System公司(ISI)的pSOSWind River 公司的VxWorks。一、嵌入式实时系统基础二、实时多任务软件开发方法三、 RTOS特点四、 RTOS举例五、高速路由器开发工具选择1.需求分析(Requirement specification)2.数据流分析(Data flow analysis)3.分解任务(Decompostion into tasks)4. 定义任务间接口(Definiton of task interfaces)5.任务级的设计6.模块构筑7.任务与系统集成8.系统测试I/O 依赖性 (Dependency on Input/Output Devic
9、e)时间关键性的功能 (Time-critical functions-Hard Deadline)计算量大的功能(Heavy Computation function)功能内聚(Functional relations)时间内聚(Temporal relations)周期执行的功能(Cyclic executing function)(1). 错误的任务划分任务使用中挂起/恢复太频繁 是由于任务划分过细,任务的当成功能使用。应该将任务变成子程序使用。当事件发生时调用子程序 任务划分得太粗,应该将子程序划分为任务得到消息后,又立即检查另外的信息 不要使用轮循的方式,应该直接使用事件驱动方式(2
10、)优先级倒置之一 当高优先级的任务向低优先级的任务发送消息时,如果使用信箱机制,就可能出现高优先级的任务要等待低优先级的任务接收消息以后,才能发送消息。应该使用队列机制就避免这个问题。 高优先级任务低优先级任务高优先级任务低优先级任务(3)优先级倒置之二当低优先级的任务向高优先级的任务发送消息时,高优先级的任务不能运行,直到低优先级的任务发送消息后才能运行。 没有必要分为两个任务,应该使高优先级的任务直接调用子程序即可。 高优先级任务低优先级任务高优先级任务子程序函数调用死锁和锁住死锁:两个任务同时相互等待对方的信号,导致它们永远不能运行。为了避免死锁,将共享资源统一排序,所有的任务按序来访问
11、多个资源。锁住:任务没有机会运行,可能是因为:它等待的事件没有发生过它具有太低的优先级一、嵌入式实时系统基础二、实时多任务软件开发方法三、 RTOS特点四、 RTOS举例五、高速路由器开发工具选择60年代以来,对于UNIX操作系统的研究和发展达到了几乎完美的程度。而商业RTOS正是基于UNIX思想的实时多任务操作系统,只是为了满足嵌入系统的特殊需要,系统对于外部事件的响应速度保证不大于某个特定的时间间隔。商业RTOS利用了计算机科学数十年发展的精美成果,包含了软件理论最精华的部分。这一点从内核技术上看得最为清楚,各个厂商的内核大同小异,通过考察各厂商普遍采用的微内核技术可以很好地看出这一点。5
12、0年代中期到后期开发的操作系统几乎毫无结构可言,在这些整体操作系统(monolithic operation system)中,任何过程可以调用其它任何过程,由于低估了过程相互之间的依赖性和互操作性,产生了一系列问题。为了解决这些问题,引入了模块化程序设计技术,特别是开发了分层操作系统(layered operation system)(如图5.2.1),这里功能按照层次组织,相互之间作用只能通过邻接层。使用分层方法,大多数层或者全部层在内核模式下执行。八十年代后期,国外提出了微内核(microkernel) (如图5.2.2)的思想, 即将传统操作系统中的许多共性的东西抽象出来,构成操作系统
13、的公共基础,即微内核,真正具体的操作系统功能则由构造在微内核之外的服务器实现。这是一种机制与策略分离的开放式设计思路。在理论上,这种方法提供了高度的灵活性、模块性和可移植性。微内核(microkernel)的思想是仅仅抽象必须在内核模式中执行的基本的核心操作系统功能,非基本的服务和应用构筑在微内核之上,并且在用户模式中执行。尽管微内核里面和外面的分界随着设计不同而不同,但是共同的特征是,许多传统上是操作系统一部分的服务现在出现在内核模式外部,这些包括设备驱动程序、文件系统、虚拟内存管理程序、窗口系统和安全系统。微内核结构用水平结构代替了传统的垂直的分层结构,操作系统组件放在微内核外部,实现成服
14、务器进程,它们的相互作用变成了对等的,典型地通过微内核传递消息,微内核功能成了消息交换:它验证消息,在组件之间传递它们,并且允许访问硬件。微内核组织的优点:l接口一致(Uniform interface):所有进程请求使用统一的接口,进程不需要区分内核模式和用户模式服务,由于这些服务全部通过消息传递提供。l扩展性(Extensibility):由于新型硬件设备和新型软件技术不断发展,任何操作系统不可避免地需要修改,微内核结构允许加入新的服务,支持在同一功能区内提供多重服务。使用微内核结构,加入一个新特点仅仅需要修改或者加入被选择的服务,新的或者修改的服务影响限制在系统的一个子集,进一步地,修改
15、不需要建立一个新的内核。l移植性(Portability):在微内核结构中,所有与特定处理机的代码仅仅存在微内核中,因此,需要将这个系统移植到新的处理机需要作的变化可以尽可能地少。l可靠性(Reliability):软件规模越大,确保可靠性越难。尽管模块化设计帮助我们增强了可靠性,但是微内核结构带来了更多的收益。一个小型微内核可以严格地进行测试,它使用少量的应用程序接口有助于内核模式之外的操作系统服务代码提高质量。系统只需要掌握一个有限数量的(API),程序员之间的相互交互也有限,因而对于系统其它组件的影响最小。l分布系统支持(Distributed system support):微内核适合
16、于由分布操作系统控制的群集系统。当一个消息从客户发到服务器进程,该消息必须包含请求服务的标识符。当一个分布系统(如群集系统)被配置为所有的进程和服务有唯一的标识符,那么似乎在内核模式下存在单一的系统映象,一个进程能够在不知道目标服务驻留在哪台机器情况下发送消息。面向对象操作系统(Object-oriented operating system):微内核结构非常适合面向对象操作系统的要求,一个面向对象的方法有助于一个微内核的设计和操作系统的模块化扩充。将微内核结构和面向对象操作系统原理结合起来的例子是组件的使用,组件是清楚定义了接口的对象,它们能够互连起来以预制建筑块的方式形成软件,使用组件之间的接口实现组件之间的全部相互作用。l确定性(Determinism):实时软件对于外部事件的响应时间必须是实时的、确定的和可以重复实现的,不管当时系统内部状态如何,都是可预测的。一个测量操作系统确定性能力的指标是从一个高优先级设备中断到达到开始服务的最大延迟。在非实时操作系统中,这个延迟可能是几十到数百毫秒;而在RTOS中有一个明确的上界,从几个微秒到一毫秒不等。l响应性(Responsivene