资源预览内容
第1页 / 共80页
第2页 / 共80页
第3页 / 共80页
第4页 / 共80页
第5页 / 共80页
第6页 / 共80页
第7页 / 共80页
第8页 / 共80页
第9页 / 共80页
第10页 / 共80页
亲,该文档总共80页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
嵌入式控制系统原理及设计嵌入式控制系统原理及设计第第6 6章章 嵌入式操作系统及应用嵌入式操作系统及应用6.1 6.1 嵌入式实时操作系统概嵌入式实时操作系统概述述嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念操作系统(操作系统(Operating System,缩写:,缩写:OS)是管理计算机硬件与软件资源的计算机程序,)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。同时也是计算机系统的内核与基石。根据操作系统的使用环境和对作业处理方式来考虑,可分为批处理系统(根据操作系统的使用环境和对作业处理方式来考虑,可分为批处理系统(MVX、DOS/VSE)、分时系统()、分时系统(WINDOWS、UNIX、XENIX、Mac OS)、实时系统)、实时系统(iEMX、VRTX、RTOS、RT Linux););根据所支持的用户数目,可分为单用户(根据所支持的用户数目,可分为单用户(MSDOS、OS/2)、多用户系统()、多用户系统(UNIX、MVS、Windows););根据硬件结构,可分为网络操作系统(根据硬件结构,可分为网络操作系统(Netware、Windows NT、OS/2 warp)、分布式)、分布式系统(系统(Amoeba)、多媒体系统()、多媒体系统(Amiga)等。)等。嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念嵌入式操作系统指支持嵌入式系统应用的操作系统,是嵌入式系统重要的嵌入式操作系统指支持嵌入式系统应用的操作系统,是嵌入式系统重要的组成部分。组成部分。其既具有通用操作系统的基本特点,同时由于嵌入式系统大部分都是实时其既具有通用操作系统的基本特点,同时由于嵌入式系统大部分都是实时系统,因此操作系统也需提供系统实时性需求的功能,如调度、控制、协系统,因此操作系统也需提供系统实时性需求的功能,如调度、控制、协调并发活动等。调并发活动等。因此常常将嵌入式操作系统成为嵌入式实时操作系统(因此常常将嵌入式操作系统成为嵌入式实时操作系统(Embedded Real-time Operation System,简写为简写为ERTOS,或或RTOS)。)。嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念1. 进程与任务进程与任务在嵌入式控制系统中,进程和任务大多数情况下是等同的概念;在嵌入式控制系统中,进程和任务大多数情况下是等同的概念;任务所对应的是一个通常意义上的可执行文件,只是文件是存储于存储系统中的静态形任务所对应的是一个通常意义上的可执行文件,只是文件是存储于存储系统中的静态形式,而任务是这个可执行文件的动态形式;式,而任务是这个可执行文件的动态形式;所谓的动态形式是所谓的动态形式是CPU已经将该可执行文件的部分代码读入到内存,并为这个任务分配已经将该可执行文件的部分代码读入到内存,并为这个任务分配了所需要的资源以及优先级;了所需要的资源以及优先级;任务之间是相互独立的,一个任务并不知道其他的任务,它们之间不能直接传递参数,任务之间是相互独立的,一个任务并不知道其他的任务,它们之间不能直接传递参数,必须通过嵌入式实时操作系统所提供的服务来实现。必须通过嵌入式实时操作系统所提供的服务来实现。嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念【任务状态任务状态】任务具有多种状态,包括:就绪态、运行态、挂起和休眠等。任务具有多种状态,包括:就绪态、运行态、挂起和休眠等。嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念2)资源与资源共享)资源与资源共享任何为任务所占用的实体就称为资源。嵌入式系统中,常用的资源包括数任何为任务所占用的实体就称为资源。嵌入式系统中,常用的资源包括数据结构、变量、主内存区域、文件、寄存器以及据结构、变量、主内存区域、文件、寄存器以及I/O单元。单元。系统资源可以分为可抢占的和不可抢占的两种,可抢占的资源指哪些已占系统资源可以分为可抢占的和不可抢占的两种,可抢占的资源指哪些已占用该资源的任务正在使用的或仍需继续使用这些资源时,被另一个任务强用该资源的任务正在使用的或仍需继续使用这些资源时,被另一个任务强行抢走并占用;不可抢占的资源指只有当占用者不再需要该资源并主动释行抢走并占用;不可抢占的资源指只有当占用者不再需要该资源并主动释放时,其他任务才可以抢占的资源,即其他任务不能在使用者进程使用资放时,其他任务才可以抢占的资源,即其他任务不能在使用者进程使用资源的过程中强行抢占。源的过程中强行抢占。嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念可以被一个以上任务使用的资源称为共享资源。可以被一个以上任务使用的资源称为共享资源。资源共享可能导致数据被破坏,因此需要引入互斥条件等机制,确保任意资源共享可能导致数据被破坏,因此需要引入互斥条件等机制,确保任意一个任务在访问共享资源时都是独占该资源,这样可保证共享资源数据的一个任务在访问共享资源时都是独占该资源,这样可保证共享资源数据的安全性。安全性。任务之间可以通过共享存储区的方式传递消息和数据,任务访问共享存储任务之间可以通过共享存储区的方式传递消息和数据,任务访问共享存储区的那段代码就称为代码临界区;区的那段代码就称为代码临界区;嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念为了保证多个任务共享资源的安全性,嵌入式操作系统会规定:为了保证多个任务共享资源的安全性,嵌入式操作系统会规定:任务必须取得互斥锁以后才能访问共享资源任务必须取得互斥锁以后才能访问共享资源任务在访问共享资源时,即处于代码临界区时,是不能被抢占的,无任务在访问共享资源时,即处于代码临界区时,是不能被抢占的,无论想抢占的任务优先级有多高论想抢占的任务优先级有多高嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念(3)代码的临界区()代码的临界区(Critical Section)代码的临界区指一个访问共用资源(例如:共用设备或是共用存储器)的代码的临界区指一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待,有一些同步的机当有线程进入临界区段时,其他线程或是进程必须等待,有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用,只能被单一线程访问的设备。获得使用,只能被单一线程访问的设备。嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念(3)代码的临界区()代码的临界区(Critical Section)进程进入临界区的调度原则是:进程进入临界区的调度原则是:如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。区,则其它所有试图进入临界区的进程必须等待。进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。界区。若进程不能进入自己的临界区,则应让出若进程不能进入自己的临界区,则应让出CPU,避免进程出现避免进程出现“忙等忙等”现象。现象。嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念(4)任务切换)任务切换任务切换,也称作上下文切换,是操作系统的核心,指任务切换,也称作上下文切换,是操作系统的核心,指CPU从一个进程或线程切从一个进程或线程切换到另一个进程或线程。上下文是指某一时间点换到另一个进程或线程。上下文是指某一时间点CPU寄存器和程序计数器的内容。寄存器和程序计数器的内容。上下文切换在上下文切换在CPU上对于进程(包括线程)进行以下的活动:上对于进程(包括线程)进行以下的活动:挂起一个进程,将这个进程在挂起一个进程,将这个进程在CPU中的状态(上下文)存储于内存中的某处;中的状态(上下文)存储于内存中的某处;在内存中检索下一个进程的上下文并将其在在内存中检索下一个进程的上下文并将其在CPU的寄存器中恢复;的寄存器中恢复;跳转到程序计数器所指向的位置(即跳转到进程被中断时的代码行),以恢复该进程。跳转到程序计数器所指向的位置(即跳转到进程被中断时的代码行),以恢复该进程。嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念(5)任务优先级)任务优先级优先级是指操作系统给任务指定的优先等级,决定了任务在使用资源时的优先次优先级是指操作系统给任务指定的优先等级,决定了任务在使用资源时的优先次序,与任务本身的优先级和调度算法有关。在实时系统中,任务优先级反应了一序,与任务本身的优先级和调度算法有关。在实时系统中,任务优先级反应了一个任务重要性与紧迫性。个任务重要性与紧迫性。静态优先级系统中任务的优先级是在创建时确定的,且在整个运行期间保持不变。静态优先级系统中任务的优先级是在创建时确定的,且在整个运行期间保持不变。一般地,优先级是用某一范围内的一个整数来表示,例如,一般地,优先级是用某一范围内的一个整数来表示,例如,07或或0255中的某中的某一整数。一整数。动态优先级是指在创建任务时所赋予的优先级随着该任务的执行或其等待时间的动态优先级是指在创建任务时所赋予的优先级随着该任务的执行或其等待时间的增加而改变的。增加而改变的。嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念(6)优先级翻转)优先级翻转优先级翻转是实时内核出现的最多问题,指当一个高优先级任务通过信号优先级翻转是实时内核出现的最多问题,指当一个高优先级任务通过信号量机制访问共享资源时,由于该信号量已被一低优先级任务占有,因此造量机制访问共享资源时,由于该信号量已被一低优先级任务占有,因此造成高优先级任务被许多具有较低优先级任务阻塞,实时性难以得到保证。成高优先级任务被许多具有较低优先级任务阻塞,实时性难以得到保证。解决优先级翻转问题的方法主要有优先级天花板和优先级继承两种。解决优先级翻转问题的方法主要有优先级天花板和优先级继承两种。嵌入式控制系统原理及设计嵌入式控制系统原理及设计6.1.1 6.1.1 嵌入式实时操作系统的概念嵌入式实时操作系统的概念(6)优先级翻转)优先级翻转优先级天花板是当任务申请某资源时,把该任务的优先级提升到可访问这优先级天花板是当任务申请某资源时,把该任务的优先级提升到可访问这个资源的所有任务中的最高优先级,这个优先级称为该资源的优先级天花个资源的所有任务中的最高优先级,这个优先级称为该资源的优先级天花板。这种方法简单易行,不必进行复杂的判断,不管任务是否阻塞了高优板。这种方法简单易行,不必进行复杂的判断,不管任务是否阻塞了高优先级任务的运行,只要任务访问共享资源都会提升任务的优先级。先级任务的运行,只要任务访问共享资源都会提升任务的优先级。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号