AUTOSAR OS规范(1部分).docx

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AUTOSAR OS规范(1部分)

AUTOSAR OS构架概述 AUTOSAR OS在AUTOSAR构架中的位置 AUTOSAR OS 概念 任务管理 任务类别 任务分为两个类别: 基础任务:只有running,suspended,ready三个状态。 基础任务在三种情况下释放处理器资源:任务结束;操作系统切换到高优先级任务;中断发生导致处理器切换到一个中断服务程序ISR。 拓展任务:较之基础任务,多了一个waiting状态。拓展任务被允许调用系统服务WaitEvent。 任务状态及转换 任务状态 running 在任何时间点只有一个任务能处于running状态,CPU将会被分配到该任务,该任务的指令将被执行。 ready 所有的任务要转换为running状态都必须先处于ready状态,处于ready状态的任务只需等待分配处理器就能转换为running状态。调度器决定哪一个ready状态的任务将是下一个执行的任务。 suspended 处于suspended的任务是被动的,可以被激活。 waiting 处于waiting状态的任务将不能继续执行,它将等待至少一个事件发生。 running 任务转换 terminate wait preempt start suspended waiting ready activate release activate: 一个新的任务被设置成ready状态通过一个系统服务。AUTOSAR操作系统将确保任务从第一条指令开始执行。 (在多重激活情况下,任务激活不会立即改变任务状态。如果任务不是suspended状态,激活只会被记录,晚些时候被执行。) start: 一个ready任务被调度器选择去执行。 preempt: 调度器决定去执行另一个任务,使得running任务进入ready状态。 terminate: running任务通过调用系统服务导致它的状态转换为suspended状态。 (注:任务只自己结束自己) 以下两个状态转换为拓展任务特有 wait: 通过一个系统服务引起状态转换到waiting状态,waiting任务等待一个事件,以能够继续操作。 release: 至少一个任务等待的事件发生。 激活一个任务 使用操作系统服务ActivateTask或ChainTask激活任务。 AUTOSAR OS不支持类C参数传递当启动一个任务时。 任务激活的多重请求 依据一致性类别,一个基础任务可以被激活一次或多次。“任务激活的多重请求”意味着AUTOSAR OS接收和记录已经被激活任务的平行激活。 并行的多重请求的数目被定义在基础任务的一个特定的属性里??系统生产阶段。如果没有达到多重请求的最大数目,那么请求是排队的。基础任务激活的请求按照激活顺序里的优先级排序。 任务切换机制 调度器:决定哪一个任务应该开始运行和触发所有必须的AUTOSAR OS内部的活动的实体被称作调度器。 在AUTOSAR OS 里调度器是一个资源。依据实现的调度策略,每当要进行一次任务切换时,调度器会被激活。任务可以保留调度器来避免任务切换直到调度器被该任务释放。 任务优先级 0是最低优先级,数值越大优先级越高。 任务的优先级是静态定义的,在运行时不可以改变。但是在特殊情况下,操作系统可以给一个任务一个定义的更高的优先级(详见优先级上限协议)。 BCC2和ECC2支持相同优先级有多个任务。 在相同优先级的任务的开始顺序依据激活的顺序,通过拓展的任务进入waiting状态不会阻塞相同优先级里后面的任务的开始。被抢占的任务被认为是在它当前优先级的ready清单里第一个任务(最老的任务)。 从waiting状态里释放的任务被当作它的优先级的ready序列里的最后的任务(最新的)。 决定下一个要执行的任务的基本的步骤: 调度器搜索所有的处于ready/running状态的任务 从处于ready/running状态中的任务集合,调度器判定拥有最高优先级的任务集合 在拥有最高优先级处于ready/running状态的任务集内,调度器找到最老的任务。 调度策略 全抢占调度 全抢占调度意思是一个目前处于running状态的任务可能在任何的指令处被重调度,通过操作系统预置的触发条件的发生。全抢占调度会使得running任务转化为ready状态,只要一个更高的优先级的任务处于ready状态。任务环境被保存以便被抢占的任务可以在被中断的位置继续。 对于全抢占调度延迟时间与低优先级任务的运行时间无关。一些限制关于为了保存环境要求增加的RAM内存和为了同步任务而必须的特征的增强的复杂性。由于理论上一个任务可以在任何位置被重调度,对于与其它任务共享的数据的访问应该

您可能关注的文档

文档评论(0)

woai118doc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档