鉴源论坛 · 观模丨AUTOSAR调度表可调度性的形式化分析

news2025/1/18 10:04:49

作者 | 郭建 上海控安可信软件创新研究院特聘专家

版块 | 鉴源论坛 · 观模

汽车上大量软件和电子控制单元(ECU,Electronic Control Unit)的使用导致了汽车电子架构变得更为复杂,现如今从工厂生产的汽车更像是带轮子的电脑。现代汽车由大约50到上百个电子控制单元组成,而且每年的数量还在增加。每个电子控制单元负责特定的功能,它们之间通过某种总线相互通信,例如CAN、FlexRay、LIN等。每多一个连接到系统上的电子控制单元,系统的复杂性都会增加。汽车电子系统都必须配置对应的应用程序和软件,而每次新硬件出现时,应用程序都需要被重写来支持硬件的更新。

为了应对这种令汽车电子系统软件难以管理的局面,德国汽车工业界共同提出了一个开放的标准接口OSEK/VDX。2003年,几个在汽车领域领先的原始设备制造商和汽车行业的一级供应商决定为了未来汽车电子的发展,共同在OSEK/VDX的基础上制定一个新标准,而这个标准就是AUTOSAR(AUTomotive Open System ARchitecture)。其旨在成为行业内的共享软件架构框架,而背后的原因是汽车电子系统复杂性的增加。AUTOSAR标准的产生可以通过提供一个各方共同认可的架构来允许制造商在功能而非架构上展开竞争。共享同一个架构的好处包括制造商和软件公司可以开发适合汽车市场的通用软件,提高汽车电子系统的灵活性、可扩展性和质量。

作为车载操作系统,实时性对于AUTOSAR OS的重要性不言而喻,如何保证操作系统中的计算单元在截止时间内完成是极其重要的。而AUTOSAR OS提供的调度表机制是系统中一个重要的任务激活机制。调度表通过包含一组封装了动作和偏移量的终结点来设定任务的激活方式。由于调度表机制的特殊性,任务的调度情况变得更加复杂,这使得调度表的可调度性非常重要。本文将针对AUTOSAR OS调度表进行可调度性分析。

01 AUTOSAR OS任务和调度表

任务是AUTOSAR OS中的一个重要概念,被看作是操作系统中最小的调度单位,也是最基本的功能单位,即使是最简单的应用也需要至少一个任务来完成它的功能。AUTOSAR OS中提供了两种任务:基本任务和扩展任务。

 AUTOSAR OS 中使用静态优先级调度策略,不论是基本任务还是扩展任务都被静态地分配到一个优先级,并且为了保证系统的运行效率,任务的优先级是在系统设计阶段被静态配置的,不允许在系统运行时更改。因为AUTOSAR OS允许多个任务共享同一个优先级,在AUTOSAR OS中为每一个优先级维持一个队列,相同优先级的任务采用先来先服务的调度方法。

调度表是AUTOSAR OS中新引入的一种调度机制,它是对OSEK/VDX OS中使用定时器激活周期性任务的一种改进。调度表通过将一组任务静态地封装到终结点中,让有关联的任务按照规定的时间和顺序激活。其中一个终结点封装了:

• 行为:激活任务或者是设置事件,一个终结点至少包含一个行为。当终结点被处理时,其包含的行为将被执行。

• 偏移量:在一个调度表中,每个终结点都有一个唯一的偏移量,这个偏移量是一个相对时间,标示终结点与调度表起点的距离。各个终结点偏移量之差代表了终结点被处理时间之间的的延迟。调度表中第一个终结点的偏移量被称作此调度表的初始偏移量,最后一个终结点的偏移量到调度表结束的时间差被称为最终延迟。

每个调度表都有一个持续时间表示它完全运行一次需要的时间。在调度表启动后,AUTOSAR OS会使用一个迭代器遍历调度表,并按照偏移量递增的顺序依次处理每个终结点。AUTOSAR OS中定义了两种调度表:周期性和非周期性调度表。如果一个调度表被配置为非周期性的,当最后一个终结点被处理之后,AUTOSAR OS会停止遍历此调度表。而当周期性调度表的最后一个终结点被处理,经过最终延迟之后,AUTOSAR OS会从调度表的开始处再次遍历。

图1展示了一个周期性调度表的实例。在这个调度表中共包含三个终结点,持续时间为17。

图1 调度表结构

02 调度表的形式化模型

2.1 任务模型

作为比调度表更小的调度单位,在对调度表建立模型之前,首先需要对任务进行合理的抽象,并建立任务模型。AUTOSAR OS中的任务被抽象为三个属性:

(1)最坏情况执行时间,即处理器执行这段代码最长的用时;

(2) 截止时间,即任务的最坏情况响应时间应当少于的时间;

(3)优先级,数字越小说明优先级越高。

综上,描述AUTOSAR OS中任务的模型被定义如下:

定义1:一个任务是一个三元组 T=(CT, DT, PT),其中:

● CT ∈ N+任务的最坏执行时间,下文简称执行时间;

● DT ∈ N+代表了这个任务的截止时间;

● PT ∈ N+ 代表了这个任务的优先级。

任务模型隐含地假设对所有任务T都满足CT ≤ DT ,因为可调度性要求系统中所有任务都能够在截止时间之内完成计算。如果一个任务的执行时间超出了它的截止时间,那么它将永远无法满足时间特性需求,也就无法进行可调度性分析。

2.2 调度表的形式化模型

AUTOSAR OS中的调度表提供了新的任务激活模式,一个调度表中各个任务的激活时间存在关联:同一个终结点上的任务都会被同时激活,对于不同终结点上的任务,它们的激活时间之间存在固定延迟。虽然周期性调度表使其中的任务以周期性激活,但调度表模型应当能够描述出任务激活时间之间的关系。这里给出了基于有向图的模型来描述调度表的时间特性与行为,其定义如下:

定义2:一个调度表ST由一个有向图G(ST)= (V (ST),E(ST)) 表示。其中V (ST) 是有向图中顶点的集合,E(ST) 是顶点之间的边的集合:

● V (ST) = {ep1, . . . ,epn},表示调度表中所有终结点组成的集合,其中的一个终结点ep = {T1, . . . ,Tk}是一个集合,包含了终结点封装的所有任务;

● G(ST) 中边的指向表示了调度表中终结点被处理的顺序。每一条边(epu,epv ) ∈E(ST) 都有一个权值p(epu,epv ) ∈ N+ ,表示两个终结点偏移量之差,即它们被处理时间之间的延迟。

在这个模型中,并没有标示第一个终结点和最后一个终结点。当调度表是周期性的时候,最后一个终结点被处理后再经过最终延迟加初始偏移量,调度表的第一个终结点会被再次处理。所以可以将最后一个终结点到第一个终结点之间的延迟看作是最终延迟与初始偏移量的和。在调度表模型中,每个ep ∈ V (ST) 都不是空集。为空集的ep对系统的运行来说没有任何用处,通过简单的转换就可以消除它们。

AUTOSAR OS中,多个任务可以共享同一个优先级,所以当多个相同优先级的任务争用处理器时,它们激活时间的不同导致了调度情况的不同。而定义的任务模型并不包括激活时间的属性。为了将AUTOSAR OS任务的激活时间属性表示出来定义了作业的概念。

定义3:作业表示一个任务在某个时间点被激活产生的实例。一个作业J=(CJ ,DJ ,PJ ,RJ ) 由一个四元组表示,除了与任务同样使用CJ 、DJ 和PJ 来表示这个作业的执行时间、截止时间以及优先级之外,还使用了RJ ∈ N+ 来表示这个作业被激活的时间。一个作业就代表着一个任务被激活一次。

03 调度表可调度性分析

AUTOSAR OS调度表中一个作业被阻塞和抢占的时间可以分为三个部分:

● 第一部分是在作业激活之前,本地调度表激活的高优先级或相等优先级作业的执行时间。

● 第二部分是作业激活之后,本地调度表激活的高优先级作业的执行时间。

● 第三部分是其他调度表激活的优先级更高或优先级相同,但激活时间更早作业的执行时间。

它们分别对应前缀需求函数、需求函数和最大需求函数的计算,用这种方法计算出的第一部分与第二部分之间有重叠,它们都包含了作业J所在终结点实例P(J)对作业J的影响值,需要减去这部分的重叠时间,就得到作业J被阻塞和抢占的时间。

除了使用需求函数、最大需求函数以及前缀需求函数外,还引入了忙碌窗口的概念。

对于一个优先级P,P的忙碌窗口是一个时间段。在这个时间段中处理器持续地执行优先级高于或等于P的作业。即在这个时间段内处理器不会执行优先级小于P的作业,也不会空闲。

最长的忙碌窗口并不一定能导致作业的响应时间最长,而且也很难预测导致最坏情况响应时间出现时忙碌窗口的确切大小。但是通过这个忙碌窗口长度的上限,可以列举所有忙碌窗口大小的可能性。所以为了计算任务最坏情况响应时间,遍历所有忙碌窗口的大小直到上限,就可以得到此任务的可调度性。

对于AUTOSAR OS,其调度表集合T= {ST1,ST2, . . .STn},分析AUTOSAR OS可调度性的完整的方法可以被分为以下四步:

(1)将调度表集合中所有的任务组成一个任务集合t= T1,T2, . . . ,Tq,然后进入第二步。

(2)如果任务集合t为空,则此AUTOSAR OS 就是可调度的;如果不为空,任意选中t中一个任务Tk(k ∈[1,q]),然后进入第三步。

(3)使用任务的前缀需求函数、需求函数、最大需求函数和忙碌窗口的分析,得出该人的可调度性,如果Tk 是不可调度的,那么此AUTOSAR OS 就是不可调度的;如果Tk 是可调度的,进入第四步。

(4)更新任务集合t=t-Tk,然后再回到第二步。

上述步骤描述的AUTOSAR OS可调度性分析方法如图2所示:

图2 调度表可调度算法

算法SCHEDULABILITY (t) 的目的是找出AUTOSAR OS中一个不可调度的任务并声明这个系统是不可调度的,或者当系统中的所有任务都可调度时,声明是可调度的。它的初始输入是AUTOSAR OS中所有任务的集合t,输出为真时说明系统是可调度的,输出为假时说明系统是不可调度的。其中第一到四行对应着步骤2,判断任务集合为空并声明系统可调度,或者在任务集合中任取一个任务。第五到十行对应步骤3和步骤4,其中第五行使用算法TASK_ANALY SIS(T)检查任务是否是可调度的,如果是可调度的,那么就在t中将该任务删除,然后迭代执行此算法;如果取到的任务不可调度,就直接声明这个AUTOSAR OS是不可调度的。

04 小结

本文研究了AUTOSAR OS中的任务、调度表机制,并使用了一个基于有向图的模型描述AUTOSAR OS中调度表的时间特性及行为,继而提出适用于AUTOSAR OS的可调度性分析方法。通过将路径抽象成运行时间,提出需求函数、最大需求函数以及前缀需求函数来分析作业被抢占和阻塞的时间,提出了针对AUTOSAR OS调度表的可调度性分析方法。

参考文献:

[1] MAST. Modeling and Analysis Suite for Real-Time Applications [EB/OL]. http://mast.unican.es//.

[2] WANG W, CAMUT F, MIRAMOND B. Generation of schedule tables on multicore systems for AUTOSAR applications[C] // (DASIP), Rennes, France, October 12-14, 2016. 2016 : 191 – 198.

[3] ANSSI S, Tucci Piergiovanni S, KUNTZ S, et al. Enabling Scheduling Analysis for AUTOSAR Systems[C] // 14th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing, ISORC 2011, Newport Beach, California, USA, 28-31 March 2011. 2011 : 152 – 159.

[4] 彭云辉. 基于AUTOSAR 的汽车电子操作系统及其应用的建模与分析[D]. [S.l.] : 华东师范大学, 2014.

[5] 闫荣堃. 基于形式化模型的AUTOSAR OS 调度表可调度性分析D]. [S.l.] : 华东师范大学, 2019.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java+MySQL基于ssm的物理竞赛管理系统 开题 论文

物理竞赛是对课堂上所学的理论知识的实践运用,加深所学知识的理解,锻炼团队协作能力。学生可以根据个人爱好,个人特长选择参与,不仅能培养学生的创新意思、提高专业技能,还能锻炼学生的组织能力和协作能力。物理竞赛是在中国科协的领导下,由中国物理学会主办,各省、自治区、直辖…

windows11-IIS和nginx部署 vue3项目

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 IIS部署vue3项目一、IIS 安装二、解决404问题三、windows环境下安装/使用 nginx提示:以下是本篇文章正文内容,下面案例可供参考 一、IIS 安装 https…

Ac-Nle-P-Nle-D-AMC

Ac-nLPnLD-AMC, substrate for proteasome.Ac-nLPnLD-AMC,蛋白酶体底物。 编号: 185966中文名称: 蛋白酶体底物:Ac-Nle-Pro-Nle-Asp-7-氨基-4-甲基香豆素CAS号: 355140-49-7单字母: Ac-Nle-P-Nle-D-AMC三字母: Ac-Nle-Pro-Nle-Asp-AMC氨基酸个数: 4分子式…

高压放大器怎么选择型号的(高压放大器选型标准规范最新版)

高压放大器一般是指能够产生最大功率输出以驱动特定负载的装置,这是电子测量行业比较常见的一种仪器,可以对信号源的电压信号进行放大。 ATA-2000系列电压放大器选型指南: 高压放大器特点介绍: 1、可以输出1W以上更大的功率。 2、…

ReplicaSet和Deployment

ReplicaSet和Deployment 写在前面 语雀原文阅读效果更佳:198 ReplicaSet和Deployment 语雀 《198 ReplicaSet和Deployment》 1、ReplicaSet 假如我们现在有一个 Pod 正在提供线上的服务,我们来想想一下我们可能会遇到的一些场景: 某次运营…

[思考进阶]03 每一个成年人都应该掌握的学习技巧

除了要提升自己的技术能力,思维的学习和成长也非常非常重要,特推出此[思考进阶]系列,进行刻意练习,从而提升自己的认知。 这世间有两种人:一种被誉为天之骄子,拥有那种天才的创造能力,这种人极少…

React 入门:使用 Express 快速搭建web服务

文章目录什么是 ExpressExpress 用来做什么安装 Express创建 web 服务器启动服务器访问服务器什么是 Express 官方概念 Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。通俗理解 Express 的作用和 Node.js 内置的 http 模块类似,是专门…

最近更换系统盘踩了不少坑,主要是软件运行错误,造成原成原系统盘被损毁

更换系统盘应该注意的问题: PE系统要是经过测试的系统,这次损毁的PE我很信任,但是有个克隆软件,今天一用就损毁了,他的名字是“Acronis True Image",不建议用他克隆整盘。 推荐几个经过严格测试的好用的PE&#…

我们公司使用了6年的Spring Boot项目部署方案,打包 + 一键部署,稳的一批

时间就如白驹过隙,转眼间已经是 2028 年了。小二入职一家初创公司已经 6 年了,眼瞅着开发团队从 3 个人壮大到 54 人,心里有时候会感觉挺不可思议的。 这些年,身边的同事来了又去,有些刚熟悉没多久,就因为…

java 项目之瑞吉外卖 笔记1 软件开发整体介绍 员工登录功能 登录过滤器设置

软件开发流程 角色分工 软件环境 开发环境搭建 创建工程 application.yml: server:port: 80 spring:application:name: reggie_takedatasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/r…

GitHub日排行第二名!手把手刷算法项目fucking-algorithm,干翻算法

今天给大家分享一个开源项目,在 GitHub 排行榜上今天特别火,都爬到了日排行榜的第二名。 大家想知道,面试互联网大厂,必面的是什么吗?当然是算法。作为程序员,互联网大厂的面试,算法是最重要的…

如何进行系统设计

文章目录1. 理解需求1.1 功能性需求1.2 非功能性需求2. 系统设计3. Api设计4. 数据模型设计5. 高可用、高性能、可监控等数据密集型应用设计凤凰架构 重点:自己整理的非权威,不具代表性,自己去取舍哈。 1. 理解需求 1.1 功能性需求 解决什么…

Python -- 流程控制语句

目录 1、条件判断语句 1.1 if语句的使用 1.2 if...else语句的使用 1.3 if...elif...else语句的使用 2、循环语句 2.1 while语句 2.2 for语句 3、break和continue 4、循环中else的使用 1、条件判断语句 1.1 if语句的使用 if语句是用来进行判断的,其使用格式…

大一学生《基于HTML+CSS制作体育篮球网页》期末网页制作

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

如何在 PDF 中搜索并准确找到您要查找的文本内容

您是否需要在冗长的 PDF 文档中快速查找单词或短语? 没有什么比打开一个只有文本墙的大型 PDF 文档更令人沮丧的了。或者必须在很长的文本中找到特定的单词或短语。或者很长的 PDF。 它不方便、耗时,如果时间紧迫则更糟。 幸运的是,大多…

tensorflower delegate介绍

为什么要使用delegate delegate是什么意思? 性能优化的方法: 量化剪枝权重聚集利用硬件加速器 其中,当我们使用硬件加速器的时候,可以获得相应硬件的特性,提高性能,降低功耗。但是硬件加速器有很多种&am…

【外汇天眼】外汇市场交易基本面分析:什么是利率平价(IRP)?

利率平价(平价Interest RateParity,也称为IRP利息率,是指外汇市场在所有可自由兑换货币的预期回报率相同时所能提供的平衡条件。 利率平价规定,一种货币对另一种货币的升值(贬值)必须由利率差异的变化抵销…

音乐推荐系统设计

文章目录问题描述如何解决系统设计评测指标推荐系统的用户画像运动音乐场景用户行为分析睡眠音乐场景用户行为分析治愈音乐场景用户行为分析其他音乐场景用户行为分析问题描述 移动网络和数字多媒体技术的飞速发展促进了数字音乐产业的共享与广泛传播.对用户而言&a…

TensorRT框架解析

简介: 官网网址: Installation Guide :: NVIDIA Deep Learning TensorRT Documentation NVIDIA TensorRT 的核心是一个C库。 这有助于在 NVIDIA 图形处理单元 (GPU) 上进行高性能推理。 TensorRT 采用经过训练的网络&#xff0…

计算机毕设Python+Vue校园失物招领平台(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…