如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第四章嵌入式实时操作系统内核第四章嵌入式实时操作系统内核实时操作系统(RTOS)是嵌入式系统的关键,它为用户提供了建立应用软件的平台。然而,并非所有的嵌入式系统都使用RTOS进行设计。比如,某些掌上设备、智能家电、机顶盒、仪器仪表等,它们本身的功能不需要RTOS支持,甚至不需要操作系统,而仅使用相对简单的硬件和软件应用代码。例如,使用8位的51机时,由于片内资源很少,一般也不使用操作系统,更不需要RTOS。但是,在大多数的复杂工业过程控制、武器系统、机器人等由于任务量大和应用程序复杂,必须使用RTOS来管理其任务。因此,是否使用RTOS不但取决系统的复杂性,也要看应用的系统和环境要求。本章主要为后续各章提供一个基础,介绍RTOS的结构和功能,包括内核、任务、任务的调度等。另外以VxWorks的实时内核Wind和任务编程接口为实例。4.1嵌入式实时内核的结构和功能本小节介绍RTOS的结构和功能,不涉及具体的系统。4.1.1嵌入式实时内核的结构由第一章我们已经知道实时操作系统实质上是计算机中的软件,它按时序方式调度、执行、管理系统资源,并为上层应用代码提供统一的接口。根据系统的用处不同,在一个RTOS上设计应用代码具有非常大的差别,从数字秒表、飞机导航控制、宇航设备等的应用都有。因此,一个好的RTOS必须是可以根据系统的硬件和系统的软件进行裁减的,以满足不同应用的不同需求。某些操作系统中,如µc/os−ΙΙ,它只有一个内核,仅仅提供最小逻辑的核心检测、调度和资源管理算法。而有些操作系统,如VxWorks,则非常复杂,给用户提供了丰富的各类软件、算法和丰富的应用程序接口(API)等。无论操作系统的简单或复杂,作为操作系统的内核通常都包括下面的部件:(1)调度器(scheduler)调度器是任何操作系统内核的心脏。尤其是对于多任务实时操作系统,调度器提供决定何时必须执行哪个任务,即在单处理器环境下,准时地完成多个必须同时运行的任务。多任务是操作系统在设定的死线内处理多个活动的能力,即多个执行线程在并发地运行。然而,在单处理器环境下,内核是依据预先设定的调度算法,按照任务的优先级执行的。(2)上下文切换每个任务具有自己的上下文,而上下文是任务每次被调度运行时所要求的CPU寄存器的状态。每次新任务被创立时。内核也创立和维护一个相关的任务控制块TCB(TaskControlBlock)。TCB是内核用来维护任务特定信息的系统数据结构。TCB包含内核需要知道的关于特定任务的每个事情。当任务运行时,4-1第四章嵌入式实时操作系统内核TCB维护任务的动态上下文,当调度器从一个任务切换到另一个任务时,就会发生上下文切换。被禁止任务的TCB冻结了上下文。以便保存作为该任务解冻时再次使用。调度器从一个任务切换到另一个任务所需要的时间称为上下文切换时间。上下文切换时间对于实时操作系统是一个非常重要的技术指标。如果系统的应用设计包含频繁的上下文切换,则应用将遭受不必要的性能超载,因此在做系统设计时,应该尽可能减少不必要的任务切换。(3)调度算法系统根据某种调度算法,调度器决定运行哪个任务。目前大多数的系统都支持基于优先级的抢占调度(preeemptivepriority-basedscheduling),如µc/os−ΙΙ。有些操作系统,如VxWorks还支持时间轮换调度(round-robinscheduling)。在下一小节,我们将结合VxWorks的调度策略详细讲解这两种调度算法。(4)对象内核对象是系统的特殊构件,是实时嵌入式系统的应用开发的建造模块。最常建的RTOS内核对象有:"任务(task)—是并发和独立执行的线程,可以竞争CPU执行时间。"信号灯(semaphore)—像令牌(token)的对象,可以由任务递增和递减,用于信号量的同步和互斥。"消息队列(messagequeue)—像缓冲区的数据结构,通过在任务之间传递消息,可以进行同步、互斥和数据交换。实时系统的开发者可以组合基本的内核对象解决普遍的实时系统设计问题,如并发、活动同步和数据通信等。这些设计问题和用来解决问题的内核对象我们在后续章节将做更详细的讲解。(5)任务之间的通信任务之间的通信指的是任务间相互传递信息的方法和原理。通信意味着进程间传送数据。嵌入式应用软件系统(包括操作系统)可以被看作是各种任务组成的,如用户任务、计算任务、打印任务等。这些任务都具有各自的独立功能,且大多数因外部需要而启动执行。一般来说,任务间的通信根据通信内容可以划分为两种:控制信息的传送和大批量数据传送。有时,也把任务间控制信息的交换称为低级通信,而把进程间大批量数据的交