色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AUTOSAR AP平臺核心技術解析

jf_C6sANWk1 ? 來源:阿寶1990 ? 2023-12-15 11:34 ? 次閱讀

本文主要分享執行管理和狀態管理以及操作系統接口模塊,這些功能集群是Adaptive AUTOSAR的核心部分。你們可能會問,什么是執行管理和狀態管理?它們是不是很復雜很高深?其實不然,它們就像是你的汽車的大腦和心臟,它們控制著你的汽車軟件的啟動、運行和停止,以及與你的汽車的操作系統的溝通。

AP平臺是AUTOSAR為了讓你的汽車變得更強大更靈活而制定的一種軟件架構標準,它由多個功能集群組成,每個功能集群都有自己的特色和作用。在這篇文章中,將向你解釋這些功能集群的基本概念、功能、原理和實現方式,以及它們在汽車軟件開發中的作用和價值。希望你能通過閱讀這篇文章,對Adaptive AUTOSAR有一個更深入的了解,也能夠在你的工作中更好地應用它。讓我們開始吧。

本文將從以下六個方面來介紹這兩個模塊:

wKgaomV7yXSAYNrQAAEXUZJ0vyE664.png

1.執行管理模塊:介紹執行管理模塊的職責和功能,以及它如何根據Manifest文件來初始化和管理平臺和應用。

2.確定性執行:介紹執行管理模塊如何提供DeterministicClient API來支持數據確定性執行,以及如何與軟件鎖步框架協作。

3.狀態管理模塊:介紹狀態管理模塊的職責和功能,以及它如何定義和管理Machine State和Function Group State。

4.執行管理和狀態管理的交互:介紹執行管理模塊和狀態管理模塊如何通過SetState和ReportExecutionState API來協調平臺和應用的狀態轉換。

5.操作系統接口:介紹執行管理模塊如何與操作系統交互,以及如何使用操作系統提供的資源和服務。

6.如何編寫一個自適應應用程序:介紹如何遵循AUTOSAR規范和編程標準來編寫一個符合AP平臺要求的自適應應用程序,并向執行管理匯報狀態。

第一部分

1 執行管理(EM)

wKgZomV7yXSAduV4AAIGHXMYGfM496.png

Execution Management(EM)是Adaptive Platform的核心部分,它負責管理Machine的生命周期,包括啟動、關閉、重啟等。EM還負責管理Function Groups的狀態,Function Groups是一組相互關聯,需要統一控制的進程的集合。EM還負責解析Execution Manifest和Machine Manifest,這些文件描述了Machine的配置和屬性,以及進程的依賴和優先級等。

1.1 執行管理模塊涉及到AP平臺的多個方面

執行管理模塊(Execution Management,EM)是自適應平臺和應用程序的執行管理的核心部分,它負責平臺和應用程序的初始化、啟動、關閉、狀態轉換、確定性執行等功能。

執行管理模塊根據Machine Manifest和Execution Manifest中的信息來管理平臺和應用程序的生命周期,這些信息包括應用程序的屬性、依賴、資源、優先級、狀態等。

執行管理模塊提供DeterministicClient API來支持數據確定性執行,即保證在給定的輸入數據下,應用程序能夠在有限時間內產生一致的輸出結果。執行管理模塊還可以與軟件鎖步框架協作,以確保冗余運行的進程的行為一致。

執行管理模塊與狀態管理模塊(State Management,SM)密切交互,以協調平臺和應用程序的狀態轉換。狀態管理模塊定義和管理Machine State和Function Group State,分別表示機器的運行階段和功能組的運行條件。執行管理模塊根據狀態管理模塊的請求,啟動或停止相應的進程或功能組。

執行管理模塊與操作系統接口,以使用操作系統提供的資源和服務,如內存、CPU、調度、文件系統等。執行管理模塊還與其他功能模塊,如診斷管理、升級管理、網絡管理等進行交互,以響應不同的事件和請求。

執行管理模塊遵循AUTOSAR規范和編程標準,要求自適應應用程序(Adaptive Application,AA)也遵循相同的規范和標準,使用ARA(AUTOSAR Runtime for Adaptive applications)作為接口,向執行管理模塊報告狀態和事件。執行管理模塊還負責驗證應用程序的可信度和完整性,以保證安全性和可靠性。AP平臺的執行管理模塊:是一個負責管理平臺和應用的生命周期和資源的功能集群。

執行管理模塊除了與操作系統接口,還與其他功能模塊,如診斷管理(Diagnostic Management,DM), 升級管理(Update configuration Management,UCM), 網絡管理(Network Management,NM)等進行交互,以響應不同的事件和請求。這些功能模塊提供了一些特定的服務和API,用于實現平臺和應用程序的診斷、升級、通信等功能。執行管理模塊可以通過調用這些服務和API,或者注冊回調函數,來與這些功能模塊進行協作和協調。

將從以下幾個方面來詳細展開:

wKgaomV7yXSAF5q7AAIIPN_zkPE117.png

1.2 Execution Management(EM)概述

wKgaomV7yXSAQdN8AAJMF09eu6s585.png

執行管理是自適應平臺基礎的一個功能模塊,它負責平臺的初始化和管理模型化進程的生命周期。模型化進程是一種獨立的可執行單元,它可以自主控制內部線程的創建和銷毀。

執行管理根據清單文件中的信息來執行這些操作,例如何時以及以何種方式啟動或停止模型化進程。執行管理還支持狀態管理、確定性執行和安全性等功能。

執行管理是AUTOSAR自適應平臺的組成部分,但它并不是AUTOSAR系統的唯一部分,因為車輛中還有許多基于AUTOSAR經典平臺的ECU。因此,車輛的系統設計需要考慮AUTOSAR經典平臺ECU和AUTOSAR自適應平臺機器的協同工作。

執行管理的基本概念:

執行管理是指用于管理應用程序的執行過程的軟件模塊。

執行管理負責管理應用的啟動、運行和停止等過程。

執行管理的功能和作用:

啟動和關閉Machine,配置和加載應用程序,處理啟動和關閉過程中的錯誤和異常。

控制應用程序的執行狀態,設置應用程序的調度參數,監控應用程序的狀態、資源、性能,處理應用程序之間的同步和通信。

管理功能組的狀態,實現功能組之間的協調和一致性,根據不同的場景和需求,動態地切換功能組的狀態。

處理平臺和應用程序中發生的錯誤和異常,根據不同的錯誤類型和嚴重程度,采取相應的恢復措施。

wKgZomV7yXSAYU7BAAIl7lOt2hg048.png

從AP的整體架構來看:

執行管理是AUTOSAR AP 平臺的核心功能模塊之一,如圖中的1,2,3所示,執行管理模塊與POSIX的操作系統接口和狀態管理有著密不可分的關系。

執行管理與其他應用程序一樣,本質上是POSIX的操作系統上運行的進程。

執行管理是AUTOSAR AP平臺的進程創建的入口點,由操作系統在系統啟動期間,啟動執行管理這個進程。

執行管理負責啟動所有功能集群、自適應AUTOSAR服務和用戶級應用程序的進程。

執行管理管理進程的能力是指在AP AUTOSAR平臺中,能夠有效地實施和執行平臺初始化、啟動和停止所有功能集群、自適應AUTOSAR服務和用戶級應用程序的進程。

換句話說,執行管理可以根據我們配置出來的manifest文件來啟動和停止功能組中配置的進程,即EM控制進程怎么運行。

執行管理需要通過與操作系統交互,為應用程序提供了靈活的運行時調度機制,支持多進程和多線程的能力。支持多進程的原因之一是要實現不同功能集群和AA之間的“無干擾”。

執行管理還支持狀態管理、資源限制、應用恢復和可信平臺、確定性執行的功能,以保證系統的可靠性和穩定性。

執行管理模塊和狀態管理模塊之間的區別主要有以下幾點:

執行管理模塊負責平臺和應用的初始化、啟動和停止,以及相關的配置和管理,而狀態管理模塊負責定義和控制平臺和應用的運行狀態和狀態轉換。

執行管理模塊依賴于Machine Manifest和Execution Manifest來確定應用的啟動和停止順序,以及應用的依賴關系和優先級,而狀態管理模塊依賴于功能組和功能組狀態來確定當前運行的進程集合。

執行管理模塊提供了一些功能來支持確定性執行、資源限制、應用恢復和可信平臺,而狀態管理模塊沒有這些功能。

執行管理模塊和狀態管理模塊之間有一定的協作關系,例如執行管理模塊需要根據狀態管理模塊的請求來啟動或停止進程,而狀態管理模塊需要根據執行管理模塊的反饋來更新狀態。

執行管理模塊與操作系統接口的主要方式有以下幾種:

通過系統調用(System Call)來請求操作系統的服務,例如創建、銷毀、啟動、停止進程,分配、釋放、映射內存,打開、關閉、讀寫文件,發送、接收網絡數據等。系統調用是操作系統提供的一組標準的函數或指令,它們可以讓執行管理模塊在用戶態切換到內核態,從而訪問操作系統的內部資源和功能。

通過信號(Signal)來接收操作系統的通知,例如進程終止、內存錯誤、中斷、異常等。信號是操作系統提供的一種異步的事件通知機制,它可以讓執行管理模塊在收到信號后執行相應的處理函數,從而響應操作系統的狀態變化。

通過共享內存(Shared Memory)來與操作系統共享數據,例如進程間通信、內存映射文件、共享庫等。共享內存是操作系統提供的一種高效的數據交換方式,它可以讓執行管理模塊在不進行數據復制的情況下,直接訪問操作系統或其他進程的內存空間,從而提高性能和節省資源。

1.3 與執行管理相關的組件

wKgaomV7yXSAaTn7AAJlplhOkz0413.png

執行管理(EM)可以控制和管理自適應應用程序的運行

它依賴以下幾個組件來實現它的功能:

1. 應用恢復管理器:它可以通過PHM檢測應用程序的故障,并根據Execution Manifest文件中的設置,對應用程序進行恢復操作,如重啟、替換或終止。

2. 操作系統接口:它可以通過這些接口調用操作系統的基本服務,如進程管理、信號處理等。EM是一個與操作系統無關的抽象層,可以在不同的操作系統上運行。

3. 資源管理:它可以分配和釋放系統資源,并監控資源的使用情況。它可以根據Machine Manifest文件中的設置,對應用程序進行資源限制和隔離。

4. 狀態管理:它可以管理應用程序的狀態和生命周期,并與其他軟件組件進行交互。

1.4 什么是自適應應用程序

自適應應用程序(Adaptive Application,AA)是一種運行在AUTOSAR自適應平臺(Adaptive Platform,AP)上的軟件組件,它可以實現高性能的計算和通信功能,例如自動駕駛、車聯網等。自適應應用程序可以根據運行時的需求和條件,動態地調整其行為和配置,例如支持無線更新、服務發現、故障管理等。自適應應用程序通過ARA(AUTOSAR Runtime for Adaptive applications,自適應應用程序的運行平臺)與AP的功能集群(Function Clusters,FCs)進行交互,使用服務和API作為接口。

提供給自適應應用程序的編程接口集合稱為AUTOSAR Runtime for Adaptive (ARA)。

wKgZomV7yXSAKst0AAEswOJymCg982.png

(圖片來自網絡)

自適應應用程序總是建立在中間件層之上,中間件層是一些提供基礎服務和功能的模塊。這樣做的好處是,自適應應用程序可以方便地移植到不同的平臺上,也可以重復使用已有的代碼。自適應應用程序是根據功能需求來開發的,它只使用AUTOSAR定義的API,這些API是一些通用的接口,可以讓不同的應用程序互相協作。自適應應用程序也要按照編碼指南來編寫代碼,這些指南是一些規范和建議,可以讓代碼更清晰和規范。

wKgZomV7yXSAX-nCAAGxRAj1fvo485.png

自適應應用程序是實現應用功能的軟件單元,它是功能開發的成果,也是針對特定機器進行配置和集成的軟件組件。配置和集成就是根據機器的特點和需求,調整和組合不同的軟件單元。

wKgZomV7yXSAX6XZAAB_XYP_kcM108.png

上圖顯示了一個自適應應用程序與三個文件的關系,這三個文件分別是:

執行清單,也就是Application1Startup.arxml,它定義了進程的啟動方式和參數,以及進程所需的資源和依賴。

服務實例清單,也就是Application1Service.arxml,它定義了進程提供和消費的服務,以及服務的屬性和接口。

進程的可執行文件,也就是Application1Executable,它是進程的二進制文件,包含了進程的具體邏輯和功能。

wKgZomV7yXSACiOTAAG5pUDXZw8360.png

Mapping of a Process to a Machine

上圖是一個進程如何映射到一個機器的神奇過程,看起來像是一幅抽象畫,但其實這是由AP的工具鏈來完成來的,我們只需要在工具鏈中告訴它哪個進程要跑在哪個機器上就可以了。工具鏈會根據我們的要求,生成一些代碼和配置文件,然后把它們打包送到目標機器(ECU)上。

這樣,我們就可以在一個機器上運行多個進程,或者在多個機器上運行同一個進程,實現高效的資源利用和軟件復用。

縮略詞和縮寫

Modelled Process模型化進程是一種在機器上運行的可執行文件的實例,它與ARXML/Meta-Model中的Process元素一一對應。在AUTOSAR文檔中,為了區分操作系統中的進程概念,一般用process(沒有“modelled”前綴)來表示正在運行的進程。

Reporting Process 報告進程是一種與可執行文件對應的模型化進程,在工具鏈中將reportingBehavior設置為reportsExecutionState。這種模型化進程會向執行管理反饋自己的執行狀態。

Non-reporting Process非報告進程是一種與可執行文件對應的模型化進程,在工具鏈中將reportingBehavior設置為doesNotReportExecutionState。

Self-terminating Process這種進程可以自行啟動和終止程序(只能用退出狀態EXIT_SUCCESS終止),或等待執行管理發送SIGTERM信號來啟動終止程序。

Unexpected Self-termination:意外自終止是執行管理檢測到的一種事件,當進程沒有被請求終止,卻自行終止時發生,

例如:

進程沒有設置terminationBehavior為processIsNotSelfTerminating,卻自行終止。

模型化進程在報告kRunning之前終止。請注意,意外自終止也屬于意外終止,所以意外終止的要求也適用于這里。意外終止是執行管理檢測到的一種事件,當進程以非0(EXIT_SUCCESS)的退出狀態終止時發生。任何未處理的信號都會導致意外終止,從而導致非0的退出狀態。

Execution Dependency 是一種配置選項,它可以設置模型化進程實例之間的啟動和停止順序,以滿足它們的依賴關系。

1.5 AP平臺的幾種的清單

首先了解什么是清單?

清單是一種用ARXML格式編寫的文件,它由AP工具鏈根據應用程序的特性和服務實例生成。

清單的目的是提供應用程序在自適應平臺上運行所需的信息。

清單的優點是,可以實現應用程序軟件代碼和部署方案的分離,提高應用程序軟件在不同部署方案下的重用性。

清單在軟件集成階段,機器清單和執行清單可以由標準ARXML文件轉換為平臺特定的格式(稱為Processed Manifest),方便執行管理模塊在機器啟動時加載。Processed Manifest還可以包含一些集成時生成的代碼或數據,例如執行清單中的恢復操作或服務實例清單。

清單在應用設計階段由開發者通過AP工具鏈創建,并與可執行文件一起部署到機器上。

清單有三種常見的類型:機器清單、執行清單、服務實例清單。

wKgZomV7yXSAP-TaAAKXhI0K2LA507.png

Machine Manifest和Execution Manifest是AP autosar 的兩種重要的配置文件,它們用于描述硬件平臺和應用程序的特性和需求,以及應用程序的依賴關系和優先級 。

執行清單(Execution Manifest)

執行清單由開發人員在應用設計期間創建,作用是為了支持可執行文件在機器上的部署和管理,它可以和可執行文件一起被部署到機器上。

執行清單的目的是提供在AUTOSAR AP上實際部署應用程序所需的信息。

總的想法是保持應用軟件代碼盡可能獨立于部署場景,以增加應用軟件在不同場景中的復用性。

通過執行清單,應用程序的實例化受到控制,因此可以:

在同一臺機器上多次實例化同一個應用軟件

將應用軟件部署到幾臺機器上,并且每臺機器上實例化應用軟件

執行清單側重于以下幾方面:

啟動配置,定義如何啟動應用程序,包括啟動參數和環境變量等。每次啟動可能取決于機器狀態/功能組狀態。

資源管理,特別是資源組分配。

執行清單可以由標準ARXML文件轉換為平臺特定格式(也稱為Processed Manifest),可以在機器啟動時被讀出。

wKgaomV7yXSANfF2AAL7Mc654mk063.png

使用RTA-VRTE工具鏈,可以在Execution Editor中按照以下步驟進行可執行文件的屬性設置:

添加可執行文件,并填寫其名稱、路徑、SWC和版本等信息。

添加進程,并為每個可執行文件實例配置啟動參數、需要的服務接口,庫、資源組分配、調度策略、啟動和停止時間,

配置可執行文件的狀態機,如Machine 和Function Group State

添加可執行文件的依賴關系,并指定依賴的服務進程或后臺守護進程以及依賴的進程狀態。

執行清單和可執行代碼一起打包,可以將可執行代碼部署到目標機器上。通過執行清單,可以為每個進程實例設置不同的配置選項,也可以根據機器狀態或功能組狀態選擇不同的配置集。

機器清單Machine Manifest

Machine Manifest是在集成期間為一個特定機器創建的,包含了所有無法被Execution Manifest和Service Instance Manifest覆蓋的其他配置信息。

機器清單是一個定義Machine的配置的文檔,它包含了一些與特定的可執行文件或進程無關的配置信息,這些信息涉及機器的屬性、特性(資源、功能安全、信息安全等),例如機器狀態Machine State、功能組狀態Function Group State、資源組、訪問權限組、調度配置、內存分區等。

wKgaomV7yXSACTQmAAIAhaG-V44143.png

圖示是使用 RTA-VRTE 工具鏈,創建Machine Manifest,通常需要按照以下步驟進行配置:

wKgaomV7yXSAF_AMAAF39ItO9sI249.png

在Software層級:

創建Function Group (MachineFG),并指定Machine State,如:啟動、關閉、重啟、關機等。

創建FunctionGroupSet,并在FunctionGroupSet中,添加已經創建的Function Group

創建SoftwareCluster和SoftwareClusterDesign,并建立映射關系

將FunctionGroupSett添加到相應的軟件集群SoftwareCluster中

將MachineDesign添加到相應的軟件集群SoftwareClusterDesign中

在軟件集群的配置中,建立FunctionGroupSet、MachineDesign和進程之間的映射關系,比如確定功能組和軟件集群的映射關系,以及進程和軟件集群的映射關系。

wKgZomV7yXSANOTKAAKcwSaCk_M034.png

在System層級:

創建Machine和MachineDesign并建立映射關系。

設置Machine的基本屬性,比如名字、類型、版本、ID 等。

在Machine上創建資源組ResourceGroup,并分配一些硬件資源,比如內存大小、cpu使用率等。

ResourceGroup還將與進程配置所屬關系。

通過MachineDesign,配置Machine的網絡連接參數,比如IP地址、端口號等。

通過MachineDesign,配置服務發現的參數,比如多播地址、端口號等。

Machine 和Machine Design的關系

wKgaomV7yXSAcDznAADEuBdDyoU788.png

在AP平臺中,Machine是一種虛擬的計算資源,它可以對應一個物理的處理器,也可以對應一個虛擬機或一個容器。

Machine上運行著不同的功能集群和服務,它們提供了各種汽車應用程序的功能。

Machine Design是一種描述Machine之間協作和交互方式的模型,它定義了Machine之間的通信協議和接口。

Machine和Machine Design之間的關系是:一個Machine Design可以包含多個Machine,一個Machine只能屬于一個Machine Design。

一個Machine Design可以描述一個完整的汽車系統,也可以描述一個子系統或一個功能域。

為了讓Machine能夠在網絡中通信,每個Machine都需要在Machine Design中配置IP地址,它包含了Machine的網絡地址和其他信息。

如果沒有IP配置,Machine就無法找到或被找到其他Machine或設備。

Machine Manifest和Execution Manifest可以在運行時被修改和更新,從而實現應用程序的靈活部署和動態管理 。

例如,當平臺或應用程序的特性或需求發生變化時,可以通過修改Machine Manifest或Execution Manifest來反映這些變化,從而使平臺或應用程序適應新的環境或需求 。或者,當需要部署或更新新的應用程序時,可以通過添加或修改Execution Manifest來實現應用程序的增量部署或動態更新,從而減少軟件開發和集成的工作量,縮短迭代周期 。

服務實例清單(Service Instance Manifest)

Service Instance Manifest 服務實例清單 用于配置自適應應用程序使用的面向服務通信的清單文件。

wKgaomV7yXSASH6-AAGaFkWaqPE588.png

服務實例清單主要包含面向服務通信的配置信息 ,描述針對特定的傳輸協議(如SOME/IP接口部署設置 Service ID,Method ID,Event ID,端口號等),進行面向服務通信的配置可執行代碼綁定(服務實例到機器的映射、服務實例到應用端點的映射),還包含基于服務的通信相關信息,如應用層及相應的傳輸層、網絡層通信參數信息。

1.6 執行管理中定義的接口

執行管理中定義的接口分為三類,它們分別用于實現不同的功能和目標:

1. 用于狀態報告的接口(見圖9.3):這類接口主要用于讓執行管理了解AP平臺和應用程序的運行狀況,以便進行相應的控制和管理。所有由執行管理啟動的進程(即AP平臺的所有進程和AA的所有進程)都應該通過ExecutionClient接口向執行管理報告其執行狀態。

其中:ExecutionClient 自適應應用程序接口,用于與執行管理進行交互。

wKgZomV7yXSARzOxAADuD1vnoGs386.png

這個接口提供了一個功能,使得一個進程能夠向執行管理報告其執行狀態,包括初始化、運行、停止、錯誤等。執行管理可以根據這些狀態信息來決定是否需要啟動、停止、重啟或恢復某個進程,以保證平臺和應用程序的正常運行。

執行管理把進程分為兩類:報告進程和非報告進程。

報告進程是進程的常規形式,而非報告進程是一種特殊情況。

非報告進程可以用于運行那些沒有適配AUTOSAR自適應平臺的可執行文件。比如,如果一個可執行文件只有二進制版本,如果無法修改其源碼或者如果可執行文件僅用于開發階段。

在涉及安全的系統中,系統設計者要謹慎使用非報告過程功能。這類過程可能無法提供安全關鍵功能,并且不受平臺健康管理的監控,但是它們仍然可能對其他安全相關的過程造成影響,從而帶來安全風險。為了把非報告過程和安全關鍵部分隔離開,可以使用ResourceGroup。如果非報告過程試圖報告其執行狀態,執行管理會將其視為錯誤。

wKgaomV7yXSAUklsAAEvO1ENQ68716.png

Users of the ExecutionClient interface

除了自適應應用程序,(如上圖)一些功能集群的守護進程也需要通過ExecutionClient接口向執行管理反饋其執行狀態。這樣,執行管理可以了解功能集群的運行情況,以便進行相應的控制和管理。

2. 用于確定性執行的接口(見圖9.4):這類接口主要用于實現平臺和應用程序的確定性執行,即在給定的時間內完成預期的任務。執行管理可以通過這些接口來控制進程的執行順序、優先級、資源限制等,以滿足實時性、安全性、性能等方面的需求。

wKgZomV7yXSAakaXAAHIziolD-o390.png

DeterministicClient 自適應應用程序接口,用于支持進程內部周期的控制、確定性工作池、激活時間戳和隨機數。

例如,執行管理可以通過ExecutionOrder接口來指定進程的啟動和停止順序,通過ExecutionPriority接口來指定進程的優先級,通過ExecutionResourceGroup接口來指定進程的資源組,從而避免進程之間的干擾和沖突。

3. 用于狀態管理的接口(見圖9.5):這類接口主要用于實現平臺和應用程序的狀態管理,即根據不同的系統需求和場景來切換平臺和應用程序的運行狀態。執行管理可以通過這些接口來與狀態管理模塊協作,實現平臺和應用程序的狀態轉換。

圖中的StateClient 狀態管理接口,用于支持功能組狀態和機器狀態管理。

wKgaomV7yXSAZ4BmAAHi6RdAIk0161.png

例如,執行管理可以通過MachineStateRequest接口來請求狀態管理模塊改變平臺的狀態,通過FunctionGroupStateRequest接口來請求狀態管理模塊改變功能組的狀態,從而實現平臺和應用程序的狀態轉換。

wKgaomV7yXSAMZZ0AANZVIPLD-s978.png

執行管理模塊需要使用的不同的接口,它們的作用是:

Multi-Process System Interface:可以讓執行管理模塊在操作系統層面上創建和管理進程。

Adaptive Intrusion Detection System Manager::EventReporter:可以讓執行管理模塊向自適應入侵檢測系統管理器發送安全事件的通知,比如發現可執行文件被篡改。

Execution Management::WorkerRunnable:可以讓執行管理模塊利用其確定性客戶端的實現來執行工作可運行實體,這些實體是一些具有特定功能的程序。

Log and Trace::Logger:可以讓執行管理模塊記錄一些標準化的消息,用于記錄和跟蹤其運行情況。

Persistency::KeyValueStorage:可以讓執行管理模塊讀取和寫入一些持久性的數據,這些數據是以鍵值對的形式存儲的。

Platform Health Management::SupervisedEntity:可以讓執行管理模塊將其進程注冊為被平臺健康管理監控的實體,這樣可以檢測和處理一些故障或異常。

Registry::ManifestAccessor:可以讓執行管理模塊從清單中讀取一些配置信息,這些信息包括其確定性客戶端的設置以及功能組和進程的屬性。

Time Synchronization::SynchronizedTimeBaseConsumer:可以讓執行管理模塊中的確定性客戶端實現與同步時間基進行同步,這樣可以保證確定性客戶端的執行與其他組件的執行一致。

1.7 執行管理的職責

執行管理模塊是自適應平臺和應用程序的執行管理的核心部分,它的職責包括:平臺的生命周期管理和應用程序生命周期管理。

AP平臺的生命周期管理

執行管理是 AUTOSAR 自適應平臺的第一個進程。準備好后,執行管理啟動機器狀態從Off狀態(EM 啟動前的默認狀態)到Startup狀態的轉換。在轉換過程中,執行管理請求啟動存在于Machine State為Startup中的進程。

在滿足必要的狀態轉換條件后,執行管理應向狀態管理報告機器狀態以啟動轉換確認。在這一點上,執行管理將功能組狀態管理的責任(即發起狀態變更請求)移交給狀態管理。

在一個機器上,它可以是任何資源組,即物理環境、hypervisor 上的虛擬化環境,或者 OS 級別的虛擬化(容器),執行管理不一定是啟動的第一個進程;

wKgZomV7yXSAd7FiAAHOQN5KnDE593.png

系統可能需要其他進程存在,例如操作系統初始化進程,或者操作系統微內核用戶級進程,如驅動程序、文件系統等。所有這些進程都可能在 AUTOSAR 自適應平臺之外啟動和管理。

請注意,一個應用程序由一個或多個可執行文件組成。因此,為了啟動一個應用程序,執行管理將進程作為每個可執行文件的實例啟動。平臺級進程的啟動順序應由執行管理根據機器清單和執行清單信息確定。

wKgZomV7yXWAWvXwAAGdNok7ETI636.png

執行管理模塊在AP平臺啟動的時候被激活,它負責初始化自適應平臺和所有部署在上面的應用程序。

啟動ECU后,將首先初始化操作系統,然后啟動執行管理作為操作系統的初始過程之一。

然后,執行管理將啟動Adaptive Platform Foundation的其他功能集群和Application-Level類型的應用程序。

Adaptive Platform Foundation啟動并運行后,執行管理將繼續啟動Adaptive Applications。

上述過程這執行管理與操作系統接口的協作主要體現在以下幾個方面:

執行管理負責配置操作系統,使操作系統能夠根據執行管理從Machine Manifest和Execution Manifest中提取的信息執行必要的運行時調度,比如優先級、時間片、親和性等。

執行管理負責根據Machine State和Function Group State,以及聲明的執行依賴關系,確定進程的啟動和關閉的順序。

執行管理負責啟動和關閉進程,以及管理進程的狀態,比如Running、Idle、Terminated等。

AP通過清單文件來定義應用程序的屬性和服務實例,并且具有管理權限,可以控制其他進程的資源和權限。為了使用自適應平臺的基本功能,EM需要先啟動所有的AP平臺功能集群。功能集群是根據服務和自適應AUTOSAR基本功能的分類來組織的模塊。

例如,要使用自適應AUTOSAR的通信服務,通信管理模塊的守護進程必須已經運行。執行管理還負責啟動機器狀態(Machine State)這個功能集群。機器狀態表示機器的運行階段,例如啟動狀態(Startup State),運行狀態等。EM在啟動后自動觸發到啟動狀態的狀態轉換,并通知狀態管理(SM),機器狀態已經變為啟動狀態。SM是負責管理其他功能集群狀態的組件,它可以在機器狀態的任何狀態下運行。

進程的執行依賴和啟動順序

執行管理可以根據聲明的執行依賴關系,在狀態管理框架內推導出進程啟動和終止的順序。這樣可以確保應用程序在依賴的應用程序使用它們提供的服務之前啟動,同樣,也可以確保應用程序在它們提供的服務不再需要時才關閉。

例如,如果進程A依賴于進程B的輸出,那么執行管理會先啟動進程B,再啟動進程A。同樣,如果進程A需要在進程B之前終止,那么執行管理會先停止進程A,再停止進程B。

執行管理確保在定義依賴關系的進程啟動之前,依賴的進程處于由執行依賴關系定義的狀態。

wKgZomV7yXWAXW21AAFFkNKUlxc800.png

圖中展示了進程的執行順序和執行依賴關系:

進程A 引用了 Function group1的:running狀態。在Machine狀態轉換時,進程“A”應該被啟動,因為它引用了新的Machine狀態。然而,進程“B”沒有引用那個機器狀態,所以它沒有被啟動。

進程 A 先啟動,進入到運行狀態。通過執行客戶端接口將kRunning 狀態報告給執行管理

進程“B”依賴于進程“A”的運行狀態。執行管理收到進程“A”的運行狀態,此時進程B應該被啟動,

進程 C 在(且僅在)進程 B 進入運行進程狀態(即報告 kRunning)時啟動。請注意,這個執行依賴性將獨立于進程 C 的報告/非報告配置。

進程 D 與進程A配置了終止狀態的執行依賴性。進程A終止后,進程D被啟動進入到運行狀態。

這些進程相關的信息會被保存在執行清單ARXML文件中,在機器運行時被執行管理讀取。

應用程序生命周期管理

執行管理模塊負責按照一定的順序啟動和關閉部署的應用程序。執行管理模塊根據機器清單和執行清單中的信息,確定哪些應用程序需要被部署,以及它們之間的執行依賴關系。

42d319a0-9ae6-11ee-8b88-92fbcf53809c.png

執行管理模塊根據機器狀態和功能組狀態,決定何時啟動部署的應用程序的進程,但是并不是所有的進程都會馬上開始工作,因為有些應用程序是為其他應用程序提供服務的,所以它們會等待并響應服務請求。

執行管理模塊不負責應用程序的運行時調度,這是由操作系統來完成的。執行管理與操作系統接口的協作主要體現在以下幾個方面:

執行管理負責配置操作系統,使操作系統能夠根據執行管理從Machine Manifest和Execution Manifest中提取的信息執行必要的運行時調度,比如優先級、時間片、親和性等。

執行管理負責啟動和關閉進程,以及管理進程的狀態,比如Running、Idle、Terminated等。

執行管理負責根據Machine State和Function Group State,以及聲明的執行依賴關系,確定進程的啟動和關閉的順序。

執行管理提供DeterministicClient API來支持進程內部周期控制,確定性工作池,激活時間戳和隨機數。

1.8可執行文件從部署到執行的過程

wKgaomV7yXWAOkRCAAKdt0TGzoM114.png

應用程序設計和執行的過程如下:

設計應用程序,確定應用程序的功能和服務。

開發和集成應用程序,生成可執行文件。可執行文件是一種二進制文件,它包含了應用程序的代碼和入口點,可以在機器上運行。一個應用程序可以由一個或多個可執行文件組成,它們在開發和集成階段被連接、配置和校驗。

部署和移除應用程序,將可執行文件和相關的清單文件和配置文件安裝在目標機器上,或者卸載舊版本的應用程序。清單文件是一種文檔,它描述了應用程序的屬性和服務實例,它可以有不同的格式和內容,根據不同的階段和目的而變化。部署和移除過程可以通過UCM(更新和配置管理)模塊來進行,也可以通過其他方式來進行。

執行應用程序,進程作為二進制文件的實例啟動。執行管理使用Processed Manifest的內容來分別啟動和配置每個進程。屬于同一自適應應用程序的可執行文件可能需要部署到不同的機器上,例如部署到一個高性能機器和一個高安全機器上。

AP平臺的啟動案例

應用程序設計與執行管理的關系如圖所示:

執行清單它描述了應用程序的屬性和服務實例,以及它們之間的依賴關系。

機器清單它描述了機器的配置和資源限制。這兩種文件都是應用程序設計的重要部分,它們決定了應用程序如何在AP平臺上運行。

AP平臺它提供了一些功能集群(Functional Cluster),即按照服務和自適應AUTOSAR基礎進行分組的模塊。

例如,SOME/IP通信就屬于一個功能集群,它提供了基于SOME/IP協議的服務和客戶端通信功能。

wKgZomV7yXWAViecAAFmarGQRJc173.png

圖中展示了一個SOME/IP通信的案例,執行管理的系統啟動過程如下:

啟動ECU(Machine即運行環境的物理資源)后,將首先初始化操作系統。

啟動執行管理進程作為操作系統的初始過程之一。

執行管理負責啟動、停止和配置自適應應用程序。然后執行管理啟動AP平臺的其他功能集群和平臺級應用程序。

執行管理進程加載機器清單和執行清單信息轉換成processed Manifest(它包含了用戶應用程序和平臺進程的啟動順序和依賴關系)。

執行管理通過操作系統接口調用調度器,將應用程序和功能集群的啟動順序傳遞給調度器。操作系統調度器加載應用程序和功能集群的可執行文件,并根據啟動順序創建進程。例如,調度器會創建SOME/IP通信的守護進程、服務程序和客戶端程序的進程,并將它們分配到不同的CPU核心上運行。

1.9 可信平臺

為了防止惡意代碼或數據對計算過程的干擾或破壞,保證系統的正確功能提高計算平臺的安全性和可靠性,非常關鍵。

可信平臺(Trusted Platform)是一種能夠保證計算過程的安全性和正確性的執行平臺。可信平臺通過使用安全硬件模塊和軟件機制,建立了從啟動到應用程序的一系列信任驗證步驟,形成了一個信任鏈。信任鏈的作用是確保所有執行的代碼都是可信的(即來源可靠,沒有被篡改或惡意修改)。

wKgZomV7yXWAXU9bAAI1bZZ-mUg597.png

執行管理支持經過身份驗證的啟動,這是一種保證AP平臺的可信性的方法,它從一個信任錨開始,沿著一個信任鏈,逐步啟動AP平臺的各個部分。

信任錨( Trust Anchor)通常是一個公鑰,它存儲在一個安全的環境中,比如一個不可修改的持久化區域或一個HSM中。信任錨是實現可信平臺的關鍵條件,如果機器上沒有信任錨,就無法驗證自適應平臺的可信性。

在操作系統啟動的過程中,每一個要啟動的可執行程序都要先經過認證,認證檢查要由一個已經認證過的實體來進行,比如一個之前啟動過的可執行程序,或一個外部實體(HSM等),這樣才能形成一個信任鏈。信任鏈是一種證書路徑,用于證明證書之間的關系。證書鏈也叫做證書路徑或信任鏈。

當操作系統被認證啟動后,它要加載執行管理作為AP平臺的第一個進程,在加載執行管理之前,操作系統要確保執行管理的認證已經完成,是一個可信的實體。

因此,在啟動時,從信任錨開始,沿著信任鏈,逐步啟動AP平臺的各個部分。執行管理現在負責認證應用程序,有多種機制來檢查應用程序的完整性和真實性。執行管理支持經過身份驗證的啟動。

執行管理建立可信平臺的驗證機制

wKgaomV7yXWAQzSgAAG37FP3niA975.png

執行管理EM通過這些驗證機制,可以建立可信平臺:

執行管理應該確保在使用之前檢查從處理過的清單中獲取的機器信息的完整性和真實性。(機器配置)

執行管理應該確保對于即將啟動的每個進程,檢查可執行文件的完整性和真實性。

執行管理應該確保對于即將啟動的每個進程,檢查每個相關共享對象的完整性和真實性。

執行管理應該確保對于即將啟動的每個進程,檢查可執行文件相關數據(如清單)的完整性和真實性。

對于上述的驗證過程,可以配置兩種不同的處理方式來應對驗證失敗的情況:

監控模式:在監控模式下,完整性和真實性檢查仍然會進行,但不會阻止啟動過程,即使文件系統有損壞,AP平臺仍然會啟動。監控模式適用于那些希望保持系統運行,即使平臺不可信的情況。另外,監控模式也適用于開發階段,因為代碼經常變動,不需要每次都更新驗證標簽(簽名)。

嚴格模式:在嚴格模式下,AP平臺要求,只有當執行程序,manifests,或者相關庫能夠成功通過完整性和真實性驗證時,進程才會被執行。如果檢測到違規,執行管理將阻止其執行。

舉個例子,EM在驗證了一個可執行程序的相關元數據和Manifest,啟動了該執行程序,這個時候EM準備啟動另一個可執行程序,但是它的驗證失敗了,那么EM就不會啟動它,但其它已經在運行的程序繼續保持運行。

1.10 應用程序恢復

如果AA進程出現了問題時,PHM會檢測到并觸發恢復操作。恢復操作(Recovery Action)是由集成人員根據軟件需求和架構定義的,它們在執行清單(Execution Manifest)中配置。

wKgZomV7yXWAPC8KAAHlAtJnVX0158.png

恢復動作是一種用于處理自適應應用程序錯誤的操作,執行管理能夠根據恢復策略來執行恢復動作,比如重啟或停止有問題的進程,以保證系統的可靠性和安全性。

監控到SE發生錯誤時,PHM定義了以下恢復操作:

向SM模塊請求切換到某一功能組狀態

向EM請求強制切換到某一無法恢復狀態

向EM請求重新啟動進程

請求看門狗驅動執行重置動作

將錯誤信息報告給診斷管理

將錯誤信息轉發給安全應用,在應用層執行更為復雜的錯誤響應操作

執行管理如何支持應用恢復的過程如下:

執行管理通過執行清單文件來獲取應用的恢復策略,該文件描述了應用的部署和執行相關的信息,包括進程名、資源組、啟動參數、依賴關系、恢復策略等。

執行管理通過ExecutionManagement ReportApplicationState等接口來與平臺健康管理(PHM)進行交互,PHM負責監測應用的運行狀態和故障信息,并將其上報給執行管理。

執行管理根據PHM上報的信息和執行清單中的配置來判斷是否需要執行恢復動作(RecoveryAction),以及執行何種恢復動作。

Alive Supervision, Deadline Supervision, Logical Supervision是三種用于監控應用/服務的健康狀態的方法,它們都基于應用/服務通過被監控實體(Supervised Entity)和ReportCheckpoint接口來報告其運行情況。

wKgaomV7yXWAKg5DAAHaxjZ_fPo356.png

恢復通知到狀態管理是指Phm模塊根據監督實體和檢查點的報告,以及健康通道狀態信息,判斷是否發生了違規情況,并將其通知給狀態管理模塊,由狀態管理模塊執行恢復活動。

圖中的示例展示了Application 1和Application 2向監督實體報告的情況。PHM模塊被配置為對這些報告的元素進行監督。如果檢測到違規情況,PHM模塊被配置為通知狀態管理應用程序,由狀態管理應用程序處理恢復活動。

1.11 資源限制

wKgZomV7yXWABk5EAAFqFYuTjcA528.png

AP平臺可以讓多個程序同時在一臺Machine上運行,但是要保證它們不會互相影響。當某一程序可能會占用太多的資源,比如CPU或內存,這樣就會讓其他程序變慢或出錯。

EM可以通過配置一個或多個資源組(ResourceGroup)來分配給應用程序來支持這個特性,每個資源組都可以分配指定的CPU時間和內存大小。

執行管理負責監督和管理資源使用,如果一個資源組用了太多的資源,執行管理EM可以做一些處理,比如記錄、停止、重啟等,這樣就可以保持系統的正常運行。

1.12 AP平臺的執行管理模塊小結

EM可以實現平臺和應用的生命周期管理,包括啟動、關閉、重啟以及解決進程依賴等。

EM可以協同SM根據Machine State和Function Group State來控制平臺和應用的狀態轉換,以適應不同的系統需求和場景。

EM可以支持應用的增量部署和動態管理,以減少軟件開發和集成的工作量,從而縮短迭代周期。

EM可以實現可信平臺的機制,包括信任根、認證啟動、應用驗證等,以保證平臺和應用的安全性。

EM可以與故障處理模塊協作,實現應用的故障檢測和恢復動作,包括重啟、重置、替換等。

EM可以通過資源組來保證應用之間的資源獨立性,包括CPU時間、內存等,以避免應用程序之間的干擾。

EM可以與資源分配器協作,實現資源的申請和釋放,包括內存、文件、設備等。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8691

    瀏覽量

    151707
  • 操作系統
    +關注

    關注

    37

    文章

    6889

    瀏覽量

    123602
  • AUTOSAR
    +關注

    關注

    10

    文章

    363

    瀏覽量

    21732

原文標題:AP AUTOSAR硬核技術(1):執行管理的秘密揭曉

文章出處:【微信號:阿寶1990,微信公眾號:阿寶1990】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    SOC設計領域的核心技術-軟/硬件協同設計

    SOC設計領域的核心技術-軟/硬件協同設計摘要:基于IP庫的SOC必將是今天與未來微電子設計領域的核心。它既是一種設計技術,也是一種設計方法學。一塊SOC上一定會集成各種純硬件IP、和作為軟件載體
    發表于 11-19 11:19

    藍牙核心技術概述

    藍牙核心技術概述(一):藍牙概述藍牙核心技術概述(二):藍牙使用場景藍牙核心技術概述(三): 藍牙協議規范(射頻、基帶鏈路控制、鏈路管理)藍牙核心技術概述(四):藍牙協議規范(HCI、
    發表于 11-24 16:06

    【原創】Android視頻直播核心技術

    【原創】Android視頻直播核心技術回復即可獲取下載鏈接[hide=d15]鏈接:http://pan.baidu.com/s/1cC6wbW 密碼:smj8 學習群:150923287 [/hide]
    發表于 07-26 17:43

    31歲無核心技術,迷茫

    再有3個月31整,再有9月就到2019了。回首發現,無核心技術,身價也越來越編制,職位上升無望,改怎么辦?同齡的你,有什么高見!!!期待您的回復。
    發表于 03-27 11:39

    云計算的五大核心技術

    云計算的核心技術有哪些?大數據云計算學習路線
    發表于 06-28 09:41

    五大核心技術如何實現物聯網

    以下是實現物聯網的五大核心技術核心技術之感知層:傳感器技術、射頻識別技術、二維碼技術、微機電系統1.傳感器
    發表于 07-25 06:38

    無線遠程監控系統主要包括哪些核心技術

    無線遠程監控系統主要包括哪些核心技術
    發表于 05-25 06:45

    視頻標準核心技術對比分析哪個好

    視頻標準核心技術對比分析哪個好
    發表于 06-07 06:12

    功能安全---AUTOSAR架構深度解析 精選資料分享

    AUTOSAR架構深度解析本文轉載于:AUTOSAR架構深度解析AUTOSAR的分層式設計,用于支持完整的軟件和硬件模塊的獨立性(Indep
    發表于 07-23 08:34

    AUTOSAR架構深度解析 精選資料推薦

    AUTOSAR架構深度解析本文轉載于:AUTOSAR架構深度解析目錄AUTOSAR架構深度解析
    發表于 07-28 07:40

    AUTOSAR架構深度解析 精選資料分享

    AUTOSAR架構深度解析本文轉載于:AUTOSAR架構深度解析AUTOSAR的分層式設計,用于支持完整的軟件和硬件模塊的獨立性(Indep
    發表于 07-28 07:02

    單片機應用的核心技術是什么?

    單片機應用的核心技術是什么?單片機神奇的工作原理是什么?匯編語言很難學怎么辦?
    發表于 11-02 06:17

    域控制器上AUTOSAR AP的優勢和挑戰

    汽車E/E體系結構由分布式向集中式發展域控制器,部署AUTOSAR AP的優勢和挑戰域控制器、部署AUTOSAR AP的優勢和挑戰域控制器。
    發表于 08-11 10:47 ?588次閱讀
    域控制器上<b class='flag-5'>AUTOSAR</b> <b class='flag-5'>AP</b>的優勢和挑戰

    AP AUTOSAR是如何定義和管理自適應應用程序的呢?

    AP AUTOSAR核心是自適應應用程序(Adaptive Application),它是一種可以根據運行時環境動態調整的軟件組件。
    的頭像 發表于 09-22 15:06 ?2256次閱讀
    <b class='flag-5'>AP</b> <b class='flag-5'>AUTOSAR</b>是如何定義和管理自適應應用程序的呢?

    AUTOSAR解決方案 — INTEWORK-EAS-AP

    經緯恒潤自主研發的Adaptive AUTOSAR平臺產品, 遵循AUTOSAR Adaptive R19-11和R22-11規范, 使用C++11、C++17語言開發。可通過極易上手的自研工具配置,實現
    的頭像 發表于 11-06 16:11 ?749次閱讀
    <b class='flag-5'>AUTOSAR</b>解決方案 — INTEWORK-EAS-<b class='flag-5'>AP</b>
    主站蜘蛛池模板: 久久久久久88色偷偷 | 精品无码国产AV一区二区三区 | 精品国产在线观看福利 | 成人毛片18岁女人毛片免费看 | 校园全肉高h湿一女多男 | 最近2019中文字幕MV免费看 | 菠萝菠萝蜜高清观看在线 | 两个人的视频日本在线观看完整 | 午夜日本大胆裸艺术 | 羞羞漫画免费漫画页面在线看漫画秋蝉 | 男生jj插入女生jj | 亚洲深夜在线 | 扒开双腿疯进出爽爽爽动态图 | 猪蜜蜜网站在线观看电视剧 | 我不卡影院手机在线观看 | 日本漫画大全无翼乌 | 好爽别插了无码视频 | 免费国产综合视频在线看 | 伊在香蕉国产在线视频 | 亚洲精品在看在线观看 | 国产AV白丝爆浆在线播放 | 快播欧美大片 | 荡公乱妇HD中文字幕 | 兰桂坊人成社区亚洲精品 | 精品蜜臀AV在线天堂 | 一个人日本的视频免费完整版 | 日韩免费一级毛片 | 91偷偷久久做嫩草电影院 | 丰满的女朋友韩国版在线观看 | 体育生爆操 | 中文字幕精品无码一区二区 | 吉吉影音先锋av资源网 | 我和妽妽在厨房里的激情区二区 | 伊人香蕉在线播放视频免费 | 麻豆久久国产亚洲精品超碰热 | 一本道久在线综合色姐 | 精品免费久久久久久影院 | 久久亚洲精品AV成人无码 | 欧美精品成人a多人在线观看 | 美女扒开腿让男人桶个爽 | 一区二区不卡在线视频 |