RTX51实时操作系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《RTX51实时操作系统课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RTX51 实时 操作系统 课件
- 资源描述:
-
1、第第1010章章 RTX51RTX51实时操作系统实时操作系统 操作系统基本概念操作系统基本概念 RTX51RTX51系统特点系统特点 RTX51RTX51的程序结构的程序结构 RTX51RTX51的功能函数的功能函数 RTX51RTX51的任务调度的任务调度 RTX51RTX51的系统配置的系统配置 RTX51RTX51的应用举例的应用举例第1页,共47页。10.1 10.1 操作系统基本概念操作系统基本概念10.1.1 10.1.1 前后台系统前后台系统 前后台系统的组成:前台和后前后台系统的组成:前台和后台程序台程序 后台:后台:是一个无限循环的应是一个无限循环的应用程序,循环中调用相应
2、的任用程序,循环中调用相应的任务函数完成相应的操作,各个务函数完成相应的操作,各个任务依次运行,没有调度,运任务依次运行,没有调度,运行的次序不能改变。行的次序不能改变。前台:前台:是中断服务程序,处理是中断服务程序,处理异步事件。异步事件。第2页,共47页。适用情形:适用情形:一般不复杂且实时性要求不高的小系统很适合采用前后台系统,例如微波炉、电话机、玩具等。在另外一些基于省电的应用中,由于平时微处理器处在停机状态,所有的事都靠中断服务来完成,因此也常常采用前后台系统模式。第3页,共47页。10.1.2 10.1.2 操作系统操作系统 操作系统(操作系统(Operating SystemOp
3、erating System,简称,简称OSOS)是计算机中)是计算机中最基本的程序。操作系统负责计算机系统中全部软、硬资最基本的程序。操作系统负责计算机系统中全部软、硬资源的分配以及回收、控制与协调等并发的活动;操作系统源的分配以及回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。用户扩展新的系统功能提供软件平台。操作系统的主要包括四大功能:操作系统的主要包括四大功能:处理机管理:解决处理机管理:解决CPUCPU的分时复用。的分时复用。存储管理:配合存储管理:配合CPUC
4、PU调度内存。调度内存。设备管理:分配外设的使用,包括独享、共享和虚拟。设备管理:分配外设的使用,包括独享、共享和虚拟。软件资源管理:解决程序和信息的存取和管理等问题。软件资源管理:解决程序和信息的存取和管理等问题。第4页,共47页。实时操作系统(实时操作系统(RTOSRTOS)是指当外界事件或数据产生时,)是指当外界事件或数据产生时,能够接受并以能够接受并以足够快的速度足够快的速度予以处理,其处理的结果又能在予以处理,其处理的结果又能在规定的时间规定的时间之内来控制生产过程或对处理系统作出快速响应,之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。并控制所
5、有实时任务协调一致运行的操作系统。用户的应用程序是运行于用户的应用程序是运行于RTOSRTOS之上的各个任务,之上的各个任务,RTOSRTOS根根据各个任务的要求,进行资源(包括存储器、外设等)管理、据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度和异常处理等工作。消息管理、任务调度和异常处理等工作。实时多任务操作系统,以分时方式运行多个任务,看上实时多任务操作系统,以分时方式运行多个任务,看上去好像是多个任务去好像是多个任务“同时同时”运行。任务之间的切换应当以优运行。任务之间的切换应当以优先级为根据,只有具有先级为根据,只有具有优先服务方式优先服务方式的的RTOSR
6、TOS才是真正的实时才是真正的实时操作系统,而时间分片方式和协作方式的操作系统,而时间分片方式和协作方式的RTOSRTOS并不是真正的并不是真正的“实时实时”。10.1.3 10.1.3 实时操作系统实时操作系统第5页,共47页。10.1.4 10.1.4 临界区临界区 临界资源:任何时候都只允许一个任务访问的资源。临界资源:任何时候都只允许一个任务访问的资源。临界区或临界段:用于访问临界资源的代码段。临界区或临界段:用于访问临界资源的代码段。临界代码段临界代码段不允许多个并发任务交叉执行不允许多个并发任务交叉执行,否则会产生严重后,否则会产生严重后果,比如进入中断后的现场保护代码等。果,比如
7、进入中断后的现场保护代码等。为确保临界区代码的安全执行,在进入临界区之前要关中断,而为确保临界区代码的安全执行,在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断临界区代码执行完以后要立即开中断第6页,共47页。程序运行时可使用的软、硬件环境统称为资源。资源程序运行时可使用的软、硬件环境统称为资源。资源可以是输入可以是输入/输出设备,例如打印机、键盘和显示器;资输出设备,例如打印机、键盘和显示器;资源也可以是一个变量、一个结构或一个数组等。源也可以是一个变量、一个结构或一个数组等。共享资源就是指可以被一个以上任务使用的资源。为共享资源就是指可以被一个以上任务使用的资源。为防止数据被破
8、坏,每个任务在与共享资源打交道时,必须防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫独占该资源,这叫互斥互斥。10.1.5 10.1.5 资源与共享资源资源与共享资源第7页,共47页。任务,也称为线程,是一个简单的程序。一般地,每个任务,也称为线程,是一个简单的程序。一般地,每个任务都是一个无限的循环。任务都是一个无限的循环。任务有五种状态:休眠态、就绪态、运行态、挂起态任务有五种状态:休眠态、就绪态、运行态、挂起态(等待某一事件发生)和被中断态。任何时刻,一个任务都(等待某一事件发生)和被中断态。任何时刻,一个任务都处于这五种状态之一的状态下。处于这五种状态之一的状态下。
9、休眠态休眠态相当于该任务驻留在内存中,但并不被多任务内相当于该任务驻留在内存中,但并不被多任务内核所调度。核所调度。就绪态就绪态意味着该任务已经准备好,可以运行了,意味着该任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂但由于该任务的优先级比正在运行的任务的优先级低,还暂不能运行不能运行。运行态运行态的任务是指该任务掌握了的任务是指该任务掌握了CPUCPU的控制权,的控制权,正在运行。正在运行。挂起态挂起态指该任务在等待,等待某一事件的发生。指该任务在等待,等待某一事件的发生。被中断状态被中断状态是指,发生中断时,是指,发生中断时,CPUCPU提供相应的中断服务
10、,提供相应的中断服务,原来正在运行的任务暂不能运行,就进入了被中断状态。原来正在运行的任务暂不能运行,就进入了被中断状态。10.1.6 10.1.6 任务任务第8页,共47页。10.1.7 10.1.7 内核与任务切换内核与任务切换内核内核 内核是操作系统最基本的部分。多任务系统中,内核内核是操作系统最基本的部分。多任务系统中,内核负责管理各个任务,或者说为每个任务分配负责管理各个任务,或者说为每个任务分配CPUCPU时间,并且时间,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核决定一个程序在什么时候对某部分硬件操作多长时间。内核负责任务之间的通信,它提供的基本服务是任务切换。内
11、核负责任务之间的通信,它提供的基本服务是任务切换。任务切换任务切换 当多任务内核决定运行另外的任务时,保存正在运行当多任务内核决定运行另外的任务时,保存正在运行任务的当前状态,即保存任务的当前状态,即保存CPUCPU寄存器中的全部内容。这些内寄存器中的全部内容。这些内容保存在任务的当前状态保存区,也就是任务自己的栈区容保存在任务的当前状态保存区,也就是任务自己的栈区之中。入栈工作完成以后,就把下一个将要运行的任务的之中。入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的栈中重新装入当前状态从任务的栈中重新装入CPUCPU的寄存器,并开始下一的寄存器,并开始下一个任务的运行。这个过程就
12、称为任务切换。个任务的运行。这个过程就称为任务切换。第9页,共47页。多任务切换示意图多任务切换示意图第10页,共47页。调度是内核的主要职责之一,调度就是决定该轮到调度是内核的主要职责之一,调度就是决定该轮到哪个任务运行了。任务的调度方式有基于时间片轮转的哪个任务运行了。任务的调度方式有基于时间片轮转的调度和基于优先级的调度。多数实时系统是基于优先级调度和基于优先级的调度。多数实时系统是基于优先级调度法的。基于优先级的调度法指调度法的。基于优先级的调度法指CPUCPU总是让处于就绪总是让处于就绪态的优先级最高的任务先运行。至于何时让高优先级任态的优先级最高的任务先运行。至于何时让高优先级任务
13、掌握务掌握CPUCPU的使用权,有两种不同的情况。的使用权,有两种不同的情况。占先式调度;非占先式调度。占先式调度;非占先式调度。10.1.8 10.1.8 调度调度第11页,共47页。占先式调度占先式调度 任何时候具有最高优先级且已就绪的任务先执行。一任何时候具有最高优先级且已就绪的任务先执行。一个正在执行的任务放弃处理器的条件为:自愿放弃处理器个正在执行的任务放弃处理器的条件为:自愿放弃处理器(等待资源或执行完毕);有高优先级任务启动,该高优(等待资源或执行完毕);有高优先级任务启动,该高优先级任务将抢占其执行。当一个运行着的任务使一个比它先级任务将抢占其执行。当一个运行着的任务使一个比它
14、优先级更高的任务进入了就绪状态时,当前任务的优先级更高的任务进入了就绪状态时,当前任务的CPUCPU使使用权就被剥夺了,或者说被挂起了,那个高优先级的任务用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了立刻得到了CPUCPU的控制权。如果是中断服务子程序是一个的控制权。如果是中断服务子程序是一个高优先级的任务进入了就绪态,则中断完成时,中断了的高优先级的任务进入了就绪态,则中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。任务被挂起,优先级高的那个任务开始运行。占先式调度的优点是实时性好、反应快,调度算法相占先式调度的优点是实时性好、反应快,调度算法相对简单,可优先保证高
15、优先级任务的时间约束,其缺点是对简单,可优先保证高优先级任务的时间约束,其缺点是上下文切换多上下文切换多。第12页,共47页。非占先式调度非占先式调度 非占先式调度要求每个任务自我放弃非占先式调度要求每个任务自我放弃CPUCPU的所有权。的所有权。这种方式下,异步事件还是由中断服务来处理。中断服务这种方式下,异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态,但可以使一个高优先级的任务由挂起状态变为就绪状态,但中断服务以后控制权还是回到原来被中断了的那个任务,中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃直到该任务主动放弃CPUCPU的使
16、用权时,那个高优先级的任的使用权时,那个高优先级的任务才能获得务才能获得CPUCPU的使用权。的使用权。非占先式调度的优点是上下文切换少,几乎不需要使非占先式调度的优点是上下文切换少,几乎不需要使用信号量保护共享数据;缺点是处理器有效资源利用率低,用信号量保护共享数据;缺点是处理器有效资源利用率低,任务级响应时间不确定,可调度性不好。任务级响应时间不确定,可调度性不好。第13页,共47页。10.1.9 10.1.9 函数的可重入性函数的可重入性 可重入可重入(Reentrant)(Reentrant)型函数:是指可以被多个任务并发使用,型函数:是指可以被多个任务并发使用,而数据不会遭到破坏的函
17、数。而数据不会遭到破坏的函数。可重入型函数特征:可重入型函数特征:只使用局部变量,变量保存在只使用局部变量,变量保存在CPUCPU寄存器或堆栈中,可寄存器或堆栈中,可以在任意时刻被中断,再重新恢复运行时,数据不会被以在任意时刻被中断,再重新恢复运行时,数据不会被破坏;破坏;若使用全局变量,则需满足互斥条件。若使用全局变量,则需满足互斥条件。第14页,共47页。可重入型函数实例可重入型函数实例void func1(int*x,int*y)int temp;temp=*x;*x=*y;*y=temp;不可重入型函数清单不可重入型函数清单static int temp;void func2(int*
18、x,int*y)temp=*x;*x=*y;*y=temp;第15页,共47页。不可重入型函数运行示意图不可重入型函数运行示意图 使用以下技术之一可使函数使用以下技术之一可使函数func2()func2()具有可重入性:具有可重入性:(1)(1)将将temptemp定义为局部变量;定义为局部变量;(2)(2)在调用前,禁止中断,执行完毕后再开中断;在调用前,禁止中断,执行完毕后再开中断;(3)(3)在调用过程中,应用信号量独占使用该函数。在调用过程中,应用信号量独占使用该函数。第16页,共47页。10.1.10 10.1.10 信号量信号量 信号量信号量 信号与信号量在英文中都是同一个词Sem
19、aphore,并不加以区别。是一种通信机制。主要用来实现任务间同步以及标识某类资源的可用个数。两种类型:两种类型:只取0和1两个值的二值(Binary)信号量,这种信号量也称为信号;由若干位组合而成的计数式(Counting)信号量,一般有8位、16位或者32位等若干种,具体是多少位取决于内核。作用:作用:满足互斥条件,实现共享资源的独占使用;标志某事件的发生;使两个任务的行为同步。第17页,共47页。(1)初始化信号量,也可称为建立初始化信号量,也可称为建立(CREATE)(CREATE)信号量信号量。信号量初始化时,要给信号量赋初值,等待信号量的任务列表应清空。(2)等信号或申请信号量,可
20、称做挂起等信号或申请信号量,可称做挂起(PEND)(PEND)。对于执行等待信号量的任务来说,若该信号量有效,则信号量值减1,任务继续执行;若信号量值为0,则任务继续被挂起。若内核允许定义等待超时,则超时后,该任务转入就绪,同时返回错误代码以示发生了超时错误。(3)给信号,可称做发信号给信号,可称做发信号(POST)(POST)。若没有任务等待该信号量,则信号量的值仅简单加1;若只有一个任务等待该信号量,则该任务转入就绪状态,信号量的值不加1;若有多个任务等待信号量,至于谁先得到信号量,那就要看内核是如何调度的了。一般有两种可能:一是按优先级原则,等待信号量的任务中优先级最高的先得到;二是按先
21、进先出的原则,最早开始等待信号量的那个任务先得到。工作原理工作原理第18页,共47页。所谓死锁,是指各并发任务彼此等待对方所拥有的资源,所谓死锁,是指各并发任务彼此等待对方所拥有的资源,且这些并发任务在得到对方的资源之前不会释放自己所拥有且这些并发任务在得到对方的资源之前不会释放自己所拥有的资源,从而造成大家都想得到资源而又都得不到资源,各的资源,从而造成大家都想得到资源而又都得不到资源,各并发任务不能继续向前推进的状态。并发任务不能继续向前推进的状态。最简单的防止死锁发生的方法有两种:最简单的防止死锁发生的方法有两种:1.1.让每个任务先得到全部需要的资源,再进行下一步工作。让每个任务先得到
22、全部需要的资源,再进行下一步工作。2.2.让每个任务用同样的顺序去申请多个资源,释放资源时使让每个任务用同样的顺序去申请多个资源,释放资源时使用相反的顺序。用相反的顺序。10.1.11 10.1.11 死锁死锁第19页,共47页。10.1.12 10.1.12 消息队列消息队列 消息用于两个任务之间的通信,消息队列是保存消息消息用于两个任务之间的通信,消息队列是保存消息的容器。通过内核提供的服务,任务或中断服务子程序可的容器。通过内核提供的服务,任务或中断服务子程序可以将一个消息放入消息队列。同样,一个或多个任务可以以将一个消息放入消息队列。同样,一个或多个任务可以通过内核服务从消息队列中得到
23、消息。通过内核服务从消息队列中得到消息。通常,先进入消息队列的消息先给任务,遵循先进先通常,先进入消息队列的消息先给任务,遵循先进先出原则(出原则(FIFOFIFO)。)。内核提供的典型消息队列服务如下:内核提供的典型消息队列服务如下:1.1.消息队列初始化,队列初始化时总是清为空;消息队列初始化,队列初始化时总是清为空;2.2.放一则消息到队列中去(放一则消息到队列中去(POSTPOST););3.3.等待一则消息的到来(等待一则消息的到来(PENDPEND););4.4.无等待取得消息。如果队列中有消息则任务可以取得消无等待取得消息。如果队列中有消息则任务可以取得消息,消息从队列中取走;但
24、如果此时队列为空,则内核不息,消息从队列中取走;但如果此时队列为空,则内核不将该任务挂起,只是用特别的返回代码通知调用者,队列将该任务挂起,只是用特别的返回代码通知调用者,队列中没有消息。中没有消息。第20页,共47页。中断是指计算机在执行程序的过程中,当出现异常情中断是指计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到以下些异常情况或特殊请求的处理,处理结束后再返回到以下部分:部分:1.1.在前后台系统中,程序回到后台程序;在前后台系统中,程序回到后台程序;
25、2.2.对非占先式内核而言,程序回到被中断了的任务;对非占先式内核而言,程序回到被中断了的任务;3.3.对占先式内核而言,让进入就绪态的优先级最高的任务对占先式内核而言,让进入就绪态的优先级最高的任务开始运行。开始运行。10.1.13 10.1.13 中断中断第21页,共47页。时钟节拍是特定的周期性中断。这个中断可以看作时钟节拍是特定的周期性中断。这个中断可以看作是系统心脏的脉动。中断之间的时间间隔取决于不同应是系统心脏的脉动。中断之间的时间间隔取决于不同应用,是机器周期的一个整数倍,一般为用,是机器周期的一个整数倍,一般为1010200ms200ms,视,视系统的复杂性和对实时性的要求而定
展开阅读全文