实时操作系统(RTOS)培训.ppt
《实时操作系统(RTOS)培训.ppt》由会员分享,可在线阅读,更多相关《实时操作系统(RTOS)培训.ppt(81页珍藏版)》请在课桌文档上搜索。
1、实时操作系统(RTOS)培训,实时系统,概念实时系统是指在确定的时间内完成规定功能,并能对外部异步事件作出正确响应的计算机系统实时系统分类硬实时系统:结果迟到产生灾难性结果FIRM 实时系统:结果迟到会产生难以接受的质量上的降低软实时系统:结果迟到会引起质量下降,系统可以自行恢复衡量系统实时性的3个指标:响应时间(Response Time)生存时间(Survival Time)吞吐量(Throughput),嵌入式系统,嵌入式系统通常都是实时系统,其特征为系统的正确性不但依赖于运行逻辑结果的正确性,而且依赖于得到结果所花费的时间系统对于各种外部输入在预定时间内能得到可以预测的结果嵌入式系统通
2、常使用RTOS,其特征为在不同的系统负载下,行为可以预测支持基于优先级的调度MEMORY模型对于RTOS的性能十分重要通常都需要一个时钟来处理任务的同步,S-STATIC D-DYNAMIC,比较,嵌入式系统(续),硬件特性体积小,集成效率高面向特定应用低功耗,能在恶劣环境下工作软件特性软件的研发与硬件紧密相关软件代码要求高效率和高可靠性软件一般固化在FLASH或ROM中应用工业过程控制军事电子设备和现代武器网络通信设备消费电子产品,嵌入式实时系统软件特征,实时性:反应时间要快,按要求的间隔输出正确时间信号给实时的控制设备多任务并发性:利用适当的策略控制多任务的执行,提高资源的利用效率有处理异
3、步事件的能力快速启动,并有出错处理和自动复位功能嵌入式实时软件是应用程序和操作系统两种软件的一体化程序嵌入式实时软件的开发需要独立的开发平台和交叉开发环境,主要的嵌入式实时操作系统,VxWorks使用最广、市场占有率最高的嵌入式实时操作系统,美国WindRiver公司产品VRTX老牌嵌入式实时操作系统pSOSISI公司推出,现已被WindRiver公司收购WinCEMicrosoft公司推出,实时性不太好,主要用于掌上系统Palm OS3Com公司推出,在PDA市场占有很大份额嵌入式Linux源代码免费开放,eCOS是Redhat推出的一款嵌入式LINUX操作系统,前后台系统,通常应用于不复杂
4、的小型系统应用程序是一个无限的循环,这部分可以看成后台行为(background)中断服务程序处理异步事件,这部分可以看成前台行为(foreground)后台也可以叫做任务级,前台也叫中断级,前后台系统(续),多任务系统,CPU在许多任务之间转换、调度,轮番服务于一系列任务中的某一个优点:使CPU 的利用率得到最大的发挥使应用程序模块化可以将很复杂的应用程序层次化应用程序将更容易设计与维护,RTOS组成,操作系统是硬件与用户之间的一层系统软件,负责管理整个系统,同时将硬件细节与用户隔离开来为用户提供一个更容易理解和进行程序设计的接口操作系统的质量以它的体系结构为基础,确保系统的性能、可靠性、灵
5、活性、可移植性、可扩展性等,同时定义了硬件与软件的界面,操作系统内部各构件的组织关系系统与用户的接口RTOS资源分配必须考虑到实时性要求合理分配优先级支持优先级抢占提供任务同步和互斥支持不同任务之间的数据共享支持外部事件(中断)响应系统可剪裁,由于资源限制,所采用的操作系统应该有极强的针对性,因此操作系统功能够用即可易于扩展,由于嵌入式设备的功能多样化,要求嵌入式操作系统除提供基本的内核支持外,还需提供越来越多的可扩展功能模块(含用户扩展),如:针对特有应用提供的协议支持、协议扩展,功耗控制等等,RTOS组成(续),HAL,RTOS 基本内核线程线程管理时钟管理中断设备驱动管理通信管理存储管理
6、,RTOS扩展内核接口协议管理其它,API,RTOS组成(续),基本内核:嵌入式RTOS 中最核心最基础的部分任务(线程/线程)管理:负责系统中任务状态的变迁中断(包括时钟中断)管理:开关中断,完成现场切换和保持任务(线程/线程)通信管理:信号量、事件、消息队列等存储管理:分配存储器空间扩展内核:为方便用户使用而对RTOS 进行的扩展根据具体应用不同所做的扩展不同CAM应用中表现为对CI接口协议进行管理设备驱动程序接口:RTOS 内核与外部硬件之间的一个硬件抽象层定义软件与硬件的界限,方便RTOS 的移植升级应用编程接口:建立在RTOS 编程接口之上的面向应用领域的编程接口方便用户编写特定领域
7、的嵌入式应用程序,RTS的响应时间,及时性是实时系统最为重要的特性设计者应该能预测实时系统的行为同步任务由时钟来同步异步事件通常由中断驱动,一个多任务RTOS的事例,Resource allocation&mgmt,Task Scheduling&Dispatch,Real time clock,Interrupt Service routines,I/O Subsystem,File MGMT,System tasks,Application tasks,User Level,OS Level,Command processor,资源,任何为任务所占用的实体都可称为资源。资源可以是输入输出设
8、备,例如打印机、键盘、显示器,资源也可以是一个变量,一个结构或一个数组等可以被一个以上任务使用的资源叫做共享资源为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥(mutual exclusion),任务,一个任务也称作一个线程,是一个简单的程序,该程序可以认为CPU 完全只属该程序自己每个任务都是整个应用的某一部分,被赋予一定的优先级,有自己的一套CPU 寄存器和栈空间多任务系统中,任意时刻只有一个任务占有CPU资源一个任务通常是一个无限的循环,当任务完成以后,任务可以自我删除,TCB(任务控制块),TCB在任务建立时将被赋值(初始化)TCB是一个数据结构,用来保存
9、该任务的状态:堆栈指针、堆栈大小、任务状态、任务优先级任务重新得到CPU 使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行TCBs全部驻留在RAM 中,任务状态,每个任务都处在以下5 种状态之一:休眠态,就绪态、运行态、挂起态和被中断态休眠态:该任务驻留在内存中,但并不被内核所调度就绪态:该任务已经准备好运行,但由于优先级比正运行的任务优先级低,还暂时不能运行运行态:掌握了CPU 的控制权,正在运行中挂起态:也叫等待态,在等待某一事件的发生中断态:发生中断时,进入相应的中断服务,任务状态变迁图,WAITING,DORMANT,READY,RUNNING,ISR,任务状态变迁
10、,就绪-运行调度程序选择一个新的线程运行运行-就绪运行线程用完了时间片运行线程被高优先级线程抢占运行-等待当一线程必须等待时等待某外设的I/O 操作等待某共享资源由暂不能使用变成能使用状态等待定时脉冲的到来或等待超时信号的到来以结束目前的等待等待-就绪当所等待的事件发生时,任务切换,也称为上下文切换(Context Switch)当多任务内核决定运行另外的任务时:保存正在运行任务的当前状态(Context),即CPU 寄存器中的全部内容。这些内容保存在任务自己的栈区之中把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU 的寄存器,并开始下一个任务的运行任务切换过程增加了应用程序的额外
11、负荷,任务调度,任务调度就是按一定的调度算法从就绪任务中选中一个任务到处理器上运行主要工作:(1)记录当前任务状态(如指令计数器、状态寄存器、通用寄存器等)到TCB;(2)根据调度算法,在就绪任务中选一个任务;(3)回收处理机并分配给选中的任务。,任务调度方式,非抢占式调度抢占式调度由于嵌入式操作系统对实时性的较强要求,因此基本上使用抢占式调度。调度算法FIFO:先来先服务短作业优先基于优先级:时间片轮转(Round Robin):固定时间片 可变时间片多级队列算法多级反馈队列算法其它组合策略调度算法,非抢占式调度,抢占式调度,可重入性(Reentrancy),可重入型函数可以被一个以上的任务
12、调用,而不必担心数据的破坏可重入型函数任何时候都可以被中断,一段时间以后又可以运行编写可重入型函数需遵循的规则:使用局部变量,即变量保存在CPU寄存器或堆栈中尽量不使用static或extern变量,任务优先级,每个任务都有其优先级。任务越重要,赋予的优先级应越高,eCos任务及优先级,优先级0255,优先级的最低3bits忽略,因此07、815各组内的优先级相同,组外数值越大,优先级越高eCos任务结构:,root,task1,task2,task3,task4,task5,idle,任务管理,创建任务(CreateTask)删除任务(DeleteTask)挂起任务()唤醒任务()改变任务优
13、先级()获取任务优先级()获取当前任务ID,任务管理(sidsa API),t_create ULONG t_create(char name4,ULONG prio,ULONG sstack,ULONG ustack,ULONG flags,ULONG*tid)t_start ULONG t_start(ULONG tid,ULONG mode,void*start_addr,ULONG targs)t_delete ULONG t_delete(ULONG tid)t_suspend ULONG t_suspend(ULONG tid)t_resume ULONG t_resume(ULO
14、NG tid)t_wkafter ULONG tm_wkafter(ULONG ticks),任务管理(kernel API),cyg_thread_createcyg_thread_exitcyg_thread_killcyg_thread_deletecyg_thread_yieldcyg_thread_delaycyg_thread_suspendcyg_thread_resumecyg_thread_release,任务管理(kernel API 续),cyg_thread_get_prioritycyg_thread_get_current_prioritycyg_thread_se
15、t_prioritycyg_thread_selfcyg_thread_idle_threadcyg_thread_get_stack_basecyg_thread_get_stack_sizecyg_thread_measure_stack_usagecyg_thread_get_nextcyg_thread_get_infocyg_thread_find,任务间通信及同步,共享内存(Share Memory)信号量(Semaphore)互斥量(Mutex)事件标志(Event Flag)消息邮箱(Message Box)消息队列(Message Queue),信号量(Semaphore),
16、信号量用于:控制共享资源的使用权(满足互斥条件)标志某事件的发生使两个任务的行为同步一个信号量是一个16位变量,初值为065535,值为0表示资源处于锁住状态,非0表示有多个资源,供多个任务访问信号量表示符号:钥匙或旗帜,信号量的P、V操作,等待信号量(P操作):如果信号量值大于0,则信号量值减1,任务得以继续运行如果信号量的值为0,等待信号量的任务被挂起并列入等待信号量任务表,释放信号量(V操作):如果没有任务在等待信号量,信号量的值仅仅是简单地加1如果有任务在等待该信号量,那么就会有一个任务进入就绪态,信号量的值也就不加1,P、V操作为原语操作,原语(primitive or atomic
17、 action):是由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性即原语的执行必须是连续的,在执行过程中不允许被中断实现:开关中断信号量的使用:必须置一次且只能置一次初值初值不能为负数 只能执行P、V操作,信号量的P、V操作(续),用P、V操作解决线程间互斥问题,优先级反转问题,优先级反转问题(续),设计中应注意避免产生优先级反转优先级继承(Priority inheritance)可解决优先级反转问题,经典的生产者消费者问题,消费者,生产者,经典的生产者消费者问题(续1),同步问题:P线程不能往“满”的缓冲区中放产品,设置信号量为S1 Q线程不能从“空”的缓冲区中取产品,设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实时 操作系统 RTOS 培训
链接地址:https://www.desk33.com/p-248326.html