AUTOSAR_RS_ExecutionManagement_R2011
4 需求规范
4.1 功能概述
AUTOSAR 自适应平台提供服务,以基于配置影响应用程序的生命周期。因此,本文件包含的需求确定了执行管理为基于配置影响机器级应用程序启动、关闭和重启所提供的功能。
===== 第 8 页 =====
执行管理负责平台生命周期管理和应用程序生命周期管理的所有方面,包括:
- 机器启动和关闭。
- 执行管理是操作系统的初始(“引导”)进程。
- 所启动服务的必要进程层次结构,例如 init 及其子进程。
- 引导后。此情况下的引导过程对应于机器 init 进程。
- 提供进程隔离,每个可执行文件的实例作为一个单独的进程进行管理。
- 应用程序的启动和关闭。
- 基于定义的执行依赖关系加载可执行文件。
- 启动可执行文件主函数(即入口点)前的具体要求。
- 权限和访问控制的使用。
- Manifest 文件中访问控制的描述和语义。
- 状态管理。
- 应用程序执行的条件。
4.2 功能需求
本节描述了定义执行管理功能的所有驱动需求。
4.2.1 应用程序的启动和关闭
[RS_EM_00002]{草案}执行管理应为每个建模进程设置一个进程。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 对于每个可执行文件实例,执行管理应分配一个 POSIX 进程。此外,应基于执行 Manifest 分配进程特定属性(如优先级、调度策略和访问权限)。 |
| 溯源 | (RS_Main_00010, RS_Main_00049, RS_Main_00080, RS_Main_00320, RS_Main_00150, RS_Main_00420, RS_SAF_21201) |
[RS_EM_00014]{草案}执行管理应支持可信平台。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 执行管理应确保对所有可执行文件及其对应的执行管理元数据(即已处理的机器和 Execution Manifests)进行完整性和真实性检查,并且仅允许启动通过验证检查的可执行文件。 |
| 理由 | 执行管理从操作系统和/或引导加载程序接管 AUTOSAR 自适应平台启动的责任,从而保持平台的可信性。引导过程完成后,执行管理是唯一允许启动可执行文件的 AUTOSAR 自适应平台实体,因此负责平台可信性的延续。 |
| 依赖关系 | - |
| 用例 | 验证部署在 AUTOSAR 自适应平台上的软件的完整性和真实性。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00170, RS_Main_00514, RS_Main_00180) |
[RS_EM_00005]{草案}执行管理应支持为进程和进程组配置操作系统资源预算。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 基于执行 Manifest,执行管理应向进程分配操作系统资源。分配应适用于单个进程和进程组。 |
| 理由 | 应定义实时保证。 |
| 依赖关系 | - |
| 用例 | 例如 cgroups(基于包含一个或多个进程的容器)和 ulimit。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00002, RS_Main_00010, RS_Main_00106, RS_Main_00340, RS_Main_00150) |
===== 第 9 页 =====
[RS_EM_00008]{草案}执行管理应支持将给定进程的所有线程绑定到一组指定的处理器核心。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 执行管理应允许基于执行 Manifest 中的配置,将线程绑定到特定的处理器核心集合。绑定粒度应为进程级别。 |
| 理由 | 影响负载平衡、响应时间和延迟的机制。 |
| 依赖关系 | - |
| 用例 | 将两个并行线程分配到两个处理器核心以实现真正的并行。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00002, RS_Main_00010, RS_Main_00106, RS_Main_00340) |
[RS_EM_00009]{草案}执行管理应确保其是启动进程的唯一实体。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 执行管理负责启动子进程,并应阻止此类子进程直接启动其他进程。执行管理需要完全控制应用程序的启动,以确保所需的时间和空间隔离属性。只有执行管理应启动进程。 |
| 依赖关系 | - |
| 用例 | 具有不同安全性和/或保密性属性的应用程序之间的隔离。 |
| 支持材料 | - |
| 溯源 | (RS_EM_00010, RS_EM_00011, RS_EM_00049, RS_EM_00150, RS_SAF_21201) |
[RS_EM_00010] 执行管理应支持可执行文件的多个实例。
| 属性 | 内容 |
|---|---|
| 类型 | 有效 |
| 描述 | 应能够从单个可执行文件启动多个建模进程。实例特定信息在建模进程启动配置中描述。 |
| 理由 | 避免代码重复。 |
| 依赖关系 | - |
| 溯源 | (RS_Main_00002, RS_Main_00049, RS_Main_00106, RS_Main_00501) |
===== 第 10 页 =====
[RS_EM_00011] 执行管理应支持进程自发的正常关闭。
| 属性 | 内容 |
|---|---|
| 类型 | 有效 |
| 描述 | 执行管理应支持进程自发的正常关闭。 |
| 理由 | 自发的正常关闭使进程能够释放已分配的专用资源,并通知其他交互实体其正在关闭(例如注销服务),以在机器/车辆内创建一致的状态。进程自发的关闭,根据定义,只能由进程本身发起。 |
| 依赖关系 | - |
| 用例 | 可执行文件实例的进程完成并关闭自身。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00002, RS_Main_00049) |
[RS_EM_00100] 执行管理应支持进程的有序启动和关闭。
| 属性 | 内容 |
|---|---|
| 类型 | 有效 |
| 描述 | 执行管理应支持可执行文件实例的有序启动和关闭。 |
| 理由 | 如果在可执行文件实例的执行 Manifest 中指定了执行依赖关系,则确保可执行文件实例之间的启动和关闭依赖关系得到遵守。如果可执行文件实例之间未指定执行依赖关系,则它们可以以任意顺序启动和停止。 |
| 依赖关系 | - |
| 用例 | 某个可执行文件需要某个功能集群已启动并运行后才能启动。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00002, RS_Main_00049, RS_Main_00340, RS_Main_00460) |
===== 第 11 页 =====
4.2.2 执行
[RS_EM_00050]{草案}执行管理应执行机器级的进程协调。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 执行管理应提供一个 API,供进程注册其活动,以便能够协调它们的执行。 |
| 理由 | 跨可执行文件协调调度活动。 |
| 依赖关系 | - |
| 用例 | 应对正在运行的进程内的计算资源使用进行机器级管理,以确保活动能够跨进程协调。注册使执行管理能够形成必要的机器级视图以进行协调。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00460, RS_SAF_21202) |
[RS_EM_00051]{草案}执行管理应向进程提供 API,用于配置其活动的外部触发条件。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 执行管理应提供一个 API,用于配置已注册活动的触发条件。 |
| 理由 | 执行管理应掌握何时调度活动的信息。 |
| 依赖关系 | - |
| 用例 | 基于数据接收的执行,活动的顺序执行。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00050, RS_Main_00060) |
[RS_EM_00052]{草案}执行管理应向进程提供 API,用于配置其活动的周期触发。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 执行管理应提供一个 API,用于配置已注册活动的周期触发。 |
| 理由 | 执行管理应掌握何时调度活动的信息。 |
| 依赖关系 | - |
| 用例 | 活动的周期执行。 |
| 溯源 | (RS_Main_00050, RS_Main_00340) |
===== 第 12 页 =====
[RS_EM_00053]{草案}执行管理应向进程提供 API,以支持进程的确定性冗余执行。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 执行管理应提供 API,以支持进程的确定性冗余执行。 |
| 理由 | 高 ASIL 系统需要安全机制,如软件锁步,以便在非汽车级微处理器上实现。冗余执行应保证确定性,即可重现的结果。 |
| 依赖关系 | - |
| 用例 | 活动的冗余执行以实现软件锁步。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00010, RS_Main_00501, RS_SAF_21202) |
[RS_EM_00113]{草案}执行管理应支持时间触发执行。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 执行管理应促进时间触发的周期执行。 |
| 理由 | 进程中的算法可以是时间触发的。操作系统需要提供机制以允许应用程序的时间触发执行。触发条件至少需要包含外部定时器,但不限于此。 |
| 依赖关系 | - |
| 用例 | 活动的冗余执行以实现软件锁步。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00010, RS_Main_00501) |
[RS_EM_00111]{草案}执行管理应协助在机器运行时识别进程。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 自适应应用程序在运行时应是可识别的(例如通过身份和访问管理),以便强制执行访问限制。执行管理基于执行 Manifest 生成运行时进程。执行管理有资格通过提供有关运行时表示与建模进程之间链接的信息来协助 AUTOSAR 自适应平台软件(例如身份和访问管理)。 |
| 理由 | 自适应应用程序应能基于其由执行管理生成的运行时表示,被身份和访问管理识别。 |
| 依赖关系 | - |
| 用例 | 应用程序 A 请求访问服务接口,身份和访问管理能够检索应用程序 A 的运行时信息,例如 POSIX pid 或加密令牌。执行管理通过将此运行时信息解析为自适应应用程序来协助身份和访问管理。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00170, RS_Main_00514, RS_Main_00420) |
===== 第 13 页 =====
4.2.3 状态管理
[RS_EM_00101]{草案}执行管理应支持状态管理功能。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 执行管理应向状态管理提供一个接口,以请求更改功能组状态。 |
| 理由 | 为了支持基于声明的功能组状态依赖关系启动和停止进程,执行管理提供一个接口,供状态管理功能集群请求功能组状态(包括机器状态)更改。作为对状态更改请求的响应,执行管理确保在任何给定操作条件下仅运行所需的一组应用程序进程,从而为相关进程节省平台资源。 |
| 依赖关系 | - |
| 用例 | 提供一种定义机器操作模式的机制。 |
| 支持材料 | - |
| 溯源 | (RS_Main_00460) |
[RS_EM_00103] 执行管理应支持进程生命周期管理。
| 溯源 | (RS_Main_00049, RS_Main_00050, RS_Main_00106, RS_Main_00460, RS_SAF_21201) |
===== 第 14 页 =====
4.2.4 错误处理
[RS_EM_00150]{草案}错误处理。
| 属性 | 内容 |
|---|---|
| 类型 | 草案 |
| 描述 | 执行管理应支持错误处理,包括不可恢复的错误。 |
| 理由 | 执行管理可能面临无法恢复系统的情况。这些情况通常由配置错误的系统导致,因此合适的响应可能是停止启动,以便解决配置错误。 |
| 依赖关系 | - |
| 用例 | 执行管理无法启动 PHM 或状态管理,因此整个平台无法启动,无法从此情况中恢复,因此执行管理必须停止启动。 |
| 支持材料 | - |
===== 第 15 页 =====
4.2.5 诊断支持
诊断支持由状态管理处理,因此需求被 [5] 中的需求所替代。
4.3 非功能需求
无。
5 需求追溯
下表引用了 [6] 中指定的需求,并链接到其实现情况。
请注意,如果某一需求的“由…满足”列为空,则表示本文档未实现该需求。同样,如果条目为 [RS_EM_NA],则表示该源需求已被评估为“不适用于”执行管理。
| 需求 ID | 描述 | 由…满足 |
|---|---|---|
| [RS_Main_00002] | AUTOSAR 应为高性能计算平台提供一个软件平台。 | [RS_EM_00005] [RS_EM_00010] [RS_EM_00011] [RS_EM_00100] |
| [RS_Main_00010] | AUTOSAR 应支持安全相关系统的开发。 | [RS_EM_00002] [RS_EM_00005] [RS_EM_00008] [RS_EM_00009] [RS_EM_00053] [RS_EM_00113] |
| [RS_Main_00011] | AUTOSAR 应支持可靠系统的开发。 | [RS_EM_00009] [RS_EM_00150] |
| [RS_Main_00026] | AUTOSAR 应支持所执行软件之间的高速高带宽通信。 | [RS_EM_NA] |
| [RS_Main_00030] | AUTOSAR 应支持安全相关系统的开发过程。 | [RS_EM_NA] |
| [RS_Main_00049] | AUTOSAR 应提供一个用于运行多个应用程序的执行管理。 | [RS_EM_00002] [RS_EM_00009] [RS_EM_00010] [RS_EM_00011] [RS_EM_00100] [RS_EM_00103] |
| [RS_Main_00050] | AUTOSAR 应向应用程序提供一个执行框架,以实现并发的应用程序内部控制流。 | [RS_EM_00008] [RS_EM_00051] [RS_EM_00052] [RS_EM_00103] |
| [RS_Main_00060] | AUTOSAR 应为应用程序之间的通信提供标准化的软件接口。 | [RS_EM_00051] |
===== 第 16 页 =====
| 需求 ID | 描述 | 由…满足 |
|---|---|---|
| [RS_Main_00080] | AUTOSAR 应提供描述应用软件组件模型的方法。 | [RS_EM_00002] |
| [RS_Main_00106] | AUTOSAR 应提供在不重新编译平台基础的情况下扩展新 SWC 的可能性。 | [RS_EM_00005] [RS_EM_00008] [RS_EM_00010] [RS_EM_00103] |
| [RS_Main_00140] | AUTOSAR 应为应用程序提供独立于网络的通信机制。 | [RS_EM_NA] |
| [RS_Main_00150] | AUTOSAR 应支持 AUTOSAR 应用软件的部署和重新分配。 | [RS_EM_00002] [RS_EM_00005] [RS_EM_00008] [RS_EM_00009] |
| [RS_Main_00160] | AUTOSAR 应提供描述整个系统接口的方法。 | [RS_EM_NA] |
| [RS_Main_00161] | AUTOSAR 应提供一种统一的方法来描述部署在自适应和/或经典平台上的软件系统。 | [RS_EM_NA] |
| [RS_Main_00170] | AUTOSAR 应提供对 ECU 数据和服务的安全访问。 | [RS_EM_00014] [RS_EM_00111] |
| [RS_Main_00180] | AUTOSAR 应提供机制以在共享开发过程中保护知识产权。 | [RS_EM_00014] |
| [RS_Main_00190] | AUTOSAR 应支持与非 AUTOSAR 软件的标准互操作性。 | [RS_EM_NA] |
| [RS_Main_00230] | AUTOSAR 应支持包括网关在内的网络拓扑。 | [RS_EM_NA] |
| [RS_Main_00250] | AUTOSAR 方法学应提供典型角色和活动的预定义。 | [RS_EM_NA] |
| [RS_Main_00260] | AUTOSAR 应在运行时提供诊断手段,用于生产和维护目的。 | [RS_EM_NA] |
| [RS_Main_00261] | AUTOSAR 应提供标定手段。 | [RS_EM_NA] |
| [RS_Main_00270] | AUTOSAR 应提供针对新版本的缓解策略。 | [RS_EM_NA] |
| [RS_Main_00280] | AUTOSAR 应支持标准化的汽车通信协议。 | [RS_EM_NA] |
| [RS_Main_00285] | AUTOSAR 应支持智能交通系统的协议。 | [RS_EM_NA] |
===== 第 17 页 =====
| 需求 ID | 描述 | 由…满足 |
|---|---|---|
| [RS_Main_00503] | AUTOSAR 应支持运行时更改通信和应用软件。 | [RS_EM_NA] |
| [RS_Main_00507] | AUTOSAR 应在形式化模型中反映软件系统开发的各个阶段。 | [RS_EM_NA] |
| [RS_Main_00510] | AUTOSAR 应支持安全的车载通信。 | [RS_EM_NA] |
| [RS_Main_00511] | AUTOSAR 应支持虚拟化。 | [RS_EM_NA] |
| [RS_Main_00512] | AUTOSAR 应支持时间同步。 | [RS_EM_NA] |
| [RS_Main_00513] | AUTOSAR 应支持不同编程语言的绑定。 | [RS_EM_NA] |
| [RS_Main_00514] | AUTOSAR 应支持安全系统的开发。 | [RS_EM_00014] [RS_EM_00111] |
| [RS_Main_00650] | AUTOSAR 应支持数据和软件的上传和下载。 | [RS_EM_NA] |
| [RS_Main_00652] | AUTOSAR 应支持基于信号和面向服务的通信之间的转换。 | [RS_EM_NA] |
| [RS_Main_00653] | AUTOSAR 应提供独立于平台的车辆 VFB 通信的抽象描述。 | [RS_EM_NA] |
| [RS_Main_01001] | AUTOSAR 应支持 ECU 内部通信。 | [RS_EM_NA] |
| [RS_Main_01002] | AUTOSAR 应支持面向服务的通信。 | [RS_EM_NA] |
| [RS_Main_01003] | AUTOSAR 应支持面向数据的通信。 | [RS_EM_NA] |
| [RS_Main_01004] | AUTOSAR 应支持无线车外通信的标准。 | [RS_EM_NA] |
| [RS_Main_01005] | AUTOSAR 应动态建立通信路径。 | [RS_EM_NA] |
| [RS_Main_01007] | AUTOSAR 通信应确保通信的服务质量。 | [RS_EM_NA] |
| [RS_Main_01008] | AUTOSAR 应提供与车外实体的安全通信。 | [RS_EM_NA] |
| [RS_Main_01025] | AUTOSAR 应支持目标上和车上的软件调试。 | [RS_EM_NA] |
| [RS_Main_01026] | AUTOSAR 应支持目标上和车上的跟踪和性能分析。 | [RS_EM_NA] |
===== 第 18 页 =====
| 需求 ID | 描述 | 由…满足 |
|---|---|---|
| [RS_SAF_21201] | 执行管理应继承平台上运行的任何进程的最高安全完整性级别。 | [RS_EM_00002] [RS_EM_00009] [RS_EM_00103] |
| [RS_SAF_21202] | 执行管理应支持完全确定性执行(时间确定性和数据确定性),以便即使在使用并行处理时也能实现更高的 ASIL 级别。 | [RS_EM_00050] [RS_EM_00053] |
5.1 不适用的需求
[RS_EM_NA] {草案}[这些需求不在本版本范围内,因此不适用。] (RS_Main_01026, RS_Main_01025, RS_Main_00650, RS_Main_00026, RS_Main_00030, RS_Main_00140, RS_Main_00160, RS_Main_00161, RS_Main_00190, RS_Main_00230, RS_Main_00250, RS_Main_00260, RS_Main_00261, RS_Main_00270, RS_Main_00280, RS_Main_00285, RS_Main_00300, RS_Main_00301, RS_Main_00310, RS_Main_00350, RS_Main_00360, RS_Main_00410, RS_Main_00440, RS_Main_00445, RS_Main_00480, RS_Main_00490, RS_Main_00491, RS_Main_00500, RS_Main_00503, RS_Main_00507, RS_Main_00510, RS_Main_00511, RS_Main_00512, RS_Main_00513, RS_Main_00652, RS_Main_00653, RS_Main_01001, RS_Main_01002, RS_Main_01003, RS_Main_01004, RS_Main_01005, RS_Main_01007, RS_Main_01008)
6 参考文献
[1] 标准化模板 AUTOSAR_TPS_StandardizationTemplate [2] RFC 中用于指示需求级别的关键词 http://www.ietf.org/rfc/rfc2119.txt [3] 术语表 AUTOSAR_TR_Glossary [4] Manifest 规范 AUTOSAR_TPS_ManifestSpecification [5] 状态管理需求 AUTOSAR_RS_StateManagement [6] 主要需求 AUTOSAR_RS_Main