当前位置: 首页 > web >正文

AP中的Execution Manager“非报告进程”和“伴随进程”概念解析

在《AUTOSAR_AP_SWS_ExecutionManagement.pdf》中,对“非报告进程(Non-reporting Process)”和“伴随进程(Companion Process)”的定义、作用及机制有明确说明,其核心目的是支持集成未修改的第三方二进制文件(如无法适配AUTOSAR Adaptive Platform的现有软件)。以下是详细介绍:

一、非报告进程(Non-reporting Process)

1. 定义与核心特征

非报告进程是一种特殊的Modelled Process(建模进程),其reportingBehavior属性被配置为doesNotReportExecutionState

  • 不使用AUTOSAR Adaptive Platform的ara::exec::ExecutionClient API,因此无法主动向Execution Management(EM)报告自身的执行状态(如kRunning)。
  • 其设计初衷是允许集成“无法修改的第三方软件”,例如仅提供二进制文件、无法适配AUTOSAR接口的 legacy 软件。
2. 行为与限制
  • 状态转换特性:非报告进程启动后,EM会隐式将其进程状态从“Starting”转换为“Running”(无需等待其报告kRunning),即认为其资源分配完成后即处于运行状态。
  • 安全风险:在安全相关系统中需谨慎使用,因为这类进程通常不提供安全关键功能,且可能不被Platform Health Management(平台健康管理)监控,但可能影响其他安全相关进程,建议通过ResourceGroup(资源组)隔离。
  • 报告限制:若非报告进程尝试调用ara::exec::ExecutionClient::ReportExecutionState接口报告状态,EM会将其视为“违规(Violation)”。

二、伴随进程(Companion Process)

1. 定义与核心作用

伴随进程是一种Reporting Process(报告进程),与非报告进程关联,用于代理非报告进程的状态监控,解决非报告进程无法主动报告状态导致的依赖管理问题。

  • 它的核心功能是:等待非报告进程提供的服务可用后,向EM报告自身的kRunning状态,从而触发依赖该服务的其他进程启动。
2. 工作机制

当系统中存在对非报告进程的功能依赖时,集成者可通过以下方式配置:

  1. 将依赖关系“转移”到伴随进程:为依赖非报告进程的其他进程配置对伴随进程的执行依赖(如依赖伴随进程的kRunning状态)。
  2. 伴随进程通过项目特定的方式(如监控非报告进程的端口、日志或心跳)判断非报告进程的服务是否可用。
  3. 当非报告进程的服务可用时,伴随进程向EM报告kRunning,此时依赖它的进程会被EM启动(。

例如:若非报告进程A提供文件系统服务,伴随进程B会监控A的服务可用性,当A就绪后,B报告kRunning,依赖文件系统的进程C会被EM启动。

三、二者的协同价值

  • 兼容性扩展:非报告进程允许直接集成未修改的第三方二进制文件,无需为适配AUTOSAR接口而修改源码。
  • 依赖管理补全:伴随进程解决了非报告进程无法报告状态的问题,确保依赖其功能的其他进程能按预期启动,维持系统执行依赖的完整性。
  • 灵活性平衡:在不破坏AUTOSAR架构规范的前提下,为 legacy 软件或第三方组件提供了集成路径,降低了迁移成本。

综上,非报告进程与伴随进程的组合设计,是AUTOSAR Adaptive Platform为平衡“标准化架构”与“兼容性需求”而提出的关键机制,尤其适用于需要集成第三方闭源软件或 legacy 系统的场景。

http://www.xdnf.cn/news/15097.html

相关文章:

  • Django核心知识点详解:JSON、AJAX、Cookie、Session与用户认证
  • RAG实战之dify源码文件解析-pdf文件解析流程
  • QT6 源(158)模型视图架构里的文件系统模型 QFileSystemModel 篇一:属性,成员函数,与信号函数
  • 在 macOS 上安装与自定义 Oh My Zsh:让终端美观又高效 [特殊字符]
  • Microsoft AZ-305 Exam Question
  • Git常用指令
  • Python-文件操作
  • 如何将 AWS EBS 卷从 gp2 批量迁移到 gp3:完整指南
  • RabbitMQ 高级特性之事务
  • FPGA加速HMI实时渲染:复杂图形处理的并行计算方案
  • 【macOS】【Swift】【RTF】黑色文字在macOS深色外观下看不清的解决方法
  • 5.注册中心横向对比:Nacos vs Eureka vs Consul —— 深度解析与科学选型指南
  • 字体 Unicode 区块字符展示 PDF 生成器
  • MySQL 09 普通索引和唯一索引
  • 5N70-ASEMI电源管理领域专用5N70
  • 前端业务监控系统,异常上报业务,异常队列收集,异常捕获
  • 【Unity】MiniGame编辑器小游戏(十)连连看【Link】
  • C#基础篇(11)泛型类与泛型方法详解
  • UI前端与数字孪生结合实践探索:智慧物流的仓储优化与管理系统
  • 大数据在UI前端的应用深化:用户行为模式的挖掘与预测性分析
  • 原型与原型链到底是什么?
  • Linux驱动学习day20(pinctrl子系统驱动大全)
  • 自动驾驶决策与规划
  • 【Kafka】登录日志处理的三次阶梯式优化实践:从同步写入到Kafka多分区批处理
  • 【PDF提取内容改名】批量提取pdf多个指定区域内容到excel表格的操作步骤和方法
  • 制作MikTex本地包可用于离线安装包
  • doris2.1.8连接报错ERROR 1203 (42000): Reach limit of connections解决办法
  • 冷冻电镜重构的GPU加速破局:从Relion到CryoSPARC的并行重构算法
  • 前端UI逻辑复杂可以用什么设计模式
  • 由 DB_FILES 参数导致的 dg 服务器无法同步问题