DEENESPTFRRUARHIKOZHNL

네임스페이스 ara::sm::s2r

사용자 가이드AI 생성

어댑티브 애플리케이션을 위해 Suspend-to-RAM 상태의 진입 및 종료를 조율합니다.
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a8390997dcdf 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

어댑티브 애플리케이션을 위해 Suspend-to-RAM 상태의 진입 및 종료를 조율합니다.

ara::sm::s2r 네임스페이스는 AUTOSAR Adaptive Platform에서 종료 및 시작 시간을 최적화하기 위한 Suspend-to-RAM 메커니즘을 조율합니다(SWS StateManagement §7.5 “Interaction with Suspend-to-RAM Functionality”). 중앙 컴포넌트 S2RHub 및 등록된 S2RSatellite 인스턴스를 통해 S2R 지원 프로세스는 운영체제 일시 중단 상태로 들어가기 전에 알림을 받고 깨어날 때 다시 정상 작동으로 전환됩니다. 필수 제약 조건으로서, 내부 StateMachine 방식을 통한 사용은 C++ API를 통한 액세스를 엄격히 배제하는 반면, IAM 검사는 관련된 모든 프로세스 컨텍스트를 보호합니다([SWS_SM_00684]).

컨텍스트

ara::sm::s2r 네임스페이스는 State Management 모듈 내에서 Suspend-to-RAM(S2R)을 조율하기 위한 기능을 제공합니다. 이 메커니즘의 목적은 완전한 종료 및 콜드 스타트 대신 운영체제의 RAM 기반 일시 중단 상태를 사용하여 머신의 종료 및 시작 시간을 최적화하는 것입니다(SWS StateManagement §7.5 “Interaction with Suspend-to-RAM Functionality”). 운영체제의 일시 중단 상태로 전환하기 전에 S2R을 지원하지 않는 기능 엔터티를 비활성화하고 실행 파일이 suspendToRamAware(으)로 표시된 프로세스에 제때 알려야 합니다(SWS StateManagement §7.5 “Interaction with Suspend-to-RAM Functionality”).

중앙 허브는 S2RHub 클래스에 의해 형성되며, 이 클래스는 추상 클래스 S2RSatellite의 인스턴스와의 통신을 제어합니다(SWS StateManagement §7.5.1 “S2R Hub”). S2RHub의 오케스트레이션은 State Management의 내부 StateMachine 방식을 통해 또는 C++ API(예: SMControlApplication에서)를 통해 외부적으로 수행될 수 있으며, 두 방식은 상호 배타적입니다([SWS_SM_00684], SWS StateManagement 96쪽). 허브에 대한 액세스 및 위성 등록은 Identity and Access Management(IAM)에 의해 보호됩니다([SWS_SM_00706], [SWS_SM_00714], [SWS_SM_00715]).

diag_s2r_kontext sm_control SMControlApplication / State Management hub ara::sm::s2r::S2RHub sm_control->hub Suspend 및 Resume 오케스트레이션 satellite ara::sm::s2r::S2RSatellite hub->satellite koordiniert Suspend-Modus process S2R-Aware Process satellite->process 콜백 호출 iam IAM (Identity & Access Management) iam->hub validiert Prozesskontext iam->satellite authentifiziert Satelliten

컨텍스트 다이어그램: State Management, S2RHub, S2RSatellite 및 IAM의 상호작용. 출처: SWS StateManagement §7.5.1 “S2R Hub”, [SWS_SM_00684], [SWS_SM_00715].

수명 주기

ara::sm::s2r::S2RHub의 인스턴스화는 아키텍처 접근 방식에 따라 달라집니다. StateMachine 모드에서는 액션 목록 요소 EnterSuspendToRam, EnterSuspendToRamOS 또는 LeaveSuspendToRam가 종료되는 즉시 State Management에 의해 인스턴스가 자동으로 생성됩니다([SWS_SM_00690]). 생성자 ara::sm::s2r::S2RHub::S2RHub을 호출할 때 IAM을 통해 현재 프로세스 컨텍스트가 구성 SuspendToRamHubMapping.process과 일치하는지 확인합니다([SWS_SM_00706]). 권한이 있는 프로세스만 인스턴스화를 수행할 수 있습니다([SWS_SM_00714]).

새틀라이트는 팩토리 메서드 ara::sm::s2r::S2RSatellite::Create을 통해 초기화됩니다([SWS_SM_00716]). S2RSatellite는 추상 클래스이므로, 구체적인 반응을 제공하기 위해 애플리케이션별 파생 클래스가 구현될 것으로 보입니다(해석). 질문 Q-e4747345883235e0 (열림) 허브에 대한 등록은 ara::sm::s2r::S2RSatellite::Offer을 호출하여 능동적으로 수행됩니다([SWS_SM_00710]). 허브는 SuspendToRamSatelliteMapping.process를 기반으로 새틀라이트의 프로세스 컨텍스트를 검증합니다([SWS_SM_00715]). 새틀라이트는 ara::sm::s2r::S2RSatellite::StopOffer을 통해 다시 등록 해제할 때까지 능동적 등록 상태를 유지합니다([SWS_SM_00710], [SWS_SM_00713]).

상태 머신의 라이프사이클과 관련하여, Suspend 상태를 담당하는 상태는 액션 목록 요소 LeaveSuspendToRam으로 구성되어서는 안 된다는 제약 조건이 적용됩니다([SWS_SM_CONSTR_00035]). 이 요소는 웨이크업 시 복귀 단계를 위해서만 예약되어 있습니다(SWS StateManagement 98쪽).

사용 경로

이 네임스페이스의 전형적인 사용은 등록, 대기 상태 준비, 운영체제 Suspend 및 후속 웨이크업으로 나뉩니다:

  1. 등록: S2R 지원 애플리케이션은 해당 새틀라이트를 생성하고 허브에 등록하기 위해 ara::sm::s2r::S2RSatellite::Offer을 호출합니다([SWS_SM_00710]). 허브와 새틀라이트 간의 알림은 플랫폼 내부 프로세스 간 통신을 통해 이루어질 것으로 추정됩니다(해석). 질문 (열림)
  2. Suspend 요청: 제어 레벨에서 ara::sm::s2r::S2RHub::RequestToEnterSuspendMode을 호출합니다([SWS_SM_00701]). StateMachine 접근 방식에서는 이것이 요소 EnterSuspendToRam에 의해 트리거되며, 이때 해당 구성 값 maxActionItemDuration가 타임아웃 파라미터로 전달됩니다([SWS_SM_00689]).
  3. 새틀라이트 알림: 허브는 등록된 모든 새틀라이트를 지정하여 콜백 ara::sm::s2r::S2RSatellite::EnterSuspendMode의 실행을 유도합니다([SWS_SM_00701], [SWS_SM_00711]). RequestToEnterSuspendMode은 모든 새틀라이트가 응답했거나 등록 해제되었거나 타임아웃이 발생하면 반환됩니다([SWS_SM_00702]).
  4. 운영체제 일시 중단: ara::sm::s2r::S2RHub::EnterSuspendToRamOs 호출을 통해(또는 액션 목록 요소 EnterSuspendToRamOs을 통해) 운영체제의 실제 대기 상태가 시작됩니다([SWS_SM_00692]).
  5. 웨이크업 조정: 재시작 후 ara::sm::s2r::S2RHub::RequestToLeaveSuspendMode이 호출됩니다([SWS_SM_00703], [SWS_SM_00691]). 허브는 새틀라이트에 콜백 ara::sm::s2r::S2RSatellite::LeaveSuspendMode을 실행하도록 지시합니다([SWS_SM_00703], [SWS_SM_00711]).
  6. 등록 해제: 프로세스가 더 이상 참여하지 않으려는 경우 ara::sm::s2r::S2RSatellite::StopOffer을 통해 등록을 해제합니다([SWS_SM_00710], [SWS_SM_00713]).
Suspend-to-RAM 조정 절차Aufrufer (SMControlApplication / SM)ara::sm::s2r::S2RHubara::sm::s2r::S2RSatelliteOffer()Use Case: Suspend 상태로 전환RequestToEnterSuspendMode(timeout)EnterSuspendMode()준비 상태 피드백ResultEnterSuspendToRamOs()Use Case: Suspend 상태 종료RequestToLeaveSuspendMode()LeaveSuspendMode()확인 또는 kRejectedGesamtergebnisUse Case: DeregistrierungStopOffer()

시퀀스 다이어그램: Suspend-to-RAM 준비 및 종료를 위한 호출 순서. 출처: [SWS_SM_00701], [SWS_SM_00702], [SWS_SM_00703], [SWS_SM_00707], [SWS_SM_00710], [SWS_SM_00711].

오류 시나리오

클래스 간의 상호작용에서 특정한 오류 조건이 발생합니다:

  • 허브 생성 시 IAM 위반: 생성자 호출 시 프로세스 컨텍스트가 SuspendToRamHubMapping.process과 일치하지 않는 경우, 위반 InsufficientPermissionsViolation이 트리거되고 보안 이벤트 SEV_ACCESS_CONTROL_SM_IAM_ACCESS_DENIED</a>가 보고됩니다([SWS_SM_00706]).
  • 인증되지 않은 새틀라이트 거부: S2RSatellite의 컨텍스트가 SuspendToRamSatelliteMapping에 저장된 프로세스와 다를 경우, 허브는 등록을 거부합니다([SWS_SM_00715]).
  • 새틀라이트에서의 인증 요구: Force IAM switch 구성이 설정되어 있는 경우, ara::sm::s2r::S2RSatellite::Create은 오류 코드 kAuthenticationRequired과 함께 실패합니다([SWS_SM_00716]).
  • 통신 타임아웃: 지정된 새틀라이트가 Suspend 또는 웨이크업 단계 중에 기한 timeout 내에 응답하지 않으면 해당 작업은 오류 코드 kCommunicationTimeout을 반환합니다([SWS_SM_00707]).
  • Suspend 모드 종료 문제: Suspend 모드 종료 요청에 대해 하나 이상의 새틀라이트가 kRejected으로 부정적인 응답을 하는 경우, RequestToLeaveSuspendMode은 전체 결과를 kAtLeastOneHadIssuesToLeave로 확인합니다([SWS_SM_00707]).
  • 경합하는 API 사용: 내부 StateMachine 접근 방식과 함께 S2RHub의 C++ API를 동시에 사용하는 것은 금지되며 불일치를 초래합니다([SWS_SM_00684]).

이 가이드는 AUTOSAR_AP_SWS_StateManagement 사양(Release R25-11)을 기반으로 합니다.

클래스

S2RHub 클래스

S2RHub class.

S2RSatellite 클래스

S2RSatellite abstract class.

클래스 다이어그램

Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.

G cluster_ns ara::sm::s2r nara__sm__s2r__S2RHub S2RHub nara__sm__s2r__S2RSatellite S2RSatellite