SW/Autosar

Adaptive Autosar Execution Management (실행 관리)

얇은생각 2018. 11. 14. 16:19
반응형

개요  

Execution Management는 플랫폼 초기화, 응용 프로그램 시작 및 종료를 포함한 시스템 실행 관리를 담당합니다. Execution Management는 운영체제와 함께 작동합니다. 또 응용 프로그램의 런타임 스케줄링을 수행합니다.

 

System Startup  (시스템 시작)

머신이 시작되면 운영체제가 가장 먼저 초기화 됩니다. Execution Management는 OS의 초기 프로세스 중 하나로 시작됩니다. 그 다음 Execution Management가 Adaptive Platform Foundation의 다른 Functional Cluster와 플랫폼 레벨 어플리케이션을 시작시킵니다. Adaptive Platform Foundation이 실행되면 Execution Management는 Adaptive Applications를 계속 실행시킵니다. 플랫폼 수준 응용 프로그램과 Adaptive Application의 시작 순서는 컴퓨터 매니페스트와 응용 프로그램 매니페스트 정보를 기반으로 Execution Management가 결정합니다. 

AP 시작 순서

 

Execution Management Responsibilities  

Execution Management는 Adaptive Platform 실행 관리 및 애플리케이션 실행 관리를 담당합니다. 

 

1. Platform Lifecycle Management 

Execution Management는 Adaptive Platform 시작 단계의 일부로 시작됩니다. Adaptive Platform 과 배포된 응용 프로그램의 초기화를 수행합니다.

  

2. Application Lifecycle Management 

Execution Management는 배포된 응용 프로그램의 시작 및 종료를 수행합니다. Execution Management는 머신 매니페스트와 어플리케이션 매니페스트의 정보를 기반으로 배포된 응용 프로그램 집합을 결정하고 선언된 응용 프로그램 종속성을 기반으로 시작 및 종료에 대한 순서를 유도합니다. 시스템 상태 및 기능 그룹 상태에 따라 배포된 응용 프로그램은 Adaptive Platform 시작 또는 모든 응용 프로그램이 즉시 활성 상태로 시작되지는 않습니다. 많은 응용 프로그램이 다른 응용 프로그램에 서비스를 제공할 것입니다. 따라서 들어오는 서비스 요청을 기다리고 수신 대기합니다. 

 

Execution Management는응용 프로그램의 런타임 스케줄링에 대한 책임을 지지 않습니다. 그러나 Execution Management는 운영체제의 초기화, 구성을 책임지며, 이를 통해 머신 매니페스트 및 응용 프로그램 매니페스트에서 Execution Management에 의해 추출된 정보를 기반으로 필요한 런타임 스케줄링을 담담할 수 있습니다. 

 

Deterministic Execution  (확정적 실행)

Deterministic Execution은 주어진 입력 데이터 세트를 사용하는 계산이 제한된 시간 내에 일관된 출력을 생성하는 메커니즘을 서비스합니다. Execution Management는 시간과 데이터 결정성을 구별합니다. 시간은 항상 데드 라인에 의해 생성되는 반면, 데이터는 동일한 입력 데이터 세트 및 내부 상태로부터 동일한 출력을 생성하는 것을 말합니다. Execution Management가 제공하는 지원은 시간이 충분한 자원을 제공함으로써 처리했다고 가정 할 때 데이터에 초점을 맞춥니다. 데이터 결정을 위해 Execution Management는 프로세스 내부주기,  deterministic worker pool, 활성화 타임 스탬프 및 난수의 제어를 지원하는 DeterministicClient API를 제공합니다. DeterministicClient는 Communication Management와 통신하며 데이터 처리 주기를 동기화합니다. DeterministicClient가 지원하는 지원하는 API와 응용 프로그램과의 통신은 아래 그림에 설명되어 있습니다. 

 

Deterministic Client 

 

Resource Limitation  (자원 제한)

Adaptive Platform은 동일한 머신에서 여러 Adaptive Application 실행을 허용하므로 독립을 보장하는 것이 시스템 속성입니다. 따라서 잘못 작동하는 Adaptive 응용 프로그램은 다른 응용 프로그램에 영향을 주는 기능과 관련하여 제한되어야 합니다. 예를 들어 응용 프로그램은 다른 응용 프로그램의 올바른 기능에 영향을 줄 수 있습니다. 따라서 지정된 시간보다 더 많은 CPU 시간을 소비하면 안되는 것입니다. Execution Management는 응용 프로그램의 프로세스가 할당되는 하나 이상의 ResourceGroup 구성을 통해 독립되어 있습니다. 각 ResourceGroup에 응용 프로그램의 사용 가능한 자원을 허용하는 CPU 와 Memory 제한을 할 수 있습니다.

 

State Management  

State Management는 Adaptive Platform에 대한 작업 상태를 정의하는 메커니즘을 서비스합니다. State Management는 실행될 일련의 응용 프로그램에 대한 완전한 제어권을 부여하고 필요한 경우에만 프로세스가 실행합니다. Machine States 및 Functional Group State는 현재 실행중인 프로세스 집합을 정의합니다. 각 프로세스는 응용 프로그램 매니페스트에서 어떤 상태의 활성 상태인지 정의합니다. 

  

Execution Management와 관련된 네 가지 상태 :

 . Machine State 

Machine States는 주로 시스템 수명주기 (시작 / 종료 / 재시작), 플랫폼 수준 프로세스 및 기타 인프라를 제어하는 데 사용됩니다. 각 머신에 있어야하는 몇 가지 필수 머신 상태가 있습니다. 추가 머신 특정 머신 상태는 머신 매니페스트에 정의 될 수 있습니다.

 

. Function Group State 

기능 그룹 상태는 기능적으로 일관된 사용자 레벨 응용 프로그램 프로세스 그룹을 개별적으로 시작하고 중지하는 데 주로 사용됩니다. 머신 매니페스트에서 구성 할 수 있습니다.

 

. Process State 

Process State는 응용 프로그램 수명주기 관리에 사용되며 Execution Management 내부 상태 시스템에 의해 구현됩니다.

 

. Application State 

Application State 는 응용 프로그램 실행 파일, 즉 프로세스의 모든 인스턴스의 내부 수명주기를 나타냅니다. 각 프로세스는 응용 프로그램 상태 변경 사항을 실행 관리로 보고 해야합니다.

 

Interaction between States

반응형