电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

AUTOSAR任务管理

9页
  • 卖家[上传人]:博****1
  • 文档编号:483727210
  • 上传时间:2023-05-05
  • 文档格式:DOCX
  • 文档大小:15.30KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、该文件从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任务转换terminatewaitpreem

      2、ptstartsuspendedwaitingreadyactivatereleaseactivate: 一个新的任务被设置成ready状态通过一个系统服务。AUTOSAR操作系统将确保任务从第一条指令开始执行。(在多重激活情况下,任务激活不会立即改变任务状态。如果任务不是suspended状态,激活只会被记录,晚些时候被执行。)start: 一个ready任务被调度器选择去执行。preempt: 调度器决定去执行另一个任务,使得running任务进入ready状态。terminate: running任务通过调用系统服务导致它的状态转换为suspended状态。(注:任务只自己结束自己)以下两个状态转换为拓展任务特有wait: 通过一个系统服务引起状态转换到waiting状态,waiting任务等待一个事件,以能够继续操作。release: 至少一个任务等待的事件发生。1.1.3 激活一个任务使用操作系统服务ActivateTask或ChainTask激活任务。AUTOSAR OS不支持类C参数传递当启动一个任务时。任务激活的多重请求依据一致性类别,一个基础任务可以被激活一次或多次。

      3、“任务激活的多重请求”意味着AUTOSAR OS接收和记录已经被激活任务的平行激活。并行的多重请求的数目被定义在基础任务的一个特定的属性里在系统生产阶段。如果没有达到多重请求的最大数目,那么请求是排队的。基础任务激活的请求按照激活顺序里的优先级排序。1.1.4 任务切换机制调度器:决定哪一个任务应该开始运行和触发所有必须的AUTOSAR OS内部的活动的实体被称作调度器。在AUTOSAR OS 里调度器是一个资源。依据实现的调度策略,每当要进行一次任务切换时,调度器会被激活。任务可以保留调度器来避免任务切换直到调度器被该任务释放。1.1.5 任务优先级0是最低优先级,数值越大优先级越高。任务的优先级是静态定义的,在运行时不可以改变。但是在特殊情况下,操作系统可以给一个任务一个定义的更高的优先级(详见优先级上限协议)。BCC2和ECC2支持相同优先级有多个任务。在相同优先级的任务的开始顺序依据激活的顺序,通过拓展的任务进入waiting状态不会阻塞相同优先级里后面的任务的开始。被抢占的任务被认为是在它当前优先级的ready清单里第一个任务(最老的任务)。从waiting状态里释放的任务被

      4、当作它的优先级的ready序列里的最后的任务(最新的)。决定下一个要执行的任务的基本的步骤: 调度器搜索所有的处于ready/running状态的任务 从处于ready/running状态中的任务集合,调度器判定拥有最高优先级的任务集合 在拥有最高优先级处于ready/running状态的任务集内,调度器找到最老的任务。1.1.6 调度策略1.1.6.1 全抢占调度全抢占调度意思是一个目前处于running状态的任务可能在任何的指令处被重调度,通过操作系统预置的触发条件的发生。全抢占调度会使得running任务转化为ready状态,只要一个更高的优先级的任务处于ready状态。任务环境被保存以便被抢占的任务可以在被中断的位置继续。对于全抢占调度延迟时间与低优先级任务的运行时间无关。一些限制关于为了保存环境要求增加的RAM内存和为了同步任务而必须的特征的增强的复杂性。由于理论上一个可以在任何位置被重调度,对于与其它任务共享的数据的访问应该被同步。如果一个任务的代码段不能被抢占,那么它应该调用系统服务GetResource给调度器上锁。总之,重调度将在下面情况发生: 一个任务成功结束(Te

      5、rminateTask、ChainTask) 激活一个任务在任务层 显式wait调用如果一个到waiting状态的调用发生(WaitEvent) setting一个事件到一个waiting任务在任务层 释放资源在任务层上(ReleaseResource) 从中断层返回到任务层在中断服务程序运行期间,不执行重调度。1.1.6.2 非抢占调度如果任务切换只通过一个选择的显式的定义的系统服务执行(显示的重调度点),这样的调度策略被描述为非抢占调度。非抢占调度强加特殊的约束在可能的任务的时间要求上。特别是一个低优先级的running任务的非抢占区域,延迟一个高优先级任务的开始到下一个重调度点。在非抢占任务情况下,重调度将在下面情况发生: 一个任务成功结束(TerminateTask、ChainTask) 显式的调用调度器(Schedule) 发生到waiting状态的转换(WaitEvent)非抢占调度系统的实现可能规定(导致重调度的)操作系统服务可能只能在最高任务程序层被调用(不是在子函数里)1.1.6.3 任务组操作系统允许任务去结合抢占和非抢占调度方面通过定义任务组。对于有着同任务组内最

      6、高优先级一样或者更低优先级的那些任务,在这个任务组内的任务表现得像非可抢占任务:重调度将会发生在重调度点(理解:任务组内的低优先级任务不会被那些比他高的任务组外的任务抢占,因为它的优先级被调整到任务组内最高的优先级,任务组内外就表现的像非可抢占任务调度一样,因为没有任务会被抢占)。对于有着比任务组内最高优先级更高的优先级的那些任务,在任务组内的任务表现得像可抢占调度。通过使用内部的资源来定义组合。非可抢占任务是非常普遍使用的内部资源的概念;它们是拥有一个特别的分配了最高优先级的内部的资源的任务。非可抢占任务是一个特别的组合拥有一个资源有着相同的RES_SCHEDULER分配的优先级。1.1.6.4 混合的抢占调度如果可抢占调度和非可抢占调度被混合在相同的系统里,产生的调度策略被称为“混合的抢占”调度。在这个情况里调度策略依据running任务的抢占属性值。如果running任务是非可抢占的,那么非可抢占调度被执行。如果running任务是可抢占的,那么抢占调度被执行。一个非可抢占任务的定义在一个全抢占操作系统里有意义 如果任务的执行时间同任务切换的时间处于相同量级 如果RAM被用来提供

      7、空间去保存任务环境比较经济,或者 如果任务不能被抢占。1.1.6.5 选择调度策略软件开发者或系统集成者决定任务的执行顺序通过配置任务优先级和分配可抢占性作为一个任务属性。任务的类型(基础的或拓展的)独立于任务的调度类型(可抢占或非可抢占)。如果一个操作系统服务在运行,抢占和环境切换可能会被延迟直到服务完成。1.1.7 任务的结束在AUTOSAR操作系统里,一个任务只可以自我结束。每个任务应该结束自己在它的代码的最后。不调用TerminateTask或ChainTask结束任务被严格禁止且导致未定义的行为。1.2 任务管理APIStatusType ActivateTask(TaskType )输入参数:TaskID 任务引用返回Status值标准的: 没有错误,E_OK 太多次任务激活,E_OS_LIMIT拓展的: 任务无效,E_OS_ID一致性类别:全类别任务从suspended状态转换到ready状态。操作系统确保任务代码从第一条语句开始执行。该服务可能在中断层或任务层被调用。在调用该服务后的重调度依赖该调用的来源(ISR,非可抢占任务,可抢占任务)。如果返回E_OS_LIMIT

      8、激活被忽略。当一个拓展任务从suspended状态转换到ready状态所有的它的事件被清除。StatusType TerminateTask(void)返回Status值标准的:不返回到调用层拓展的: 任务仍然占据资源,E_OS_RESOURCE 调用在中断层,E_OS_CALLEVEL一致性类别:全类别该服务导致调用任务的结束。调用任务从running状态转换到suspended状态。分配到调用任务的内部的资源被自动的释放。其他的被该任务占据的资源应该被释放在调用TerminateTask之前。如果一个资源依然被占据在标准版本OS状态里该行为未定义。如果有着拓展状态的版本os被使用,服务在错误状态下返回,且提供一个可以被评估的状态。如果服务TerminateTask被成功调用,强制一个重调度。StatusType ChainTask(TaskType )输入参数:TaskID返回Status值标准的: 不返回到调用层 太多次任务激活,E_OS_LIMIT拓展的: 任务是无效的,E_OS_ID 调用任务仍然占据资源,E_OS_RESOURCE 调用在中断层,E_OS_CALLEVEL一致性类别:全类别该服务导致调用任务的结束。在调用任务结束后,一个随后的任务被激活。使用该服务,确保随后的任务最早在调用任务结束后开始去运行。如果随后的任务与当前的任务完全相同,不会导致多重请求。该任务不会转换成suspended状态,但是会立即再一次变成ready状态。分配到调用任务内部的资源被自动释放,即使随后的任务同当前任务完全相同。其它的被调用任务占据的资源应该在ChainTask被调用之前被释放。如果一个资源仍然被占据在标准的状态里该行为是未定义的。如果调用成功,ChainTask不返回到调用层状态不能被评估。在错误情况下服务放回到调用任务且提供一个状态,用来被评估。如果返回E_OS_LIMIT激活被忽略。当一个拓展的任务从suspended状态转换为ready状态所有它的事件被清除。StatusType Schedule(void)返回Status值标准的: 没有错误,E_OK拓展的: 调用在中断层,E_OS_CALLEVEL 调用任务仍然占据资源,E_OS_RESOURCE一致性类别:全类别如果一个更高等级任务处于re

      《AUTOSAR任务管理》由会员博****1分享,可在线阅读,更多相关《AUTOSAR任务管理》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.