DEENESPTFRRUARHIKOZHNL

namespace ara::sm::s2r

Guía del usuarioGENERADO POR IA

Coordina la entrada y la salida del estado Suspend-to-RAM para aplicaciones adaptativas.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a8390997dcdf Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Coordina la entrada y la salida del estado Suspend-to-RAM para aplicaciones adaptativas.

El espacio de nombres ara::sm::s2r coordina el mecanismo de Suspend-to-RAM para optimizar los tiempos de apagado y arranque en la AUTOSAR Adaptive Platform (SWS StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality»). A través del componente central S2RHub y de instancias S2RSatellite registradas, los procesos compatibles con S2R son notificados antes de entrar en el estado de reposo del sistema operativo y, al despertar, se reincorporan al funcionamiento regular. Como condición de contorno fundamental, el uso mediante el enfoque interno StateMachine excluye estrictamente el acceso a través de la API de C++, mientras que las comprobaciones de IAM protegen todos los contextos de proceso involucrados ([SWS_SM_00684]).

Contexto

El espacio de nombres ara::sm::s2r proporciona funcionalidades para la coordinación de Suspend-to-RAM (S2R) dentro del módulo State Management. El objetivo de este mecanismo es optimizar los tiempos de apagado y arranque de la máquina, utilizando un estado de reposo en RAM del sistema operativo en lugar de un apagado completo y arranque en frío (SWS StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality»). Antes de pasar al estado de suspensión del sistema operativo, deben desactivarse los elementos funcionales sin soporte para S2R y notificarse a tiempo a los procesos cuyo ejecutable esté marcado como suspendToRamAware (SWS StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality»).

El núcleo central está constituido por la clase S2RHub, la cual controla la comunicación con instancias de la clase abstracta S2RSatellite (SWS StateManagement §7.5.1 «S2R Hub»). La orquestación del S2RHub puede llevarse a cabo bien de forma interna a través del enfoque StateMachine de State Management o externamente a través de una API de C++ (por ejemplo, en una SMControlApplication); ambos enfoques son estrictamente excluyentes entre sí ([SWS_SM_00684], SWS StateManagement p. 96). Los accesos al hub y el registro de satélites están protegidos mediante 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 orquesta suspend y resume satellite ara::sm::s2r::S2RSatellite hub->satellite koordiniert Suspend-Modus process S2R-Aware Process satellite->process invoca callbacks iam IAM (Identity & Access Management) iam->hub validiert Prozesskontext iam->satellite authentifiziert Satelliten

Diagrama de contexto: interacción entre State Management, S2RHub, S2RSatellite e IAM. Fuentes: SWS StateManagement §7.5.1 «S2R Hub», [SWS_SM_00684], [SWS_SM_00715].

Ciclo de vida

La instanciación de ara::sm::s2r::S2RHub se realiza en función del enfoque de arquitectura: en el modo StateMachine, State Management crea automáticamente la instancia tan pronto como finalizan los elementos de la lista de acciones EnterSuspendToRam, EnterSuspendToRamOS o LeaveSuspendToRam ([SWS_SM_00690]). Al llamar al constructor ara::sm::s2r::S2RHub::S2RHub, se comprueba a través de IAM si el contexto del proceso actual coincide con la configuración SuspendToRamHubMapping.process ([SWS_SM_00706]). Solo los procesos autorizados tienen permitido realizar la instanciación ([SWS_SM_00714]).

Los satélites se inicializan mediante el método de fábrica ara::sm::s2r::S2RSatellite::Create ([SWS_SM_00716]). Dado que S2RSatellite es una clase abstracta, es probable que se implemente una derivación específica de la aplicación para proporcionar las reacciones concretas (interpretación). Pregunta Q-e4747345883235e0 (abierta) El registro en el hub se realiza activamente invocando ara::sm::s2r::S2RSatellite::Offer ([SWS_SM_00710]). El hub valida el contexto de proceso del satélite mediante SuspendToRamSatelliteMapping.process ([SWS_SM_00715]). Un satélite permanece en el estado de registro activo hasta que vuelve a cancelar su registro mediante ara::sm::s2r::S2RSatellite::StopOffer ([SWS_SM_00710], [SWS_SM_00713]).

En cuanto al ciclo de vida de las máquinas de estados, rige la restricción de que los estados responsables del estado suspend no deben configurarse con el elemento de lista de acciones LeaveSuspendToRam ([SWS_SM_CONSTR_00035]). Este elemento está reservado exclusivamente para la fase de retorno durante la reactivación (SWS StateManagement p. 98).

Ruta de uso

El uso típico del namespace se divide en el registro, la preparación del estado de reposo, la suspensión del sistema operativo y la reactivación posterior:

  1. Registro: La aplicación compatible con S2R crea su satélite e invoca ara::sm::s2r::S2RSatellite::Offer para registrarse en el hub ([SWS_SM_00710]). Es de suponer que la notificación entre el hub y los satélites se realiza a través de comunicación entre procesos interna de la plataforma (interpretación). Pregunta (abierta)
  2. Solicitar suspensión: El nivel de control invoca ara::sm::s2r::S2RHub::RequestToEnterSuspendMode ([SWS_SM_00701]). En el enfoque StateMachine, esto se desencadena mediante el elemento EnterSuspendToRam, pasándose su valor de configuración maxActionItemDuration como parámetro de tiempo de espera ([SWS_SM_00689]).
  3. Notificar a los satélites: El hub se dirige a todos los satélites registrados e inicia la ejecución de la retrollamada ara::sm::s2r::S2RSatellite::EnterSuspendMode ([SWS_SM_00701], [SWS_SM_00711]). RequestToEnterSuspendMode retorna tan pronto como todos los satélites hayan reaccionado, hayan cancelado su registro o se haya producido un tiempo de espera ([SWS_SM_00702]).
  4. Detener el sistema operativo: Al invocar ara::sm::s2r::S2RHub::EnterSuspendToRamOs (o mediante el elemento de lista de acciones EnterSuspendToRamOs), se inicia el estado de reposo propiamente dicho del sistema operativo ([SWS_SM_00692]).
  5. Coordinar la reactivación: Tras el reinicio, se invoca ara::sm::s2r::S2RHub::RequestToLeaveSuspendMode ([SWS_SM_00703], [SWS_SM_00691]). El hub instruye a los satélites para que ejecuten la retrollamada ara::sm::s2r::S2RSatellite::LeaveSuspendMode ([SWS_SM_00703], [SWS_SM_00711]).
  6. Cancelación de registro: Si un proceso no desea seguir participando, cancela su registro mediante ara::sm::s2r::S2RSatellite::StopOffer ([SWS_SM_00710], [SWS_SM_00713]).
Secuencia de la coordinación de Suspend-to-RAMAufrufer (SMControlApplication / SM)ara::sm::s2r::S2RHubara::sm::s2r::S2RSatelliteOffer()Use Case: Transición al estado suspendidoRequestToEnterSuspendMode(timeout)EnterSuspendMode()Confirmación de disponibilidadResultEnterSuspendToRamOs()Use Case: Salida del estado suspendidoRequestToLeaveSuspendMode()LeaveSuspendMode()Confirmación o kRejectedGesamtergebnisUse Case: DeregistrierungStopOffer()

Diagrama de secuencia: orden de invocación para la preparación y finalización de Suspend-to-RAM. Fuentes: [SWS_SM_00701], [SWS_SM_00702], [SWS_SM_00703], [SWS_SM_00707], [SWS_SM_00710], [SWS_SM_00711].

Escenarios de error

En la interacción entre las clases se producen condiciones de error específicas:

  • Infracción de IAM al crear el hub: Si el contexto de proceso al invocar el constructor no coincide con SuspendToRamHubMapping.process, se desencadena la infracción InsufficientPermissionsViolation y se notifica el evento de seguridad SEV_ACCESS_CONTROL_SM_IAM_ACCESS_DENIED</a> ([SWS_SM_00706]).
  • Rechazo de satélites no autenticados: Si el contexto de S2RSatellite difiere del proceso depositado en SuspendToRamSatelliteMapping, el hub rechaza el registro ([SWS_SM_00715]).
  • Requisito de autenticación en el satélite: En caso de que esté establecida la configuración Force IAM switch, ara::sm::s2r::S2RSatellite::Create falla con el código de error kAuthenticationRequired ([SWS_SM_00716]).
  • Tiempo de espera de comunicación agotado: Si un satélite contactado no responde dentro del plazo timeout durante la fase de suspensión o de reactivación, la operación devuelve el código de error kCommunicationTimeout ([SWS_SM_00707]).
  • Problemas al salir del modo suspend: Si al menos un satélite responde negativamente con kRejected a la solicitud de salir del modo suspend, RequestToLeaveSuspendMode confirma el resultado global con kAtLeastOneHadIssuesToLeave ([SWS_SM_00707]).
  • Uso concurrente de API: El uso simultáneo de la C++-API de S2RHub junto con el enfoque interno StateMachine está prohibido y provoca inconsistencias ([SWS_SM_00684]).

Esta guía se basa en la especificación AUTOSAR_AP_SWS_StateManagement (Release R25-11).

Clases

S2RHub clase

S2RHub class.

S2RSatellite abstract class.

Diagrama de clases

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