네임스페이스 ara::sm::s2r
사용자 가이드AI 생성
어댑티브 애플리케이션을 위해 Suspend-to-RAM 상태의 진입 및 종료를 조율합니다.
어댑티브 애플리케이션을 위해 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]).
컨텍스트 다이어그램: 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 및 후속 웨이크업으로 나뉩니다:
- 등록: S2R 지원 애플리케이션은 해당 새틀라이트를 생성하고 허브에 등록하기 위해
ara::sm::s2r::S2RSatellite::Offer을 호출합니다([SWS_SM_00710]). 허브와 새틀라이트 간의 알림은 플랫폼 내부 프로세스 간 통신을 통해 이루어질 것으로 추정됩니다(해석). 질문 (열림) - Suspend 요청: 제어 레벨에서
ara::sm::s2r::S2RHub::RequestToEnterSuspendMode을 호출합니다([SWS_SM_00701]).StateMachine접근 방식에서는 이것이 요소EnterSuspendToRam에 의해 트리거되며, 이때 해당 구성 값maxActionItemDuration가 타임아웃 파라미터로 전달됩니다([SWS_SM_00689]). - 새틀라이트 알림: 허브는 등록된 모든 새틀라이트를 지정하여 콜백
ara::sm::s2r::S2RSatellite::EnterSuspendMode의 실행을 유도합니다([SWS_SM_00701], [SWS_SM_00711]).RequestToEnterSuspendMode은 모든 새틀라이트가 응답했거나 등록 해제되었거나 타임아웃이 발생하면 반환됩니다([SWS_SM_00702]). - 운영체제 일시 중단:
ara::sm::s2r::S2RHub::EnterSuspendToRamOs호출을 통해(또는 액션 목록 요소EnterSuspendToRamOs을 통해) 운영체제의 실제 대기 상태가 시작됩니다([SWS_SM_00692]). - 웨이크업 조정: 재시작 후
ara::sm::s2r::S2RHub::RequestToLeaveSuspendMode이 호출됩니다([SWS_SM_00703], [SWS_SM_00691]). 허브는 새틀라이트에 콜백ara::sm::s2r::S2RSatellite::LeaveSuspendMode을 실행하도록 지시합니다([SWS_SM_00703], [SWS_SM_00711]). - 등록 해제: 프로세스가 더 이상 참여하지 않으려는 경우
ara::sm::s2r::S2RSatellite::StopOffer을 통해 등록을 해제합니다([SWS_SM_00710], [SWS_SM_00713]).
시퀀스 다이어그램: 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 class.
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.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문