电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

AUTOSAR任务管理

  • 资源ID:483727210       资源大小:15.30KB        全文页数:9页
  • 资源格式: DOCX        下载积分:15金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要15金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

AUTOSAR任务管理

该文件从os223.pdf,依据AUTOSAR OS规范进行了部分调整。作者:邓孔宏1.1 任务管理1.1.1 任务类别任务分为两个类别:· 基础任务:只有running,suspended,ready三个状态。基础任务在三种情况下释放处理器资源:任务结束;操作系统切换到高优先级任务;中断发生导致处理器切换到一个中断服务程序ISR。· 拓展任务:较之基础任务,多了一个waiting状态。拓展任务被允许调用系统服务WaitEvent。1.1.2 任务状态及转换任务状态running 在任何时间点只有一个任务能处于running状态,CPU将会被分配到该任务,该任务的指令将被执行。ready 所有的任务要转换为running状态都必须先处于ready状态,处于ready状态的任务只需等待分配处理器就能转换为running状态。调度器决定哪一个ready状态的任务将是下一个执行的任务。suspended 处于suspended的任务是被动的,可以被激活。waiting 处于waiting状态的任务将不能继续执行,它将等待至少一个事件发生。running任务转换terminatewaitpreemptstartsuspendedwaitingreadyactivatereleaseactivate: 一个新的任务被设置成ready状态通过一个系统服务。AUTOSAR操作系统将确保任务从第一条指令开始执行。(在多重激活情况下,任务激活不会立即改变任务状态。如果任务不是suspended状态,激活只会被记录,晚些时候被执行。)start: 一个ready任务被调度器选择去执行。preempt: 调度器决定去执行另一个任务,使得running任务进入ready状态。terminate: running任务通过调用系统服务导致它的状态转换为suspended状态。(注:任务只自己结束自己)以下两个状态转换为拓展任务特有wait: 通过一个系统服务引起状态转换到waiting状态,waiting任务等待一个事件,以能够继续操作。release: 至少一个任务等待的事件发生。1.1.3 激活一个任务使用操作系统服务ActivateTask或ChainTask激活任务。AUTOSAR OS不支持类C参数传递当启动一个任务时。任务激活的多重请求依据一致性类别,一个基础任务可以被激活一次或多次。“任务激活的多重请求”意味着AUTOSAR OS接收和记录已经被激活任务的平行激活。并行的多重请求的数目被定义在基础任务的一个特定的属性里在系统生产阶段。如果没有达到多重请求的最大数目,那么请求是排队的。基础任务激活的请求按照激活顺序里的优先级排序。1.1.4 任务切换机制调度器:决定哪一个任务应该开始运行和触发所有必须的AUTOSAR OS内部的活动的实体被称作调度器。在AUTOSAR OS 里调度器是一个资源。依据实现的调度策略,每当要进行一次任务切换时,调度器会被激活。任务可以保留调度器来避免任务切换直到调度器被该任务释放。1.1.5 任务优先级0是最低优先级,数值越大优先级越高。任务的优先级是静态定义的,在运行时不可以改变。但是在特殊情况下,操作系统可以给一个任务一个定义的更高的优先级(详见优先级上限协议)。BCC2和ECC2支持相同优先级有多个任务。在相同优先级的任务的开始顺序依据激活的顺序,通过拓展的任务进入waiting状态不会阻塞相同优先级里后面的任务的开始。被抢占的任务被认为是在它当前优先级的ready清单里第一个任务(最老的任务)。从waiting状态里释放的任务被当作它的优先级的ready序列里的最后的任务(最新的)。决定下一个要执行的任务的基本的步骤:· 调度器搜索所有的处于ready/running状态的任务· 从处于ready/running状态中的任务集合,调度器判定拥有最高优先级的任务集合· 在拥有最高优先级处于ready/running状态的任务集内,调度器找到最老的任务。1.1.6 调度策略1.1.6.1 全抢占调度全抢占调度意思是一个目前处于running状态的任务可能在任何的指令处被重调度,通过操作系统预置的触发条件的发生。全抢占调度会使得running任务转化为ready状态,只要一个更高的优先级的任务处于ready状态。任务环境被保存以便被抢占的任务可以在被中断的位置继续。对于全抢占调度延迟时间与低优先级任务的运行时间无关。一些限制关于为了保存环境要求增加的RAM内存和为了同步任务而必须的特征的增强的复杂性。由于理论上一个可以在任何位置被重调度,对于与其它任务共享的数据的访问应该被同步。如果一个任务的代码段不能被抢占,那么它应该调用系统服务GetResource给调度器上锁。总之,重调度将在下面情况发生:· 一个任务成功结束(TerminateTask、ChainTask)· 激活一个任务在任务层· 显式wait调用如果一个到waiting状态的调用发生(WaitEvent)· setting一个事件到一个waiting任务在任务层· 释放资源在任务层上(ReleaseResource)· 从中断层返回到任务层在中断服务程序运行期间,不执行重调度。1.1.6.2 非抢占调度如果任务切换只通过一个选择的显式的定义的系统服务执行(显示的重调度点),这样的调度策略被描述为非抢占调度。非抢占调度强加特殊的约束在可能的任务的时间要求上。特别是一个低优先级的running任务的非抢占区域,延迟一个高优先级任务的开始到下一个重调度点。在非抢占任务情况下,重调度将在下面情况发生:· 一个任务成功结束(TerminateTask、ChainTask)· 显式的调用调度器(Schedule)· 发生到waiting状态的转换(WaitEvent)非抢占调度系统的实现可能规定(导致重调度的)操作系统服务可能只能在最高任务程序层被调用(不是在子函数里)1.1.6.3 任务组操作系统允许任务去结合抢占和非抢占调度方面通过定义任务组。对于有着同任务组内最高优先级一样或者更低优先级的那些任务,在这个任务组内的任务表现得像非可抢占任务:重调度将会发生在重调度点(理解:任务组内的低优先级任务不会被那些比他高的任务组外的任务抢占,因为它的优先级被调整到任务组内最高的优先级,任务组内外就表现的像非可抢占任务调度一样,因为没有任务会被抢占)。对于有着比任务组内最高优先级更高的优先级的那些任务,在任务组内的任务表现得像可抢占调度。通过使用内部的资源来定义组合。非可抢占任务是非常普遍使用的内部资源的概念;它们是拥有一个特别的分配了最高优先级的内部的资源的任务。非可抢占任务是一个特别的组合拥有一个资源有着相同的RES_SCHEDULER分配的优先级。1.1.6.4 混合的抢占调度如果可抢占调度和非可抢占调度被混合在相同的系统里,产生的调度策略被称为“混合的抢占”调度。在这个情况里调度策略依据running任务的抢占属性值。如果running任务是非可抢占的,那么非可抢占调度被执行。如果running任务是可抢占的,那么抢占调度被执行。一个非可抢占任务的定义在一个全抢占操作系统里有意义· 如果任务的执行时间同任务切换的时间处于相同量级· 如果RAM被用来提供空间去保存任务环境比较经济,或者· 如果任务不能被抢占。1.1.6.5 选择调度策略软件开发者或系统集成者决定任务的执行顺序通过配置任务优先级和分配可抢占性作为一个任务属性。任务的类型(基础的或拓展的)独立于任务的调度类型(可抢占或非可抢占)。如果一个操作系统服务在运行,抢占和环境切换可能会被延迟直到服务完成。1.1.7 任务的结束在AUTOSAR操作系统里,一个任务只可以自我结束。每个任务应该结束自己在它的代码的最后。不调用TerminateTask或ChainTask结束任务被严格禁止且导致未定义的行为。1.2 任务管理APIStatusType ActivateTask(TaskType <TaskID>)输入参数:TaskID 任务引用返回Status值标准的: · 没有错误,E_OK · <TaskID>太多次任务激活,E_OS_LIMIT拓展的: · 任务<TaskID>无效,E_OS_ID一致性类别:全类别任务<TaskID>从suspended状态转换到ready状态。操作系统确保任务代码从第一条语句开始执行。该服务可能在中断层或任务层被调用。在调用该服务后的重调度依赖该调用的来源(ISR,非可抢占任务,可抢占任务)。如果返回E_OS_LIMIT激活被忽略。当一个拓展任务从suspended状态转换到ready状态所有的它的事件被清除。StatusType TerminateTask(void)返回Status值标准的:不返回到调用层拓展的: · 任务仍然占据资源,E_OS_RESOURCE · 调用在中断层,E_OS_CALLEVEL一致性类别:全类别该服务导致调用任务的结束。调用任务从running状态转换到suspended状态。分配到调用任务的内部的资源被自动的释放。其他的被该任务占据的资源应该被释放在调用TerminateTask之前。如果一个资源依然被占据在标准版本OS状态里该行为未定义。如果有着拓展状态的版本os被使用,服务在错误状态下返回,且提供一个可以被评估的状态。如果服务TerminateTask被成功调用,强制一个重调度。StatusType ChainTask(TaskType <TaskID>)输入参数:TaskID返回Status值标准的: · 不返回到调用层 · <TaskID>太多次任务激活,E_OS_LIMIT拓展的: · 任务<TaskID>是无效的,E_OS_ID · 调用任务仍然占据资源,E_OS_RESOURCE · 调用在中断层,E_OS_CALLEVEL一致性类别:全类别该服务导致调用任务的结束。在调用任务结束后,一个随后的任务<TaskID>被激活。使用该服务,确保随后的任务最早在调用任务结束后开始去运行。如果随后的任务与当前的任务完全相同,不会导致多重请求。该任务不会转换成suspended状态,但是会立即再一次变成ready状态。分配到调用任务内部的资源被自动释放,即使随后的任务同当前任务完全相同。其它的被调用任务占据的资源应该在ChainTask被调用之前被释放。如果一个资源仍然被占据在标准的状态里该行为是未定义的。如果调用成功,ChainTask不返回到调用层状态不能被评估。在错误情况下服务放回到调用任务且提供一个状态,用来被评估。如果返回E_OS_LIMIT激活被忽略。当一个拓展的任务从suspended状态转换为ready状态所有它的事件被清除。StatusType Schedule(void)返回Status值标准的: · 没有错误,E_OK拓展的: · 调用在中断层,E_OS_CALLEVEL · 调用任务仍然占据资源,E_OS_RESOURCE一致性类别:全类别如果一个更高等级任务处于re

注意事项

本文(AUTOSAR任务管理)为本站会员(博****1)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.