ucos操作系统概述.ppt

上传人:小飞机 文档编号:5451415 上传时间:2023-07-08 格式:PPT 页数:47 大小:249.49KB
返回 下载 相关 举报
ucos操作系统概述.ppt_第1页
第1页 / 共47页
ucos操作系统概述.ppt_第2页
第2页 / 共47页
ucos操作系统概述.ppt_第3页
第3页 / 共47页
ucos操作系统概述.ppt_第4页
第4页 / 共47页
ucos操作系统概述.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《ucos操作系统概述.ppt》由会员分享,可在线阅读,更多相关《ucos操作系统概述.ppt(47页珍藏版)》请在三一办公上搜索。

1、第四章 C/OS-II操作系统概述,内容,4.1 C/OS-II简介4.2 C/OS-II的特点4.3 实时系统的概念,4.1 C/OS-II简介,C/OS-II来源于术语Micro-Controller Operating System(微控制器操作系统)。它通常也称为MUCOS或者UCOS。C/OS-II是Jean J.Labrosse在1990年前后编写的一个实时操作系统内核。任务管理、任务调度、任务的同步与通信、时间管理、内存管理未包括输入输出管理、文件管理、网络等服务,由用户提供实时系统概念、多任务调度与管理、时间与内存管理主要应用于高校教学,4.2 C/OS-II的特点,公开的源代

2、码:C/OS-II的源代码共约5500行,由汇编语言和C语言编写。使用者使用的是C/OS-II的源程序而不是编译后的程序文件。,4.2 C/OS-II的特点,可移植性:可使用在多种处理器平台的特性。可移植性的基础是编写操作系统的语言的可移植性。汇编语言编写的与处理器特性相关的部分,必须经过修改。ANSI C语言编写的部分通过不同的编译器编译链接后可直接使用。,4.2 C/OS-II的特点,可固化:C/OS-II通过编译、链接后可以下载并固化在嵌入式设备中的存储介质中。可裁减:可以根据应用的需求使用C/OS-II所提供的不同的服务。C/OS-II通过条件编译实现裁减。,4.2 C/OS-II的特

3、点,可抢占性:C/OS-II操作系统内核是完全可抢占性实时内核。多任务:C/OS-II可以管理最多64个任务,根据任务的优先级不同进行管理。,4.2 C/OS-II的特点,可确定性:函数调用和服务的执行时间是可以确定的。用户可以知道C/OS-II的绝大多数函数和服务的执行时间。,4.2 C/OS-II的特点,任务栈:C/OS-II允许每个任务都有单独的栈空间。系统服务:C/OS-II提供许多系统服务,比如信号量、互斥信号量、事件标志、消息邮箱、消息队列、时间管理等等,4.2 C/OS-II的特点,中断管理:中断可以使正在执行的任务暂时挂起。如果优先级更高的任务被该中断唤醒,则高优先级的任务在中

4、断嵌套全部退出后立即执行,中断嵌套层数可以达255层 稳定性和可靠性:比较可靠的嵌入式实时操作系统,4.2 C/OS-II的特点,公开的源代码可移植性、可固化、可裁减、可抢占性、多任务可确定性、任务栈、系统服务、稳定性和可靠性,4.3 实时系统概念,4.3.1 系统级概念4.3.2 代码相关的概念4.3.3 任务及内核相关的概念4.3.4 中断相关的概念4.3.5 时钟节拍4.3.6 对存储器的需求4.3.7 使用实时内核的优缺点,4.3.1 系统级概念,软实时系统:使各个任务运行得越快越好,并不要求限定某一任务的完成时间。硬实时系统:任务不仅要执行无误而且要准时完成。,4.3.1 系统级概念

5、,前后台系统超循环系统后台(任务级):应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作。前台(中断级):中断服务程序处理异步事件,4.3.2 代码相关的概念,代码的临界段也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,不允许任何中断打断执行过程。解决方法:执行前关中断,执行后开中断。,4.3.2 代码相关的概念,可重入性一个函数可以被多个任务调用,而不必担心数据的破坏。,int Temp;void swap(int*x,int*y)Temp=*x;*x=*y;*y=Temp;,4.3.2 代码相关的概念,4.3.2 代码相关的概念,使函数具有可重入性的方法将Temp定

6、义为局部变量调用Swap()函数之前关中断,调用后开中断用信号量禁止该函数在使用过程中被再次调用,任务及内核相关的概念,任务与多任务内核调度不可剥夺型内核可剥夺型内核,任务优先级互斥条件信号量死锁(或抱死)同步事件标志任务间的通讯消息邮箱消息队列,4.3.3 任务及内核相关的概念,任务一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属该程序自己。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。,4.3.3 任务及内核相关的概念,多任务多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。CPU只有一个,轮番服务于一系列任务中的某一

7、个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。,4.3.3 任务及内核相关的概念,任务与多任务实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。,4.3.3 任务及内核相关的概念,内核内核提供的基本服务是任务切换。多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。,4.3.3 任务及内核相关的概念,调度内核的主要职责之一,

8、就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法指:CPU总是让处在就绪态的优先级最高的任务先运行。,4.3.3 任务及内核相关的概念,不可剥夺型内核不可剥夺型内核要求每个任务自我放弃CPU的所有权。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。,4.3.3 任务及内核相关的概念,任务在运行过程之中产生中断进入中断服务子程序,中断服务子程序做事件处理使一个有更高级的任务进入

9、就绪态。中断服务完成以后,中断返回指令,使CPU回到原来被中断的任务接着执行该任务的代码,直到该任务完成,调用一个内核服务函数以释放CPU控制权,由内核将控制权交给那个优先级更高的、并已进入就绪态的任务,这个优先级更高的任务才开始处理中断服务程序标识的事件,4.3.3 任务及内核相关的概念,可剥夺型内核最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那

10、个任务开始运行。,4.3.3 任务及内核相关的概念,4.3.3 任务及内核相关的概念,不可剥夺型内核高优先级的任务已经进入就绪态,也许要等很长时间,直到当前运行着的任务释放CPU后才能执行。不可剥夺型内核的任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到CPU的控制权,完全取决于应用程序什么时候释放CPU。,可剥夺型内核高优先级的任务进入就绪态,立刻能够执行。最高优先级的任务的执行时间是可知的。,4.3.3 任务及内核相关的概念,任务优先级表征任务的重要程度的量。任务的优先级越高,赋予的优先级就越高。静态优先级:应用程序执行的过程中,任务的优先级不变。动态优先级:应用程序执行过

11、程中,任务的优先级是可变的。,4.3.3 任务及内核相关的概念,互斥条件保证系统处理共享数据或共享资源的排他性的方法。关中断使用测试并置位指令禁止任务切换利用信号量,4.3.3 任务及内核相关的概念,信号量在多任务内核中普遍使用的约定机制。控制共享资源的使用权(满足互斥条件)标志某时间的发生使两个任务的行为同步二进制型计数型,4.3.3 任务及内核相关的概念,死锁(或抱死)指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1,任务T2在独享资源R2,而此时T1又要独享R2,T2也要独享R1,于是哪个任务都没法继续执行了,发生了死锁。先得到全部需要的资源再做下一步的工作用同样的顺

12、序去申请多个资源释放资源时使用相反的顺序,4.3.3 任务及内核相关的概念,同步按照一定的时间顺序执行任务。任务的执行顺序单向同步双向同步同步标志用信号量实现,4.3.3 任务及内核相关的概念,事件标志当某任务要与多个事件同步时,要使用事件标志。若任务需要与任何事件之一发生同步,可称为独立型同步(即逻辑或关系)。任务也可以与若干事件都发生了同步,称之为关联型(逻辑与关系)。,4.3.3 任务及内核相关的概念,任务间的通讯在任务进行数据传递全局变量发送消息,4.3.3 任务及内核相关的概念,消息邮箱典型的消息邮箱也称作交换消息,是用一个指针型变量,通过内核服务,一个任务或一个中断服务程序可以把一

13、则消息(即一个指针)放到邮箱里去。同样,一个或多个任务可以通过内核服务接收这则消息。发送消息的任务和接收消息的任务约定,该指针指向的内容就是那则消息。,4.3.3 任务及内核相关的概念,消息队列消息队列实际上是邮箱阵列。通过内核提供的服务,任务或中断服务子程序可以将一条消息(该消息的指针)放入消息队列。同样,一个或多个任务可以通过内核服务从消息队列中得到消息。发送和接收消息的任务约定,传递的消息实际上是传递的指针指向的内容。通常,先进入消息队列的消息先传给任务,也就是说,任务先得到的是最先进入消息队列的消息,即先进先出原则(FIFO)。,4.3.4 中断相关的概念,中断中断延迟中断响应中断恢复

14、时间中断处理时间,4.3.4 中断相关的概念,中断中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)现场(Context)即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到:在前后台系统中,程序回到后台程序对不可剥夺型内核而言,程序回到被中断了的任务对可剥夺型内核而言,让进入就绪态的优先级最高的任务开始运行关中断和开中断中断嵌套,也就是说在中断服务期间,微处理器可以识别另一个更重要的中断,并服务于那个更重要的中断,4.3.4 中断相关的概念,中断延迟所有实时系统在进入临界区代码段之

15、前都要关中断,执行完临界代码之后再开中断。关中断的时间越长,中断延迟就越长。中断延迟=关中断的最长时间+开始执行中断服务子程序的第一条指令的时间,4.3.4 中断相关的概念,中断响应中断响应时间定义为从中断发生到开始执行用户的中断服务子程序代码来处理这个中断的时间。中断响应是系统在最坏情况下的中断响应时间。中断响应时间=中断延迟+保存CPU内部寄存器的时间 中断响应时间=中断延迟+保存CPU内部寄存器的时间+内核的进入中断服务函数的执行时间,4.3.4 中断相关的概念,中断恢复时间中断恢复时间定义为微处理器返回到被中断了的程序代码所需要的时间。中断恢复时间=恢复CPU内部寄存器值的时间+执行中

16、断返回指令的时间 中断恢复时间=判定是否有优先级更高的任务进入了就绪态的时间+恢复那个优先级更高任务的CPU内部寄存器的时间+执行中断返回指令的时间,4.3.4 中断相关的概念,中断处理时间中断服务的处理时间应该尽可能的短,但是对处理时间并没有绝对的限制。如果中断服务是在任何给定的时间开始,且中断服务程序代码是应用程序中最重要的代码,则中断服务需要多长时间就应该给它多长时间。分析事件处理的时间和消息传递的时间。,时钟节拍,时钟节拍时钟节拍是特定的周期性中断。中断之间的时间间隔取决于不同的应用,一般在10mS到200mS之间。时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等

17、待事件发生时,提供等待超时的依据。时钟节拍率越快,系统的额外开销就越大(节拍服务子程序)。,4.3.6 对存储器的需求,前后台系统,对存储器容量的需求仅仅取决于应用程序代码。使用多任务内核 总代码量=应用程序代码+内核代码 RAM总需求=应用程序的RAM需求+(任务栈需求+最大中断嵌套栈需求)*任务数如果内核支持中断用栈分离RAM总需求=应用程序的RAM需求+内核数据区的RAM需求+各任务栈需求之总和+最多中断嵌套之栈需求,4.3.7 使用实时内核的优缺点,实时应用程序的设计和扩展变得容易通过将应用程序分割成若干独立的任务,RTOS使得应用程序的设计过程大为减化。使用可剥夺性内核时,所有时间要求苛刻的事件都得到了尽可能快捷、有效的处理。通过有效的服务,如信号量、邮箱、队列、延时、超时等,RTOS使得资源得到更好的利用。,内核的价格额外的ROM/RAM开销2到4百分点的CPU额外负荷,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号