提高篇:嵌入式操作系统_第1页
提高篇:嵌入式操作系统_第2页
提高篇:嵌入式操作系统_第3页
提高篇:嵌入式操作系统_第4页
提高篇:嵌入式操作系统_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统及应用嵌入式系统及应用山东工商学院山东工商学院 电子信息系电子信息系 张守祥嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统嵌入式实时操作系统嵌入式实时操作系统嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统一 实时系统简介n一般而言具有实时性能的控制系统是实时系统。n实时表示一个非常短的时间间隔“time gap”(也可以认为表示时间框架“time frame”或者时间窗口“time window”),具有“立即”之含义。n当计算机进行实时处理时,要求在接收到数据的同时执行操作并输出计算结果,不能超出计算机系统

2、所能容忍的时限。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统实时系统的定义nIEEE(美国电气电子工程师协会)给出的实时系统定义是“那些正确性不仅取决于计算的逻辑结果,也取决于产生结果所花费的时间的系统”。这就是说,实时系统运算能力具有及时与正确的双重特征。n给出的实时系统(Real-Time System)定义是:对外来事件能在限定的响应时间内做出预定质量处理的计算机系统。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统实时系统的体系结构实时系统的体系结构必须满足:n高运算速度n高速的中断处理n高的I/O吞吐率n合理

3、的处理器和I/O设备的拓扑连接n高速可靠的和有时间约束的通信n体系结构支持的出错处理,n体系结构支持的调度n体系结构支持的操作系统,n体系结构支持的实时语言特性。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统n实时的调度理论。由于实时系统应用的特殊性,以往通用系统中以大吞吐量为目标的调度算法必须改进以适应实时应用的需要。主要要求是满足时间的正确性,然后提供高度动态的,满足在线需求的,强适应性的实时调度。n实时操作系统的设计和实现。在设计上首要目标是提供保证实时性的方法,包括一系列的经典问题的针对实时系统的解决方案。实现上要求操作系统的低开销,而且必须保证内

4、核以及其他关键部件的可重入性。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统实时系统的主要特点n及时响应外部发生的随机任务请求n在规定的时间范围内完成任务 任务执行的时间限制类型截止时间任务执行时间嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统截止时间: 一个时间界限。它要求一个任务在该时刻之前完成任务执行时间 一个任务从启动到完成所花费的时间。分为平均任务执行时间和最坏任务执行时间,实时系统中一般指最坏任务执行时间,考虑了可能的等待、阻塞等最不利的情况。 任务余量:截止时间减去任务执行时间所得的值,反映了系统工作的从

5、容程度。 紧时间约束 在满足任务时限的同时,留给系统的时间比较紧张。由任务的余量小而 引起。松时间约束:与紧时限概念相反,指在满足任务时限的同时,留给系统的时间比较宽松嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统实时系统的关键因素n计算机系统的实时性能主要由操作系统和运行在操作系统上的应用软件决定,对于无操作系统的计算机则由控制程序决定。n具有实时性能的操作系统称为实时操作系统(Real-Time Operating System, RTOS)嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统实时系统与非实时系统的例子n

6、实时系统典型例子民用飞机的导航系统汽车的防刹车抱死系统n非实时系统典型例子银行数据查询处理系统视频播放系统图像扫描文字识别系统嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统提高实时性能的因素尽量采用硬件处理优化微处理器的中断机制采用简单的单线程循环程序采用基于实时操作系统的复杂多线程操作 可见硬件加速和RTOS应用是提高实时系统的两个主要因素以下几种途径常常用来提高应用系统实时性能嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统实时系统的属性和指标n实时系统的两个基本属性可预测性和可靠性n实时系统的实时性能主要根据其RT

7、OS的三个主要指标来衡量 响应时间(response time)吞吐量(throughput)生存时间(survival time)嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统可预测性系统能够对实时任务的执行时间进行判断,确定是否能够满足任务的时限要求。n嵌入式系统的两个可预测性硬件延迟的可预测性、软件系统的可预测性应用程序的响应时间是可预测的,即在有限时间内完成必须的工作。操作系统的可预测性,即实时原语、调度函数等运行开销应是有界的以保证应用程序执行时间的有界性。资源约束指多个实时任务共享有限的资源时,必须按照一定的资源访问控制协议进行同步,以避免死锁

8、和高优先级任务被低优先级任务堵塞的时间(即优先级反转时间)不可预测。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统可靠性n可靠性已成为衡量实时系统性能不可缺少的重要指标。 采用静态分析和保留资源的方法及冗余配置,使关键任务的要求总能满足,系统在最坏情况下能正常工作或避免损失 一个系统的可靠性是由其组成元素共同决定的,这些元素包括硬件、板级开发包、RTOS和应用等。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统实时系统与通用系统区别 通用系统n方便用户管理计算机资源n追求系统资源最大利用率 实时系统n调度的实时性n响应时

9、间可确定性n高可靠性嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统性能衡量对传统的通用系统n大的系统吞吐量n合理的响应速度n对每个系统用户相对公平的进行计算资源的分配实时系统n实时的数据吞吐取代了吞吐量n对硬实时应用的优先响应取代了恰当的反应速度n系统的计算资源和其他外设资源必须优先满足实时应用的要求取代了公平嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统响应时间n计算机从识别一个外部事件到做出响应的时间 nRTOS响应时间的具体指标是:中断延迟时间(Interrupt Latency)任务切换时间(Task Swit

10、ching Latency)嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统响应时间nTCloseINT + TDoISR + TSaveReg + TStartServiceTCloseINT :关中断的最长时间TDoISR :开始执行中断服务子程序的第一条指令的时间TSaveReg : 保存CPU内部寄存器的时间TStartService :内核进入中断服务函数的执行时间计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间中断延迟时间嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统响应时间nT to

11、 Do B Task Time T to Pause A Task TimeT to Do B Task Time : 开始执行B任务的时刻T to Pause A Task :暂停执行A任务的时刻也就是CPU从停止一个任务执行切换到执行另一个任务所需要的时间任务切换时间嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统eCos嵌入式可配置操作系统内核实时响应时间参考数据硬件测试环境中断延迟时间任务切换时间ARM7TDMI(20MHz)22.10 ms49.14 msStrongARM(221.2MHz)3.25 ms1.85 msIntel Xcale(60

12、0MHz)1.87 ms0.87 ms嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统 吞吐量 生存时间n指在指定时间内系统可处理的事件总数,例如通信控制器用每秒处理的字符数来表示他的吞吐量n是输入数据的有效等待时间。如果在这段时间内系统能接收到输入数据,就能给出有用的输出时间。否则,即使接收到数据,也给不出有效的输出数据嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统实时系统分类n硬实时系统-灾难后果 指应用的时间需求能够得到完全满足,否则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏 航空航天、军事、核工业等

13、n软实时系统-性能下降 应用虽提出时间需求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响,如:视频点播(Video-On-Demand,VOD)、监控系统、信息采 集系统等。按实时性分嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统硬实时系统和软实时系统时限效益嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统实时系统的分类强实时系统:n其响应时间在毫秒级或微秒级普通实时系统:n其响应时间一般几秒弱实时系统:n其响应时间一般在数十秒按照响应时间的快慢分类嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时

14、操作系统嵌入式实时操作系统实时过程控制系统系统实时地从外界获得被控系统的当前状态,进行 预定的处理,根据处理结果对外界被控系统进行及 时控制,使其处于要求的状态下n实时信息处理系统系统仅从外界系统中获得当前状态并进行相应处理不直接控制外界系统的变化嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统嵌入式操作系统中的基本概念前后台系统前后台系统调度调度临界区临界区进程与线程进程与线程任务与多任务任务与多任务任务切换任务切换死锁死锁不可剥夺型内核不可剥夺型内核可剥夺型内核可剥夺型内核可重入性可重入性优先级反转优先级反转事件事件互斥互斥同步同步对存储器要求对存储器要

15、求嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统嵌入式操作系统基本概念前后台系统前后台系统调度调度临界区临界区进程与线程进程与线程任务与多任务任务与多任务任务切换任务切换死锁死锁不可剥夺型内核不可剥夺型内核可剥夺型内核可剥夺型内核可重入性可重入性优先级反转优先级反转事件事件互斥互斥同步同步对存储器要求对存储器要求嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统 前、后台系统前后台系统前后台系统应用程序是一个无限应用程序是一个无限的循环,循环中调用相的循环,循环中调用相应的函数完成相应的操应的函数完成相应的操作,这部分可以

16、看成后作,这部分可以看成后台行为台行为(background)(background)。中断服务程序处理异步中断服务程序处理异步事件,可以看成前台行事件,可以看成前台行为(为(foregroundforeground)后台也可以叫做任务级。后台也可以叫做任务级。前台也叫中断级。前台也叫中断级。 嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统中断中断数据采集处理数据处理键盘显示打印传统前后台系统编程传统前后台系统编程处理键盘RTOS数据采集处理数据显示打印中断基于基于RTOSRTOS编程编程 前后台与操作系统嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌

17、入式实时操作系统嵌入式实时操作系统调度 (Scheduler)n内核的主要职责之一,决定任务运行的次序。内核的主要职责之一,决定任务运行的次序。n 基本的调度算法有先来先服务基本的调度算法有先来先服务FCFSFCFS,优先,优先级法级法(Priority)(Priority),轮转法,轮转法(Round-Robin)(Round-Robin)等。等。n 调度的基本方式有可剥夺型和不可剥夺型。调度的基本方式有可剥夺型和不可剥夺型。n 多数实时内核是基于优先级调度的多种方多数实时内核是基于优先级调度的多种方法的复合。法的复合。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式

18、实时操作系统临界资源和代码临界区n临界资源指的是一段时间只允许一个进程访问的资源。共享临界资源的各个进程必须互斥的访问临界资源。它分为硬件临界资源和软件临界资源。如打印机属于硬件临界资源而缓冲区和队列属于软件临界区。n代码临界区指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断介入,为确保临界区代码执行,在进入临界区之前必须关中断,执行完临界区代码之后要立即开中断。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统 代码临界区(Critical Section)指一段不可分割的代码,一旦执行,不能被中断。指一段不可分割的代码,一旦执行,不能被中断

19、。定义实现代码临界区的方法1、屏蔽中断,通常在代码执行前关闭中断,执、屏蔽中断,通常在代码执行前关闭中断,执行后打开中断。行后打开中断。2、通过信号量机制。、通过信号量机制。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统嵌入式操作系统基本概念前后台系统前后台系统调度调度临界区临界区进程与线程进程与线程任务与多任务任务与多任务任务切换任务切换死锁死锁不可剥夺型内核不可剥夺型内核可剥夺型内核可剥夺型内核可重入性可重入性优先级反转优先级反转事件事件互斥互斥同步同步对存储器要求对存储器要求嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时

20、操作系统进程1 1、行为的一个规则叫做程序,程序在处理器上、行为的一个规则叫做程序,程序在处理器上执行时所发生的活动叫做进程。执行时所发生的活动叫做进程。2 2、进程是可以与其它进程并发执行的计算部分。、进程是可以与其它进程并发执行的计算部分。3 3、进程是一个独立的可以调度的活动。、进程是一个独立的可以调度的活动。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统进程1 1、进程是程序的一次执行过程,是一个动态的概念,、进程是程序的一次执行过程,是一个动态的概念,而程序是指令的有序集合,是静态的概念。而程序是指令的有序集合,是静态的概念。2 2、进程具有生命

21、期,从创建时存在,到撤销时消失,、进程具有生命期,从创建时存在,到撤销时消失,其存在是暂时的,而程序是是静态的,其存在可其存在是暂时的,而程序是是静态的,其存在可以是永久的。以是永久的。3 3、进程具有结构特征,由程序段、数据段、进程控、进程具有结构特征,由程序段、数据段、进程控制块三部分组成,而程序仅是指令的有序集合,制块三部分组成,而程序仅是指令的有序集合,是进程的组成部分。是进程的组成部分。4 4、进程与程序之间不是一一对应的关系。一个程序、进程与程序之间不是一一对应的关系。一个程序可同时运行于不同的数据集合上,映射成多个进可同时运行于不同的数据集合上,映射成多个进程。程。进程与程序之间

22、的区别嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统线程 线程是进程内一个相对独立的可调度的线程是进程内一个相对独立的可调度的执行单元实体。执行单元实体。定义:定义:引入线程的优点:引入线程的优点:(1 1) 提高了程序并发执行的程度,加快了系统的执提高了程序并发执行的程度,加快了系统的执行速度。线程是比进程粒度更小的调度单位。一个行速度。线程是比进程粒度更小的调度单位。一个进程可以有多个线程。进程可以有多个线程。(2 2)大大降低了系统的开销。线程不拥有自己的资)大大降低了系统的开销。线程不拥有自己的资源,只共享进程的资源空间,创建、切换、撤销的源,只共

23、享进程的资源空间,创建、切换、撤销的开销都很小。开销都很小。(3 3)提高了资源的利用率。)提高了资源的利用率。(4 4)更好地为用户提供服务。实现高质量的人机交)更好地为用户提供服务。实现高质量的人机交互。互。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统线程线程与进程的关系(1 1) 线程是进程的一个组成部分,进程创建时一线程是进程的一个组成部分,进程创建时一般只有一个线程,需要时可由这个线程创建其般只有一个线程,需要时可由这个线程创建其他线程。他线程。(2 2)一个进程可以有多个线程,这些共享进程的)一个进程可以有多个线程,这些共享进程的资源在进程的

24、空间中并发活动。资源在进程的空间中并发活动。(3 3)线程使用的资源是进程所分到的资源。)线程使用的资源是进程所分到的资源。(4 4)进程切换的开销远大于线程切换的开销。)进程切换的开销远大于线程切换的开销。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统任务 Taskn指拥有所有指拥有所有CPUCPU资源的简单程序。资源的简单程序。n任务即是一个进程,任务即是一个进程,UCOS-IIUCOS-II是多任务的可抢占是多任务的可抢占操作系统,我们可以把一个复杂的事情分成多个操作系统,我们可以把一个复杂的事情分成多个简单的子任务简单的子任务, ,每个作为一个进程

25、运行每个作为一个进程运行, ,这样可以这样可以简化复杂程序的设计。简化复杂程序的设计。n实时系统中的大部分任务是周期的,体现在编程实时系统中的大部分任务是周期的,体现在编程上每个任务则是一个典型的无限循环。上每个任务则是一个典型的无限循环。 n任务的状态:休眠态、就绪态、运行态、挂起态、任务的状态:休眠态、就绪态、运行态、挂起态、被中断态被中断态 。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统等待状态:等待状态:任务在等待某一事件的发生还不能运行的状态;被中断状态:被中断状态:因为中断服务程序正在执行而得不到CPU控制权的状态;睡眠状态:睡眠状态:任务驻

26、留在程序空间之中,还没有交给C/OS-管理的状态,而将任务交给C/OS-管理是通过调用函数OSTaskCreate()实现的;就绪状态:就绪状态:任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行的状态。在C/OS-中,当任务一旦建立,这个任务就进入就绪态准备运行;运行状态:运行状态:任务掌握了CPU的控制权,正在运行中的状态。任务的状态 任务状态描述任务 Task嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统任务 Taskn任务任务=程序代码程序代码+ +堆栈堆栈+ +任务控制块任务控制块n任务控制块保存着所有与进

27、程相关的任务控制块保存着所有与进程相关的信息信息, ,包括堆栈的指针和优先级包括堆栈的指针和优先级n任务的堆栈则用来保存任务分配的局任务的堆栈则用来保存任务分配的局部变量部变量, ,此外此外, ,当任务被切换出去时当任务被切换出去时, ,堆堆栈还保存当前寄存器的值栈还保存当前寄存器的值嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统多任务 多任务是指用户多任务是指用户可以在同一时间内可以在同一时间内运行多个应用程序,运行多个应用程序,每个应用程序是一每个应用程序是一个任务。个任务。 多任务运行的实多任务运行的实现实际上是靠现实际上是靠CPU(CPU(中央处理

28、单元中央处理单元) )在许多任务之间转在许多任务之间转换、调度换、调度。 嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统任务:example手持数据采集终端的打印手持数据采集终端的打印CreateTASK(myprintf, priority) ; CreateTASK(myprintf, priority) ; void myprintf( )void myprintf( ) for (;) for (;) 等待接收队列信息;等待接收队列信息; 往打印机发送打印信息;往打印机发送打印信息; 嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系

29、统嵌入式实时操作系统嵌入式操作系统基本概念前后台系统前后台系统调度调度临界区临界区进程与线程进程与线程任务与多任务任务与多任务任务切换任务切换死锁死锁不可剥夺型内核不可剥夺型内核可剥夺型内核可剥夺型内核可重入性可重入性优先级反转优先级反转事件事件互斥互斥同步同步对存储器要求对存储器要求嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统 任务切换(Context Switch)当多任务内核决定运行另外的任务时,保当多任务内核决定运行另外的任务时,保存正在运行任务的当前状态,即保存存正在运行任务的当前状态,即保存CPUCPU寄存寄存器中的全部内容。器中的全部内容。

30、这些内容保存在任务自己的栈区之中。这些内容保存在任务自己的栈区之中。入栈工作完成以后,就把下一个将要运行入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的栈中重新装入的任务的当前状态从任务的栈中重新装入CPUCPU的寄存器,并开始下一个任务的运行。的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。这个过程就称为任务切换。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统死锁是指各并发任务彼此等待对方所拥有的是指各并发任务彼此等待对方所拥有的资源,且这些并发任务在得到对方的资源之资源,且这些并发任务在得到对方的资源之前不会释放自己所拥有的资源,

31、从而造成大前不会释放自己所拥有的资源,从而造成大家都想得到资源而又都得不到资源,各并发家都想得到资源而又都得不到资源,各并发任务不能继续向前推进的状态。任务不能继续向前推进的状态。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统防止发生死锁的方法内核大多允许用户在申请信号量时定义内核大多允许用户在申请信号量时定义等待超时,以化解死锁。等待超时,以化解死锁。等待时间超过了某一确定值,信号量还等待时间超过了某一确定值,信号量还是无效状态时,就会返回某种形式的出现超是无效状态时,就会返回某种形式的出现超时错误的代码。这个出错代码告知该任务,时错误的代码。这个出错代

32、码告知该任务,不是得到了资源使用权,而是系统错误。不是得到了资源使用权,而是系统错误。死锁一般发生在大型多任务系统中,在死锁一般发生在大型多任务系统中,在嵌入式系统中不易出现。嵌入式系统中不易出现。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统不可剥夺型内核嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统不可剥夺型内核1 1、任务在运行过程中,中断来了。、任务在运行过程中,中断来了。2 2、如果此时中断是开着的,、如果此时中断是开着的,CPUCPU由中断向量进入中断由中断向量进入中断服务子程序。服务子程序。3 3、中断服

33、务子程序做事件处理,使一个有更高级的任、中断服务子程序做事件处理,使一个有更高级的任务进入就绪态。务进入就绪态。4 4、中断服务完成以后,中断返回指令,、中断服务完成以后,中断返回指令,CPUCPU回到原来回到原来被中断的任务。被中断的任务。5 5、 接着执行该任务被中断了的代码。接着执行该任务被中断了的代码。6 6、直到该任务完成,调用一个内核服务函数以释放、直到该任务完成,调用一个内核服务函数以释放CPUCPU控制权。控制权。7 7、内核将控制权交给那个优先级更高的、并已进入就、内核将控制权交给那个优先级更高的、并已进入就绪态的任务这个优先级更高的任务才开始处理中断服务程绪态的任务这个优先

34、级更高的任务才开始处理中断服务程序标识的事件。序标识的事件。 嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统可剥夺型内核嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统可剥夺型内核1 1、任务在运行过程中,中断来了。、任务在运行过程中,中断来了。2 2、如果此时中断是开着的,、如果此时中断是开着的,CPUCPU由中断向量进入中由中断向量进入中断服务子程序。断服务子程序。3 3、中断服务子程序做事件处理,使一个有更高级的、中断服务子程序做事件处理,使一个有更高级的任务进入就绪态。当任务进入就绪态。当ISRISR完成时,进入

35、内核提供的一种完成时,进入内核提供的一种服务(一个内核提供的函数被调用)。服务(一个内核提供的函数被调用)。4 4、该函数知道一个更重要的任务进入就绪态,于是、该函数知道一个更重要的任务进入就绪态,于是内核进行任务切换,执行更重要的任务的代码。内核进行任务切换,执行更重要的任务的代码。5. 5. 当该任务完成后,内核提供另一个函数。当该任务完成后,内核提供另一个函数。6. 6. 该函数使得内核看到了低优先级的任务要运行,该函数使得内核看到了低优先级的任务要运行,于是发生另一次任务切换,被中断了的任务继续运行。于是发生另一次任务切换,被中断了的任务继续运行。 嵌入式系统及应用嵌入式系统及应用-提

36、高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统使用占先式内核,最高优先级的任务什使用占先式内核,最高优先级的任务什么时候可以执行以及什么时候可以得到么时候可以执行以及什么时候可以得到CPUCPU的控制权是可知的。使用占先式内核使得任的控制权是可知的。使用占先式内核使得任务级响应时间得以最优化务级响应时间得以最优化。使用占先式内核时,应用程序不应该直使用占先式内核时,应用程序不应该直接使用不可重入型函数。接使用不可重入型函数。可剥夺型内核嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统嵌入式操作系统中的基本概念前后台系统前后台系统调度调度临界区临界区进程与线

37、程进程与线程任务与多任务任务与多任务任务切换任务切换死锁死锁不可剥夺型内核不可剥夺型内核可剥夺型内核可剥夺型内核可重入性可重入性优先级反转优先级反转事件事件互斥互斥同步同步对存储器要求对存储器要求嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统可重入性(Reentrant) 可重入型函数可以被一个以上的任务可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可以运行,而相应数据不会丢失。嵌入式系统及

38、应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统可重入性(Reentrant) strcpy(char *dest, char *src) while (*src!=0) *dest=*src; dest+; src+; *dest = 0; -可重入函数可重入函数嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统可重入性(Reentrant) int Temp;void swap(int *x, int *y) Temp = *x; *x = *y; *y = Temp; -不可重入函数不可重入函数嵌入式系统及应用嵌入式系统及应用-提

39、高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统使函数具有可重入性的方法n把把temptemp定义为局部变量;定义为局部变量;n调用函数之前关中断,调用后再开中断;调用函数之前关中断,调用后再开中断;n用信号量禁止该函数在使用过程中被再用信号量禁止该函数在使用过程中被再次调用。次调用。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统优先级(Priority) n 每个任务按其重要性被赋予一定的优先级。每个任务按其重要性被赋予一定的优先级。n 静态优先级与动态优先级。静态优先级与动态优先级。n 基于优先级的系统会出现优先级反转(倒基于优先级的系统会出现优先级反

40、转(倒置)的问题,一个好的实时内核应该提供解置)的问题,一个好的实时内核应该提供解决倒置的方法。决倒置的方法。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统优先级反转嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统优先级列表任务1任务2任务3高低共享资源 假设任务1和任务3共享一个资源,任务2为优先级介于任务1和任务3之间的一个与该共享资源无关任务,分析优先级反转问题。任务2优先级高于任务3而进入运行状态任务1申请共享资源而处于等待状态 此时,虽然任务1比任务2优先级更高,但却在任务2之后运行,这种现象就是优先级反转。任

41、务3得到共享资源而处于运行状态优先级反转嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统优先级反转问题的解决优先级继承优先级继承优先级继承(Priority inheritance)(Priority inheritance): 为防止发生优先级反转为防止发生优先级反转, ,内核能自动变换任务的内核能自动变换任务的优先级。优先级。 将占用共享资源的低优先级任务的优先级提升将占用共享资源的低优先级任务的优先级提升到略高于等待共享资源的高优先级任务的优先级到略高于等待共享资源的高优先级任务的优先级。这个略高于高优先级任务的优先级称为:优先。这个略高于高优先级任务

42、的优先级称为:优先级继承优先级(级继承优先级(Priority Inheritance Priority,PIPPriority Inheritance Priority,PIP)嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统优先级列表优先级继承任务1任务2任务3高低共享资源任务3共享资源 假设任务1和任务3共享一个资源,定义优先级继承优先级,任务2为优先级介于任务1和任务3之间的一个与该共享资源无关任务。任务2优先级不够高无法获得CPU任务1申请共享资源而处于等待状态任务3 此时,任务2无法在任务1之前得到运行,不发生优先级反转共享资源任务1任务3获得C

43、PU,且优先级升到优先级继承优先级任务1获得CPU优先级反转问题的解决优先级继承嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统嵌入式操作系统中的基本概念前后台系统前后台系统调度调度临界区临界区进程与线程进程与线程任务与多任务任务与多任务任务切换任务切换死锁死锁不可剥夺型内核不可剥夺型内核可剥夺型内核可剥夺型内核可重入性可重入性优先级反转优先级反转事件事件互斥互斥同步同步对存储器要求对存储器要求嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统事件 一个任务或者中断服务子程序可以通过一个任务或者中断服务子程序可以通过内核服务

44、来向另外的任务发信号,这里所内核服务来向另外的任务发信号,这里所有的信号被看作事件(有的信号被看作事件(EventEvent)。)。 包括信号量、消息邮箱、消息队列。包括信号量、消息邮箱、消息队列。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统事件信号量 信号量是一种程序间的约定机制,这种约信号量是一种程序间的约定机制,这种约定决定哪个程序(任务)可以执行。定决定哪个程序(任务)可以执行。 信号量像是通行证,且通行证的数目是有信号量像是通行证,且通行证的数目是有限的。任务要运行下去,要先拿到通行证。限的。任务要运行下去,要先拿到通行证。如果信号量已被别的任

45、务占用,则该任务只如果信号量已被别的任务占用,则该任务只得被挂起,直到信号量被当前使用者释放掉。得被挂起,直到信号量被当前使用者释放掉。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统 我们知道酒店的桌子数是固定的,因此可以这样理解其最大桌子数就是计数器的初值,假设一人占用一张桌子,因此每进去一人,计数器就会自动减1,而只有出去一人时计数器才会自动加1。即就是说,如果计数器大于0,就可以进去吃饭,否则只好等待有人出来才能进去,这种计数信号就是信号量。酒店酒店人计数器计数器(能容纳的人数)(能容纳的人数)3 2 1 0人人人禁止其它客人进入人没有空位,不能再容

46、纳客人有空位,能再容纳1位客人事件信号量嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统事件信号量初始化,也可称做建立;初始化,也可称做建立;等信号,也可称做挂起;等信号,也可称做挂起;给信号或发信号。给信号或发信号。信号量初始化时要给信号量赋初值,等待信信号量初始化时要给信号量赋初值,等待信号量的任务表应清为空。号量的任务表应清为空。对信号量只能实施三种操作嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统事件消息邮箱 通过内核服务可以给任务发送消息。用一通过内核服务可以给任务发送消息。用一个指针型变量,通过内核服务,一个

47、任务或一个个指针型变量,通过内核服务,一个任务或一个中断服务程序可以把一则消息中断服务程序可以把一则消息(即一个指针即一个指针)放到放到邮箱里去。同样,一个或多个任务可以通过内核邮箱里去。同样,一个或多个任务可以通过内核服务接收这则消息。服务接收这则消息。 用来传递消息缓冲区指针的数据结构叫做消用来传递消息缓冲区指针的数据结构叫做消息邮箱。息邮箱。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统 消息是任务之间的一种通信手段,当同步过程需要传输具体内容时就不能使用信号量,此时可以选择消息邮箱,即通过内核服务可以给任务发送带具体内容的消息。 通过上述图解可知,

48、用来传递消息缓冲区指针的数据结构就是消息邮箱。 消息消息缓存区缓存区消息邮箱PCPC一个邮箱只能存放一个消息指针 事件消息邮箱嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统事件消息队列消息队列用于给任务发消息。通过内核消息队列用于给任务发消息。通过内核提供的服务,任务或中断服务子程序可以将提供的服务,任务或中断服务子程序可以将一条消息放入消息队列。同样,一个或多个一条消息放入消息队列。同样,一个或多个任务可以通过内核服务从消息队列中得到消任务可以通过内核服务从消息队列中得到消息。通常,消息队列传递的是一个指针,以息。通常,消息队列传递的是一个指针,以便任务

49、可以通过它发送和接收任意类型数据便任务可以通过它发送和接收任意类型数据(即消息,也就是指针指向的内容)。(即消息,也就是指针指向的内容)。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统n消息邮箱:实际上就是个数据结构,消息邮箱:实际上就是个数据结构,里面有个成员变量是个指针,该指针里面有个成员变量是个指针,该指针指向一条消息。指向一条消息。n消息队列:和消息邮箱基本相同,只消息队列:和消息邮箱基本相同,只是它可以放入多条消息,而邮箱通常是它可以放入多条消息,而邮箱通常只有一条消息。只有一条消息。事件消息队列嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌

50、入式实时操作系统嵌入式实时操作系统互斥(mutual exclusion)n资源的使用必须独占,叫做互斥。资源的使用必须独占,叫做互斥。n解决办法:解决办法: 禁止中断(关中断)禁止中断(关中断) 禁止抢占(禁止做任务切换)禁止抢占(禁止做任务切换) 利用信号量利用信号量 测试并置位测试并置位嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统禁止中断void Function (void)void Function (void) OS_ENTER_CRITICAL(); / OS_ENTER_CRITICAL(); /宏调用,关中断宏调用,关中断 / /* *

51、在这里处理共享数据在这里处理共享数据* */ / OS_EXIT_CRITICAL(); / OS_EXIT_CRITICAL(); /宏调用,开中断宏调用,开中断 嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统禁止抢占void Function (void)void Function (void) OSSchedLock(); / OSSchedLock(); /内核函数,调度上锁内核函数,调度上锁 / /* *在这里处理共享数据在这里处理共享数据( (中断是开着的中断是开着的) )* */ / OSSchedUnlock(); / OSSchedUnl

52、ock(); /内核函数,调度解锁内核函数,调度解锁 注意:这种办法只能保证多个任务之间的互斥,不能注意:这种办法只能保证多个任务之间的互斥,不能保证任务与中断服务程序之间的互斥保证任务与中断服务程序之间的互斥嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统同步一个工作的完成需要多个任务或者一个工作的完成需要多个任务或者 多个任多个任务与多个中断共同完成,它们之间必须互相配合、务与多个中断共同完成,它们之间必须互相配合、协调动作,甚至交换信息,这就要用到同步技术。协调动作,甚至交换信息,这就要用到同步技术。任务之间这种制约性的合作运行机制叫做任任务之间这种制

53、约性的合作运行机制叫做任务间的同步。系统中是依靠任务与任务之间相互务间的同步。系统中是依靠任务与任务之间相互发送消息来保证同步。发送消息来保证同步。定义同步方法信号量、事件标志组、消息邮箱、消息队列信号量、事件标志组、消息邮箱、消息队列嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统嵌入式操作系统中的基本概念前后台系统前后台系统调度调度临界区临界区进程与线程进程与线程任务与多任务任务与多任务任务切换任务切换死锁死锁不可剥夺型内核不可剥夺型内核可剥夺型内核可剥夺型内核可重入性可重入性优先级反转优先级反转事件事件互斥互斥同步同步对存储器要求对存储器要求嵌入式系统

54、及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统对存储器的要求 代码量代码量 = = 应用程序代码应用程序代码 + + 内核代码内核代码 RAMRAM总需求总需求 = = 应用程序的应用程序的RAMRAM需求需求 + (+ (任任务栈需求务栈需求 + + 最大中断嵌套栈需求最大中断嵌套栈需求) ) * * 任务数任务数嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统使用RTOS的得失失 更方便开发复杂系统(通过将复杂任务分解为简单子任更方便开发复杂系统(通过将复杂任务分解为简单子任务,且每个任务的开发相对独立,逻辑关系简单);提供务

55、,且每个任务的开发相对独立,逻辑关系简单);提供更好的实时性,更强大的功能。更好的实时性,更强大的功能。 运行操作系统本身需要占用一定的运行操作系统本身需要占用一定的RAM,操作系统,操作系统代码也要占用一定程序代码也要占用一定程序ROM(flash); 此外,运行内核也会需要一定的此外,运行内核也会需要一定的CPU时间时间得嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统 什么是实时系统? 什么是程序的可重入性? 什么是事件? 什么是前后台系统? 程序、进程和线程的区别? 解释一下信号量? 什么叫消息邮箱? 互斥是什么意思?作业嵌入式系统及应用嵌入式系统及

56、应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统内 容nuCOS-II操作系统简介nuCOS-II操作系统内核结构nuCOS-II操作系统任务管理nuCOS-II操作系统内存管理nuCOS-II操作系统时间管理nuCOS-II操作系统任务间的通讯nuCOS-II操作系统移植嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统uC/OS-II简介1、uC/OS-II是一个简单、高效的嵌入式实时操作系统内核。2、支持 x86、ARM、PowerPC、MIPS 等众多体系结构。3、可从www.ucos-网站上获得全部源码及其在各种体系结构平台上的移植范例。1、

57、uC/OS-II内核具有可抢占的实时多任务调度功能。2、提供了许多系统服务,如信号量、消息队列、邮箱、内存管理、时间函数等。3、这些功能可以根据不同的需求进行裁减。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统C/OS-II的各种商业应用n全世界有数百种产品在应用:n医疗器械移动电话路由器工业控制GPS 导航系统智能仪器更多嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统uC/OS-II简介 nC/OS 和C/OS-II 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编

58、写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统nuC/OS-II是一种基于优先级的可抢先的硬实时内核。自从年发布以来,在世界各地都获得了广泛的应用,它是一种专门为嵌入式设备设计的内核,目前已经被移植到多种不同结构的CPU上,运行在从位到位的各种系统之上。n尤其值得一提的是,该系统自从.51版本之后,就通过了美国FAA认证,可以运行在诸如航天器等对安全要求极为苛刻的系统之上。鉴于uC/OS-II可以免费获得代码,对于嵌入式RTOS而言,选择uC/OS无疑是最经济的选

59、择。uC/OS-II简介 嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统uC/OS-II嵌入式系统基本模型n严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,任务调度,任务管理,时间管理,内存管理和任务间的通信和同步内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统uC/OS操作系统的特点nuC

60、/OS是一个完成的,可移植、可固化、可裁减完成的,可移植、可固化、可裁减的抢占式实时的抢占式实时多任务操作系统内核内核。n主要用ANSI的C语言编写,少部分代码是汇编语言。嵌入式系统及应用嵌入式系统及应用-提高篇提高篇 嵌入式实时操作系统嵌入式实时操作系统抢占式内核n内核抢占(可抢占式内核)内核抢占(可抢占式内核):即当进程位于内核空间时,有一个更高优先级的任务出现时,如果当前内核允许抢占,则可以将当前任务挂起,执行优先级更高的进程。n非抢占式内核非抢占式内核:高优先级的进程不能中止正在内核中运行的低优先级的进程而抢占CPU运行。进程一旦处于核心态(例如用户进程执行系统调用),则除非进程自愿放

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论