autosar任务管理

autosar任务管理

ID:15815230

大小:23.79 KB

页数:9页

时间:2018-08-05

autosar任务管理_第1页
autosar任务管理_第2页
autosar任务管理_第3页
autosar任务管理_第4页
autosar任务管理_第5页
资源描述:

《autosar任务管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、该文件从os223.pdf,依据AUTOSAROS规范进行了部分调整。作者:邓孔宏1.1任务管理1.1.1任务类别任务分为两个类别:·基础任务:只有running,suspended,ready三个状态。基础任务在三种情况下释放处理器资源:任务结束;操作系统切换到高优先级任务;中断发生导致处理器切换到一个中断服务程序ISR。·拓展任务:较之基础任务,多了一个waiting状态。拓展任务被允许调用系统服务WaitEvent。1.1.2任务状态及转换任务状态running在任何时间点只有一个任务能处于running状态,CPU将会被分配到该任务,该任务的指令将被执行。rea

2、dy所有的任务要转换为running状态都必须先处于ready状态,处于ready状态的任务只需等待分配处理器就能转换为running状态。调度器决定哪一个ready状态的任务将是下一个执行的任务。suspended处于suspended的任务是被动的,可以被激活。waiting处于waiting状态的任务将不能继续执行,它将等待至少一个事件发生。running任务转换terminatewaitpreemptstartsuspendedwaitingreadyactivatereleaseactivate:一个新的任务被设置成ready状态通过一个系统服务。AUTOSA

3、R操作系统将确保任务从第一条指令开始执行。(在多重激活情况下,任务激活不会立即改变任务状态。如果任务不是suspended状态,激活只会被记录,晚些时候被执行。)start:一个ready任务被调度器选择去执行。preempt:调度器决定去执行另一个任务,使得running任务进入ready状态。terminate:running任务通过调用系统服务导致它的状态转换为suspended状态。(注:任务只自己结束自己)以下两个状态转换为拓展任务特有wait:通过一个系统服务引起状态转换到waiting状态,waiting任务等待一个事件,以能够继续操作。release:至

4、少一个任务等待的事件发生。1.1.1激活一个任务使用操作系统服务ActivateTask或ChainTask激活任务。AUTOSAROS不支持类C参数传递当启动一个任务时。任务激活的多重请求依据一致性类别,一个基础任务可以被激活一次或多次。“任务激活的多重请求”意味着AUTOSAROS接收和记录已经被激活任务的平行激活。并行的多重请求的数目被定义在基础任务的一个特定的属性里在系统生产阶段。如果没有达到多重请求的最大数目,那么请求是排队的。基础任务激活的请求按照激活顺序里的优先级排序。1.1.2任务切换机制调度器:决定哪一个任务应该开始运行和触发所有必须的AUTOSARO

5、S内部的活动的实体被称作调度器。在AUTOSAROS里调度器是一个资源。依据实现的调度策略,每当要进行一次任务切换时,调度器会被激活。任务可以保留调度器来避免任务切换直到调度器被该任务释放。1.1.1任务优先级0是最低优先级,数值越大优先级越高。任务的优先级是静态定义的,在运行时不可以改变。但是在特殊情况下,操作系统可以给一个任务一个定义的更高的优先级(详见优先级上限协议)。BCC2和ECC2支持相同优先级有多个任务。在相同优先级的任务的开始顺序依据激活的顺序,通过拓展的任务进入waiting状态不会阻塞相同优先级里后面的任务的开始。被抢占的任务被认为是在它当前优先级的

6、ready清单里第一个任务(最老的任务)。从waiting状态里释放的任务被当作它的优先级的ready序列里的最后的任务(最新的)。决定下一个要执行的任务的基本的步骤:·调度器搜索所有的处于ready/running状态的任务·从处于ready/running状态中的任务集合,调度器判定拥有最高优先级的任务集合·在拥有最高优先级处于ready/running状态的任务集内,调度器找到最老的任务。1.1.2调度策略1.1.2.1全抢占调度全抢占调度意思是一个目前处于running状态的任务可能在任何的指令处被重调度,通过操作系统预置的触发条件的发生。全抢占调度会使得run

7、ning任务转化为ready状态,只要一个更高的优先级的任务处于ready状态。任务环境被保存以便被抢占的任务可以在被中断的位置继续。对于全抢占调度延迟时间与低优先级任务的运行时间无关。一些限制关于为了保存环境要求增加的RAM内存和为了同步任务而必须的特征的增强的复杂性。由于理论上一个可以在任何位置被重调度,对于与其它任务共享的数据的访问应该被同步。如果一个任务的代码段不能被抢占,那么它应该调用系统服务GetResource给调度器上锁。总之,重调度将在下面情况发生:·一个任务成功结束(TerminateTask、ChainTask)·激

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。