天脉(ACoreOS)操作系统培训第二章:多任务调度.ppt
《天脉(ACoreOS)操作系统培训第二章:多任务调度.ppt》由会员分享,可在线阅读,更多相关《天脉(ACoreOS)操作系统培训第二章:多任务调度.ppt(58页珍藏版)》请在三一办公上搜索。
1、第二章多任务调度,提纲,引言任务属性任务控制,2,引言,解决问题什么是实时性?多任务优点任务和任务状态,3,实时性,概念实时性反应系统响应外部事件的能力。确定性系统对外部事件响应的最坏时间是可以预知的。延迟事件发生到事件被响应之间的时间间隔,4,实时性,响应性确定性关心的是系统在识别一个外部事件(通常以中断的形式到达)之前有多少延迟;而响应性关心的是识别外部事件后,系统要花多长时间来服务该事件。响应时间确定性和响应性结合在一起构成了系统对于外部事件的响应时间。主要包括中断响应时间和任务响应时间。,5,实时系统要求,能够控制多个外部功能组件独立的功能组件异步执行的功能组件同步执行的功能组件快速执
2、行快速响应低开销确定性操作“A late answer is a wrong answer”,6,多任务示例,机器人控制,7,如何设计一个系统去控制机器人的胳膊?,单任务实现,一个任务循环控制所有的功能 arm()for(;)if(shoulder needs moving)moveShoulder();if(elbow needs moving)moveElbow();if(wrist needs moving)moveWrist();.,8,单任务实现优缺点,缺点以不同频率控制各个功能较为困难以不同优先级级别控制各个功能较为困难没有抢占能力优点没有任务切换的开销,9,多任务实现,创建独立的
3、任务,用于操作每个功能点joint()for(;)waitForMove();/*等待joint移动命令*/moveJoint();每个任务轮流处于“ready”和“waiting”任务允许等待指定时间间隔的延迟外部事件(如,硬件中断),10,多任务实现优点,对于每个任务使用不同的等待命令,支持每个任务以不同的频率实现相应功能采用基于优先级的调度策略,支持在多个任务同时就绪的情况下,优先地执行最重要的任务采用抢占式调度,当重要的任务就绪时,可以立刻得到执行(通过抢占较低重要程度的任务,优先执行)使得添加新的功能组件更加容易,11,任务概念,概念具有独立功能的无限循环的程序段的一次运行活动,是实
4、时内核调度的单位特性动态性并行性异步独立性任务内容代码数据堆栈上下文环境,12,任务管理与调度,任务管理实时操作系统内核的主要工作,完成任务创建、任务删除、任务调度和改变任务优先级等操作。任务调度多任务系统中,在同一时刻通常会有多个任务处于活动状态,操作系统需要对资源进行管理,在任务之间实现资源(如CPU、内存、I/O设备等)的共享。CPU作为一种重要的资源,通过操作来确定如何在任务之间共享CPU就被称为任务调度。,13,任务状态及转换,任务状态就绪态-任务等待获取处理器资源运行态-任务获得处理器资源,任务代码在执行阻塞态-任务在等待某种事件发生,包括等待资源、延时、挂起三种类型休眠态-任务被
5、创建,但未被启动任务状态转换,14,任务控制块,任务控制块任务管理通过操作任务控制块(TCB)来实现;每个任务对应一个任务控制块任务控制块主要包括如下两个方面信息:OS 控制信息任务名任务标识符任务优先级任务状态其它CPU上下文信息程序指针PC栈指针CPU寄存器FPU寄存器,15,任务队列,16,Kernel,TCB,TCB,TCB,阻塞态(挂起),阻塞态(等待资源),阻塞态(延迟),就绪态,CPU,运行态,任务队列,操作系统内核(kernel)管理各类任务,基于各类操作实现操作系统的状态转换每个独立的阻塞队列可能等待不同的事件。例如,事件可能为释放的特定信号量,或通过指定消息队列到达的消息当
6、任务等待资源并等待指定时间长度,此时任务既在等待资源队列上,也在时间等待队列上就绪队列链不仅仅是简单的双向链表,同时也是采用优先级位表的优先级队列,插入和删除的时间为稳定的当各个队列被操作时,将进入内核状态。在内核中,根据调度规则将检查重调度(上下文切换)是否发生,17,任务切换,当一个任务停止执行且有新任务启动,则上下文切换或重调度将发生为调度新任务执行,内核必须:,18,保存被切换任务(old)执行上下文到TCB中恢复切换到任务(new)保存上下文到CPU等相关资源中,系统实现时,必须保证任务切换的速度较快!,上下文切换类型,同步上下文切换发生,当当前执行任务阻塞、延迟,或挂起自身操作引起
7、更高优先级任务就绪运行(发生频率很低)主动降低当前任务自身优先级异步上下文切换一般发生在中断服务程序(ISR)后操作引起更高优先级任务就绪执行当任务阻塞资源、延时或挂起自身时,通常称为阻塞ISR全称为Interrupt Service Routine,当发生硬件中断时,连接的ISR将被执行。ISR 具有最高的优先执行,除非中断被屏蔽。,19,优先级调度,不同的应用执行时可能有不同的优先顺序,具有高优先顺序的任务应先被执行;优先级调度基于分配给应用的不同优先级级别;最高优先级的任务当处于就绪态(未等待资源、延时或挂起)时,应能够获取CPU资源;优先级调度可能发生如下场景:中断服务程序结束点(如,
8、系统时钟tick)任务因为等待资源而处于等待态任务由其他状态转化为就绪态时,20,优先级调度,任务重调度(上下文切换)不会因为任务执行的时间过长而发生(时间片轮转算法在随后讲稿中说明)当由于中断引起重调度时,通常由于中断服务程序调用内核函数。一个特例就是,当系统时钟中断发生时,对于任务的超时处理可能发生重调度任务处理优先顺序更多是由于任务处理时间要求决定的,而不是任务自身的重要程度。然而,任务的重要程度和处理时间要求是模糊的,21,优先级调度示意图,系统缺省情况下,同等优先级任务不会抢占彼此!,22,高优先级 任务A,中等优先级 任务B,低优先级任务 C,事件,事件,优先级调度,重调度发生,如
9、果当前执行任务阻塞或延时更高优先级任务变为就绪当更高优先级任务获得CPU控制权,则称为更高优先级任务抢占当前运行任务如果任务B不阻塞或等待资源,那么任务C将不会执行,23,时间片轮转调度(1),1)时间片长度在生成操作系统时配置,系统运行过程中该长度不可改变;2)如果图中任务A在时间片窗口中主动放弃CPU,则任务B直接运行。在任务A再次就绪时,将把时间片中余下的时间长度执行完,并发生任务切换,24,时间片长度(固定值,可配置),时间片轮转调度(2),优先级调度优先于时间片轮转调度,时间片轮转仅限于同优先级的任务基于优先级的调度,任务切换可以随时发生;对于时间片轮转调度,任务切换仅发生在每一个时
10、钟TICK到达时时间片轮转调度使得所有同优先级的任务平等地共享CPU,25,时间片长度,允许同优先级任务抢占彼此,时间片轮转必须被打开生成操作系统时,配置时间片长度创建任务时,配置支持时间片轮转调度的选项优先级抢占式调度优先于时间片轮转时间片轮转仅限于拥有同优先级的任务基于优先级抢占式调度能够发生任何时间时间片轮转仅仅发生在指定长度的时间间隔后时间片轮转调度仅适用于配置时间片轮转调度选项的任务,26,空间访问方式,所有任务驻留在同一个、公用的地址空间;所有任务都运行在特权级(系统态)。,27,text,data,bss,RAM,fooLib,int fooVal;void fooSet(int
11、 x)fooVal=x;,fooSet(4),tTaskA,fooSet(99),tTaskB,多任务工作机制示意,28,Interrupt,Device,Device,Network,Task1,ISR,Task2,Interrupt,Task3,Buffer,Task4,多任务工作机制说明,上图描述了ACoreOS多任务机制在单个CPU上,通过任务间通信机制传递消息信号量用于保护任务间共享的、受保护数据定时器和其他中断去触发任务执行I/O系统机制通过read/write访问硬件设备,29,实时性考虑,能够控制多个外部组件多任务机制保证系统管理多个任务每个任务可以分配多个独立的功能服务任务通
12、过任务内通信的方式彼此之间相互合作高速运行任务为轻量级调度单位快速的任务切换机制降低系统负载确定性操作抢占式优先级调度保证高优先级任务得到快速运行,30,任务管理,任务创建、删除任务控制重启动挂起/解挂延迟任务变量、任务挂钩任务信息,31,ACoreOS任务管理相关的接口包括两种类型:ACoreOS-API和VxWorks兼容包任务接口。本编程手册详细介绍ACoreOS-API相关管理接口。VxWorks兼容包接口和VxWorks状态基本一致,请参考VxWorks编程手册和程序员手册。,提纲,引言任务属性任务控制,32,任务属性,任务创建任务名字和标识符任务优先级任务栈任务属性任务删除删除安全
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天脉 ACoreOS 操作系统 培训 第二 任务 调度

链接地址:https://www.31ppt.com/p-2901904.html