Specification of Execution Management, AUTOSAR 721 , R23-11, AP

AUTOSARが2023年版、R23-11を公開しました。
https://www.autosar.org/fileadmin/standards/R23-11/AP/AUTOSAR_AP_SWS_ExecutionManagement.pdf

R22-11
https://www.autosar.org/fileadmin/standards/R22-11/AP/AUTOSAR_SWS_ExecutionManagement.pdf

R21-11
https://www.autosar.org/fileadmin/standards/R21-11/AP/AUTOSAR_SWS_ExecutionManagement.pdf

R20-11
https://www.autosar.org/fileadmin/standards/R20-11/AP/AUTOSAR_SWS_ExecutionManagement.pdf

R19-11
https://www.autosar.org/fileadmin/standards/R19-11/AP/AUTOSAR_SWS_ExecutionManagement.pdf

文書は検索してダウンロードできます。
https://www.autosar.org/



<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words in order.

# Release Overviews
AUTOSARには現在3つの分類があります。Foundation, CAN OSEK/VDXのClassic Platform, Ethernet/TCP/IP POSIXのAdaptive Platform.

Foundation Release Overview, AUTOSAR 781, R23-11, FO
https://qiita.com/kaizen_nagoya/items/f249bdb8c313d8bff883

Classic Platform Release Overview, AUTOSAR No.0 ,R23-11, CP
https://qiita.com/kaizen_nagoya/items/9d22c8722cbc0f42b137

Adaptive Platform Release Overview, AUTOSAR 782, R23-11, AP
https://qiita.com/kaizen_nagoya/items/13a104606a34fe24fcf7

# Qiita 記事一覧
Autosar Foundation R23-11 一覧
https://qiita.com/kaizen_nagoya/items/c30674cb2dac2fcbbd04

AUTOSAR Adaptive Platform R23-11一覧
https://qiita.com/kaizen_nagoya/items/1dece8799a730367b0dc

Autosar Classic Platform R23-11 一覧
https://qiita.com/kaizen_nagoya/items/f770f6c2906e1dcbf180


# 文書変更(Document Change) 

>• Requirements for deterministic execution are set to obsolete
• The right to create child processes can be configured by integrator
• Added support for standardized trace points
• API Refinement (ExecutionClient termination handler, remove FunctionGroup, C++ Core Guidelines compliance)
• Clarification of Unrecoverable State

# 用語(terms)

|Term| Description|
|:----|:----|
|process|A process refers to the OS concept of a running process. Attention: process is not equal to Modelled Process (see below). Hence each Modelled Process has at some time a related (OS) process but a process may not always have a related Modelled Process.|
|Modelled Process| A Modelled Process is an instance of an Executable to be executed on a Machine and has a 1:1 association with the ARXML/Meta-Model element Process. This document also uses the term process (without the "modelled" prefix) to refer to the OS concept of a running process.|
|Reporting Process| A type of Modelled Process with an associated Executable where reportingBehavior is omitted ([TPS_MANI_01279]) or set to reportsExecutionState. A Reporting Process is expected to report its Execution State to Execution Management.| |
|Non-reporting Process| A type of Modelled Process with an associated Executable where reportingBehavior set to doesNotReportExecutionState ([TPS_MANI_01279]). A Non-reporting Process is not expected to report its Execution State to Execution Management.|
|Companion Process| A type of Reporting Process that is associated with Non-reporting Process and used to determine when functionality expected from Non-reporting Process is available. Whenever functional dependencies on Non-reporting Processes exist, the integrator can configure proxy Execution Dependencies on the Companion Process and make the Companion Process kRunning reporting conditional on monitored Non-reporting Process.|
|Self-terminating Process| A type of Modelled Process that has terminationBehavior configured to processIsSelfTerminating. This type of Modelled Process is allowed to self initiate termination procedure (i.e. just terminate with exit status EXIT_SUCCESS), or wait for Execution Management to initiate termination procedure via SIGTERM.|
|Unexpected Self-termination| The event consumed by Execution Management when a Modelled Process terminates without justified reason, for example: - termination without prior request where terminationBehavior is configured to processIsNotSelfTerminating. - termination before reporting kRunning. Please note that every Unexpected Self-termination is also an Unexpected Termination, so requirements for the later apply here as well.|
|Unexpected Termination| The event consumed by Execution Management when a Modelled Process terminates with exit status other than 0 (EXIT_SUCCESS). Any kind of unhandled signal will result in an Unexpected Termination and thus a non 0 exit status.|
|Execution Dependency| Dependencies between Modelled Process instances can be configured to define a sequence for starting and terminating them.|
|Execution Management| The element of the AUTOSAR Adaptive Platform responsible for the ordered startup and shutdown of the AUTOSAR Adaptive Platform and Adaptive Applications.|
|State Management|The element defining modes of operation for AUTOSAR Adaptive Platform. It allows flexible definition of functions which are active on the platform at any given time.
|Function Group| A Function Group is a set of Modelled Processes which need to be controlled consistently. Depending on the state of the Function Group, processes (related to the Modelled Processes) are started or terminated. Modelled Processes can belong to more than one Function Group State, but at exactly one Function Group (if a Modelled Process were allowed to be running at the same point in time in more than one Function Group then potential contradictions in the logic of the Function Group state transitions could cause errors, see Section 7.5.3). MachineFG is a Function Group with a predefined name, which is mainly used to control Machine lifecycle and processes of platform level Applications. Other Function Groups are sort of general purpose tools used (for example) to control processes of user level Applications.| 
|Function Group State| The element of State Management that characterizes the current status of a set of (functionally coherent) user-level Applications. The set of Function Groups and their Function Group States are configured in the Execution Manifest.|
|Undefined Function Group State|Any state of a Function Group, which is not modelled. A Function Group is in an Undefined Function Group State during state transition, if a state transition failed or if an Unexpected Termination or Unexpected Self-termination happened. | 
|Machine State| A state of Function Group "MachineFG" with some predefined states (Startup/Shutdown/Restart). This can term can refer to the current state ("The Machine State is ..."), to a specific state ("In Machine State Startup ..."), or to a set of states ("In Machine States Startup or Shutdown ...").|
|Time Determinism| The results of a calculation are guaranteed to be available before a given deadline.|
|Data Determinism| The results of a calculation only depend on the input data and are reproducible, assuming a given initial internal state.|
|Full Determinism| Combination of Time and Data Determinism. Communication Management|
|Execution Manifest| Manifest file to configure execution of an Adaptive Application. An Execution Manifest is created at integration time and deployed onto a Machine together with the Executable to which it is attached. It supports the integration of the Executable code and describes the configuration properties (startup parameters, resource group assignment etc.) of each process, i.e. started instance of that Executable.|
|Machine Manifest| Manifest file to configure a Machine. The Machine Manifest holds all configuration information which cannot be assigned to a specific Executable or process.|
|Operating System| Software responsible for managing processes on a Machine and for providing an interface to hardware resources.|
|ExecutionClient| Adaptive Application interface to Execution Management.|
|DeterministicClient|Adaptive Application interface to Execution Management to support control of the process-internal cycle, a deterministic worker pool, activation time stamps and random numbers.| 
|StateClient| State Management interface to Execution Management to support Function Group State and Machine State management.|
|Platform Health Management| A Functional Cluster within the Adaptive Platform FoundationRecovery Action| Actions defined by the integrator to control Adaptive Application error recovery.|
|Process State| Lifecycle state of a Modelled Process|
|Service Instance| Manifest Manifest file to configure Service usage of an Adaptive Application.|
|Trusted Platform| An execution platform supporting a continuous chain of trust from boot through to application. The trust chain ensures that all execution is both authenticated (that all code executed is from the claimed source) and subjected to integrity validation (that prevents tampered code/data from being executed).| 
|DeterministicSyncMaster| A synchronization control point that receives the synchronization requests through a dedicated communication channel, for example ara::com, and sends the calculated cycle information for the next execution cycle to the connected DeterministicClients in the same domain.|
|Deterministic Random Numbers|A set of random numbers that follows a known sequence and thus the same set can be distributed (one at a time) to deterministic workers. Note that this does not mean that randomness is compromised as that relates to predictability of the sequence by an observer and not to the fact that the set is predefined.| 
|Unrecoverable|A state entered by Execution Management in response to a situation that it cannot resolve. In the state, Execution Man- agement stops taking any further actions, terminates all pro- cesses managed by Execution Management and provides a facility for further project-specific handling.

# Reference

[1] Specification of Communication Management AUTOSAR_AP_SWS_CommunicationManagement
[2] Glossary AUTOSAR_FO_TR_Glossary
https://www.autosar.org/fileadmin/standards/R23-11/FO/AUTOSAR_FO_TR_Glossary.pdf
[3] Specification of Manifest AUTOSAR_AP_TPS_ManifestSpecification
[4] Specification of Adaptive Platform Core AUTOSAR_AP_SWS_Core
[5] Requirements on Execution Management AUTOSAR_AP_RS_ExecutionManagement
[6] Explanation of Adaptive Platform Software Architecture AUTOSAR_AP_EXP_SWArchitecture
[7] Methodology for Adaptive Platform AUTOSAR_AP_TR_Methodology
[8] Specification of Platform Health Management AUTOSAR_AP_SWS_PlatformHealthManagement
[9] Specification of State Management AUTOSAR_AP_SWS_StateManagement
[10] Guidelines for using Adaptive Platform interfaces AUTOSAR_AP_EXP_InterfacesGuidelines
[11] Safety Requirements for AUTOSAR Adaptive Platform and AUTOSAR Classic Platform
AUTOSAR_FO_RS_Safety
[12] Standard for Information Technology–Portable Operating System Interface (POSIX(R)) Base Specifications, Issue 7 http://pubs.opengroup.org/onlinepubs/9699919799/
[13] Algirdas Avizienis, Jean-Claude Laprie, Brian Randell, and Carl Landwehr, ’Basic Concepts and Taxonomy of Dependable and Secure Computing’, IEEE Transac- tions on Dependable and Secure Computing, Vol. 1, No. 1, January-March 2004
[14] Explanation of Adaptive Platform Design
AUTOSAR_AP_EXP_PlatformDesign
[15] Explanation of Identity and Access Management AUTOSAR_AP_EXP_IdentityAndAccessManagement

## 補足資料（Additions）
祝休日・謹賀新年：2024年の目標
https://qiita.com/kaizen_nagoya/items/b659d922327a7dcdc898

2023 Countdown Calendar 主催・参加一覧
https://qiita.com/kaizen_nagoya/items/c4c2f08ac97f38d08543

CountDownCalendar月間　いいねをいただいた記事群　views　順
https://qiita.com/kaizen_nagoya/items/583c5cbc225dac23398a

Countdown Calendar 2023, 百記事目を書くにあたって。
https://qiita.com/kaizen_nagoya/items/45185a04cfd88b71256a

1年間をまとめた「振り返りページ」＠２０２３
https://qiita.com/kaizen_nagoya/items/bcd1ebd49d3a9e8c7a90

AUTOSAR 文書番号
https://qiita.com/kaizen_nagoya/items/8b894228a0b76c2265c7

AUTOSAR Countdown Calendar 2023
https://qiita.com/advent-calendar/2023/autosar

AUTOSAR Abstract Platformへの道 R22-11
https://qiita.com/kaizen_nagoya/items/8ac2826635a8c536c7ec

自動車　記事　１００
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5

Basic principles, ボッシュ自動車handbook(英語)11版まとめ<2>
https://qiita.com/kaizen_nagoya/items/24a1ba5da3d09b2a95d1

JAXA/IPA クリティカルソフトウェアワークショップ WOCS言語関連発表(改定版)
https://qiita.com/kaizen_nagoya/items/4789832baf494cb74626

＜この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。＞
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.


# 文書履歴(document history)
ver. 0.01 初稿 　20240102
### 最後までおよみいただきありがとうございました。
いいね　💚、フォローをお願いします。
#### Thank you very much for reading to the last sentence.
Please press the like icon 💚　and follow me for your happy life.