DEENESPTFRRUARHIKOZHNL

пространство имён ara::sm::s2r

Руководство пользователяСОЗДАНО ИИ

Координирует вход в состояние Suspend-to-RAM и выход из него для адаптивных приложений.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a8390997dcdf Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Координирует вход в состояние Suspend-to-RAM и выход из него для адаптивных приложений.

Пространство имен ara::sm::s2r координирует механизм Suspend-to-RAM для оптимизации времени отключения и запуска в AUTOSAR Adaptive Platform (SWS StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality»). Через центральный компонент S2RHub и зарегистрированные экземпляры S2RSatellite процессы с поддержкой S2R уведомляются перед переходом операционной системы в состояние покоя и при пробуждении снова переводятся в штатный режим работы. В качестве существенного граничного условия использование через внутренний подход StateMachine строго исключает доступ через C++-API, тогда как проверки IAM защищают все задействованные контексты процессов ([SWS_SM_00684]).

Контекст

Пространство имен ara::sm::s2r предоставляет функциональные возможности для координации Suspend-to-RAM (S2R) внутри модуля State Management. Целью этого механизма является оптимизация времени отключения и разгона машины за счет использования состояния покоя операционной системы на базе RAM вместо полного выключения и холодного старта (SWS StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality»). Перед переходом в состояние Suspend операционной системы функциональные исполнители без поддержки S2R должны быть деактивированы, а процессы, чей Executable обозначен как suspendToRamAware, должны быть своевременно уведомлены (SWS StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality»).

Центральным узлом является класс S2RHub, который управляет связью с экземплярами абстрактного класса S2RSatellite (SWS StateManagement §7.5.1 «S2R Hub»). Оркестрация S2RHub может осуществляться либо внутренне через подход StateMachine модуля State Management, либо внешне через 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 экземпляр создается автоматически модулем State Management, как только завершаются элементы списка действий EnterSuspendToRam, EnterSuspendToRamOS или LeaveSuspendToRam ([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).

Путь использования

Типичное использование пространства имен подразделяется на регистрацию, подготовку состояния покоя, приостановку операционной системы (OS suspend), а также последующее пробуждение:

  1. Регистрация: S2R-совместимое приложение создает свой сателлит и вызывает ara::sm::s2r::S2RSatellite::Offer для регистрации на концентраторе (hub) ([SWS_SM_00710]). Предположительно, оповещение между концентратором и сателлитами осуществляется через внутриплатформенное межпроцессное взаимодействие (интерпретация). Вопрос (открытый)
  2. Запрос приостановки: Уровень управления вызывает 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-RAMAufrufer (SMControlApplication / SM)ara::sm::s2r::S2RHubara::sm::s2r::S2RSatelliteOffer()Use Case: Переход в состояние SuspendRequestToEnterSuspendMode(timeout)EnterSuspendMode()Подтверждение готовностиResultEnterSuspendToRamOs()Use Case: Выход из состояния SuspendRequestToLeaveSuspendMode()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]).
  • Тайм-аут связи: Если адресуемый сателлит во время фазы приостановки или пробуждения не отвечает в пределах периода timeout, операция возвращает код ошибки kCommunicationTimeout ([SWS_SM_00707]).
  • Проблемы при выходе из режима приостановки: Если хотя бы один сателлит на запрос выхода из режима приостановки отвечает отрицательно с kRejected, RequestToLeaveSuspendMode подтверждает общий результат с kAtLeastOneHadIssuesToLeave ([SWS_SM_00707]).
  • Конкурентное использование API: Одновременное использование C++-API S2RHub наряду с внутренним подходом StateMachine запрещено и приводит к несогласованности ([SWS_SM_00684]).

Данное руководство основано на спецификации AUTOSAR_AP_SWS_StateManagement (релиз 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