() │
│ │ ◄──────────────────────────────────────────────────│
│ │ │ AllowAccess(AppID) │
│ │ │ ──────────────►│ │
│ │ │ │ 分区已重启 │
│ │ │ │ ──────────────►│
```
#### 10.3.4 用例支持
| 用例 | OS 支持 | BSW 支持 | RTE 支持 | 应用层支持 |
|------|---------|----------|----------|------------|
| UC1:软件分区 | OS-Application 终止/重启 | Dem、WdgM | Rte_PartitionTerminated | (无标准) |
| UC2:应用级错误处理 | OS-Application 终止/重启 | Dem、WdgM、FIM、BswM | Rte_PartitionTerminated | ALEM(自定义) |
#### 10.3.5 一致性方面
##### 10.3.5.1 应用级一致性
任何由重启分区引起的应用级不一致**预期**由 SW-C 自身处理。但是,SW-C 可以**信任 RTE** 相对于已终止/重启的分区以一致且定义明确的方式行为。10.3.5.3 节介绍了 RTE 为实现此目标所需的一致性要求。
##### 10.3.5.2 BSW 一致性
BSW 一致性需要通过在重启或终止分区时执行的**清理活动**来确保。有关这些活动的详细信息,请参见 10.3.2.3 节。
##### 10.3.5.3 通信一致性
当分区被终止或重启时,这可能导致通信方之间的(临时)通信丢失。在所有此类情况下,AUTOSAR 必须确保系统是一致的,即系统仍可以在没有不良副作用的情况下取得进展。处理 SW-C(包含在分区中)被终止或重启的情况是**应用开发人员**的工作。
为处理分区被终止并因此无法再对事件做出反应的情况,必须定义系统相对于已终止分区的行为。请注意,由于错误遏制区是分区,分区**内**通信的一致性是**不相关的**,因为分区中的所有任务都已终止。因此,**只有**分区**之间**(包括跨 ECU)通信才能导致一致性问题。
**主要原则**应如下:考虑我们有两个分区相互交互的情况。在某个时刻,其中一个分区被终止(重启)。对于剩余分区来说,无论已终止(重启)的分区是驻留在同一 ECU 上还是另一个 ECU 上,**对此的感知应相同**。其结果是,RTE 行为在两种情况下应相同。
该原则意味着应使用**超时监控**来检测信息接收方(在 SR 和 CS 通信中)是否已终止。尝试与已终止(或正在重启)的分区发起通信应导致**超时通知**,与原始信号丢失或接收 ECU 未响应的情况相同。它也不强加给分区"知道"通信是本地还是远程的负担,即使在失败的情况下也是如此。
**分区重启后**,其状态可能与其他分区的状态视图不一致。例如,如果两个消息(CS 和 SR)之间存在依赖关系,则可能因重启而中断。
### 10.4 集成商责任
集成商对实现终止和重启动作负有**总体责任**,通过提供 Protection Hook 和 Restart Task 的代码以及任何用于协调和正确集成功能的**粘合代码**。
以下是由集成商或开发人员完成以正确处理分区终止和重启的事项**清单**:
1. **将应用分解**为 SW-C,并根据所选分区/错误遏制区对 SW-C 进行**分组**。
2. **根据分解结果配置**分区和 OS-Application。
3. **为每个 SW-C 指示**其是否可以终止或重启(当然,确保 SW-C 的实现支持这一点)。
4. **为每个分区指示**其是否可以终止或重启。
5. **决定分区的错误处理策略**。将重启和终止的决策基于例如错误类型和先前重启次数,以及与该决策相关的任何其他信息。
6. **在 Protection Hook 中实现**所选策略和决定(请记住,整个 ECU 只有一个全局 Protection Hook)。使用 `Rte_PartitionTerminated_