《《ucos操作系统概述》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《ucos操作系统概述》PPT课件.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章 C/OS-II操作系统概述内容n4.1 C/OS-II简介n4.2 C/OS-II的特点n4.3 实时系统的概念4.1 C/OS-II简介nC/OS-II来源于术语Micro-Controller Operating System(微控制器操作系统)。它通常也称为MUCOS或者UCOS。n C/OS-II是Jean 在1990年前后编写的一个实时操作系统内核。任务管理、任务调度、任务的同步与通信、时间管理、内存管理未包括输入输出管理、文件管理、网络等服务,由用户提供n实时系统概念、多任务调度与管理、时间与内存管理n主要应用于高校教学4.2 C/OS-II的特点n公开的源代码:C/OS-
2、II的源代码共约5500行,由汇编语言和C语言编写。使用者使用的是C/OS-II的源程序而不是编译后的程序文件。4.2 C/OS-II的特点n可移植性:可使用在多种处理器平台的特性。可移植性的基础是编写操作系统的语言的可移植性。汇编语言编写的与处理器特性相关的部分,必须经过修改。ANSI C语言编写的部分通过不同的编译器编译链接后可直接使用。4.2 C/OS-II的特点n可固化:C/OS-II通过编译、链接后可以下载并固化在嵌入式设备中的存储介质中。n可裁减:可以根据应用的需求使用C/OS-II所提供的不同的服务。C/OS-II通过条件编译实现裁减。4.2 C/OS-II的特点n可抢占性:C/
3、OS-II操作系统内核是完全可抢占性实时内核。n多任务:C/OS-II可以管理最多64个任务,根据任务的优先级不同进行管理。4.2 C/OS-II的特点n可确定性:函数调用和服务的执行时间是可以确定的。用户可以知道C/OS-II的绝大多数函数和服务的执行时间。4.2 C/OS-II的特点n任务栈:C/OS-II允许每个任务都有单独的栈空间。n系统服务:C/OS-II提供许多系统服务,比如信号量、互斥信号量、事件标志、消息邮箱、消息队列、时间管理等等4.2 C/OS-II的特点n中断管理:中断可以使正在执行的任务暂时挂起。如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即
4、执行,中断嵌套层数可以达255层 n稳定性和可靠性:比较可靠的嵌入式实时操作系统4.2 C/OS-II的特点n公开的源代码n可移植性、可固化、可裁减、可抢占性、多任务n可确定性、任务栈、系统服务、稳定性和可靠性4.3 实时系统概念n4.3.1 系统级概念n4.3.2 代码相关的概念n4.3.3 任务及内核相关的概念n4.3.4 中断相关的概念n4.3.5 时钟节拍n4.3.6 对存储器的需求n4.3.7 使用实时内核的优缺点4.3.1 系统级概念n软实时系统:使各个任务运行得越快越好,并不要求限定某一任务的完成时间。n硬实时系统:任务不仅要执行无误而且要准时完成。4.3.1 系统级概念n前后台
5、系统超循环系统n后台(任务级):应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作。n前台(中断级):中断服务程序处理异步事件4.3.2 代码相关的概念n代码的临界段也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,不允许任何中断打断执行过程。n解决方法:执行前关中断,执行后开中断。4.3.2 代码相关的概念n可重入性n一个函数可以被多个任务调用,而不必担心数据的破坏。nint Temp;nvoid swap(int*x,int*y)nn Temp=*x;n *x =*y;n *y =Temp;n4.3.2 代码相关的概念4.3.2 代码相关的概念n使函数具有可重入性的方
6、法将Temp定义为局部变量调用Swap()函数之前关中断,调用后开中断用信号量禁止该函数在使用过程中被再次调用任务及内核相关的概念n任务与多任务n内核n调度n不可剥夺型内核n可剥夺型内核n任务优先级n互斥条件n信号量n死锁(或抱死)n同步n事件标志任务间的通讯n消息邮箱n消息队列4.3.3 任务及内核相关的概念n任务一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属该程序自己。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。4.3.3 任务及内核相关的概念n多任务多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。CPU只有一个
7、,轮番服务于一系列任务中的某一个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。4.3.3 任务及内核相关的概念n任务与多任务实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。4.3.3 任务及内核相关的概念n内核内核提供的基本服务是任务切换。多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。4.3.3 任务及内核相关的概念n
8、调度内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法指:CPU总是让处在就绪态的优先级最高的任务先运行。4.3.3 任务及内核相关的概念n不可剥夺型内核不可剥夺型内核要求每个任务自我放弃CPU的所有权。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。4.3.3 任务及内核相关的概念n任务在运行过程之中1.产生中断2.进入中断服务子程序,中断服务子程序做事件
9、处理3.使一个有更高级的任务进入就绪态。4.中断服务完成以后,中断返回指令,使CPU回到原来被中断的任务5.接着执行该任务的代码,直到该任务完成,调用一个内核服务函数以释放CPU控制权,6.由内核将控制权交给那个优先级更高的、并已进入就绪态的任务,7.这个优先级更高的任务才开始处理中断服务程序标识的事件4.3.3 任务及内核相关的概念n可剥夺型内核最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态
10、,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。4.3.3 任务及内核相关的概念4.3.3 任务及内核相关的概念n不可剥夺型内核高优先级的任务已经进入就绪态,也许要等很长时间,直到当前运行着的任务释放CPU后才能执行。不可剥夺型内核的任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到CPU的控制权,完全取决于应用程序什么时候释放CPU。n可剥夺型内核高优先级的任务进入就绪态,立刻能够执行。最高优先级的任务的执行时间是可知的。4.3.3 任务及内核相关的概念n任务优先级表征任务的重要程度的量。任务的优先级越高,赋予的优先级就越高。静态优先级:应用程序执行的过程中,任务
11、的优先级不变。动态优先级:应用程序执行过程中,任务的优先级是可变的。4.3.3 任务及内核相关的概念n互斥条件保证系统处理共享数据或共享资源的排他性的方法。关中断使用测试并置位指令禁止任务切换利用信号量4.3.3 任务及内核相关的概念n信号量在多任务内核中普遍使用的约定机制。n控制共享资源的使用权(满足互斥条件)n标志某时间的发生n使两个任务的行为同步二进制型计数型4.3.3 任务及内核相关的概念n死锁(或抱死)指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1,任务T2在独享资源R2,而此时T1又要独享R2,T2也要独享R1,于是哪个任务都没法继续执行了,发生了死锁。先得到
12、全部需要的资源再做下一步的工作用同样的顺序去申请多个资源释放资源时使用相反的顺序4.3.3 任务及内核相关的概念n同步按照一定的时间顺序执行任务。任务的执行顺序n单向同步n双向同步n同步标志用信号量实现4.3.3 任务及内核相关的概念n事件标志当某任务要与多个事件同步时,要使用事件标志。若任务需要与任何事件之一发生同步,可称为独立型同步(即逻辑或关系)。任务也可以与若干事件都发生了同步,称之为关联型(逻辑与关系)。4.3.3 任务及内核相关的概念n任务间的通讯在任务进行数据传递全局变量发送消息4.3.3 任务及内核相关的概念n消息邮箱典型的消息邮箱也称作交换消息,是用一个指针型变量,通过内核服
13、务,一个任务或一个中断服务程序可以把一则消息(即一个指针)放到邮箱里去。同样,一个或多个任务可以通过内核服务接收这则消息。发送消息的任务和接收消息的任务约定,该指针指向的内容就是那则消息。4.3.3 任务及内核相关的概念n消息队列消息队列实际上是邮箱阵列。通过内核提供的服务,任务或中断服务子程序可以将一条消息(该消息的指针)放入消息队列。同样,一个或多个任务可以通过内核服务从消息队列中得到消息。发送和接收消息的任务约定,传递的消息实际上是传递的指针指向的内容。通常,先进入消息队列的消息先传给任务,也就是说,任务先得到的是最先进入消息队列的消息,即先进先出原则(FIFO)。4.3.4 中断相关的
14、概念n中断n中断延迟n中断响应n中断恢复时间n中断处理时间4.3.4 中断相关的概念n中断中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)现场(Context)即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到:n在前后台系统中,程序回到后台程序n对不可剥夺型内核而言,程序回到被中断了的任务n对可剥夺型内核而言,让进入就绪态的优先级最高的任务开始运行关中断和开中断中断嵌套,也就是说在中断服务期间,微处理器可以识别另一个更重要的中断,并服务于那个更重要的中断4.3.4 中断相关的概
15、念n中断延迟n所有实时系统在进入临界区代码段之前都要关中断,执行完临界代码之后再开中断。关中断的时间越长,中断延迟就越长。n中断延迟=关中断的最长时间+开始执行中断服务子程序的第一条指令的时间 4.3.4 中断相关的概念n中断响应中断响应时间定义为从中断发生到开始执行用户的中断服务子程序代码来处理这个中断的时间。中断响应是系统在最坏情况下的中断响应时间。n中断响应时间=中断延迟+保存CPU内部寄存器的时间 n中断响应时间=中断延迟+保存CPU内部寄存器的时间+内核的进入中断服务函数的执行时间 4.3.4 中断相关的概念n中断恢复时间中断恢复时间定义为微处理器返回到被中断了的程序代码所需要的时间
16、。n中断恢复时间=恢复CPU内部寄存器值的时间+执行中断返回指令的时间 n中断恢复时间=判定是否有优先级更高的任务进入了就绪态的时间+恢复那个优先级更高任务的CPU内部寄存器的时间+执行中断返回指令的时间 4.3.4 中断相关的概念n中断处理时间中断服务的处理时间应该尽可能的短,但是对处理时间并没有绝对的限制。如果中断服务是在任何给定的时间开始,且中断服务程序代码是应用程序中最重要的代码,则中断服务需要多长时间就应该给它多长时间。分析事件处理的时间和消息传递的时间。时钟节拍n时钟节拍时钟节拍是特定的周期性中断。中断之间的时间间隔取决于不同的应用,一般在10mS到200mS之间。时钟的节拍式中断
17、使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。时钟节拍率越快,系统的额外开销就越大(节拍服务子程序)。4.3.6 对存储器的需求n前后台系统,对存储器容量的需求仅仅取决于应用程序代码。n使用多任务内核 总代码量=应用程序代码+内核代码 RAM总需求=应用程序的RAM需求+(任务栈需求+最大中断嵌套栈需求)*任务数如果内核支持中断用栈分离RAM总需求=应用程序的RAM需求+内核数据区的RAM需求+各任务栈需求之总和+最多中断嵌套之栈需求4.3.7 使用实时内核的优缺点n实时应用程序的设计和扩展变得容易n通过将应用程序分割成若干独立的任务,RTOS使得应用程序的设计过程大为减化。n使用可剥夺性内核时,所有时间要求苛刻的事件都得到了尽可能快捷、有效的处理。n通过有效的服务,如信号量、邮箱、队列、延时、超时等,RTOS使得资源得到更好的利用。n内核的价格n额外的ROM/RAM开销n2到4百分点的CPU额外负荷