DEENESPTFRRUARHIKOZHNL

구조체 ara::core::PoolOptions

[SWS_CORE_00026] Upstream: RS_AP_00130

struct PoolOptions {...};

Implementation of std::pmr::pool_options from [mem.poly.pool_options.class]

Header-Datei#include "ara/core/memory_resource.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core

사용자 가이드AI 생성

풀 기반 메모리 리소스에 대한 블록 및 청크 경계를 구성합니다.
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 79719d3800dc 출처 열린 질문 (3)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

풀 기반 메모리 리소스에 대한 블록 및 청크 경계를 구성합니다.

구조체 ara::core::PoolOptions은(는) std::pmr::pool_options에 따른 풀 기반 메모리 리소스를 구성하는 데 사용됩니다. 이 구조체는 max_blocks_per_chunk [SWS_CORE_00027]을(를) 통한 청크당 최대 블록 수 제한과 largest_required_pool_block [SWS_CORE_00028]을(를) 통한 최대 풀 블록 크기 지정을 가능하게 합니다. 단순 데이터 애그리게이트로서 해당 구조체는 메모리 리소스가 초기화되기 전에 값이 채워져 생성자로 전달됩니다. 해석: 자체적인 유효성 검사가 수행되지 않으므로, 개발자는 구성된 임계값이 물리적 RAM을 과도하게 사용하지 않도록 보장해야 합니다. 질문 (열림)

컨텍스트

데이터 구조 ara::core::PoolOptions은(는) AUTOSAR Adaptive Platform의 core 모듈에서 메모리 풀 기반 리소스를 위한 구성 매개변수를 제공합니다. 이는 할당 동작을 목적에 맞게 제어하는 역할을 하며, std::pmr::pool_options의 C++ 표준 기능을 따릅니다. 이 구조체는 헤더 <ara/core/memory_resource.h>을(를) 통해 포함되며, 반복적인 메모리 요청을 위해 연속적인 청크와 블록을 유지하는 풀 메모리 리소스와 밀접하게 상호작용합니다.

안전 필수 및 실시간 시스템에서는 동적 메모리 작업의 제한성과 예측 가능성이 필수적입니다. 이러한 맥락에서 ara::core::PoolOptions은(는) 애플리케이션 고유의 용량 요구사항과 메모리 풀의 내부 관리 사이의 디커플러 역할을 담당합니다. 개발자는 이 구조체를 통해 하나의 청크 내에 결합될 수 있는 최대 블록 수[SWS_CORE_00027]와(과) 특화된 풀을 통해 처리되어야 하는 최대 블록 크기[SWS_CORE_00028]를 지정할 수 있습니다. 메모리 리소스를 인스턴스화하는 애플리케이션 소프트웨어는 과도한 단편화를 방지하고 할당 한계를 결정론적으로 제어하기 위해 이러한 옵션을 사용합니다.

수명 주기

단순 구성 유형(struct)으로서 ara::core::PoolOptions은(는) 복잡한 내부 상태 전이 없는 경량 라이프사이클을 갖습니다. 생성은 일반적으로 관련된 메모리 리소스를 인스턴스화하기 전에 로컬 스택 객체 또는 정적 구성 상수로 수행됩니다. 인스턴스화 시 두 속성 max_blocks_per_chunk [SWS_CORE_00027] 및 largest_required_pool_block [SWS_CORE_00028]은(는) 기본적으로 0 값으로 초기화됩니다.

해석: 0 값은 수신 메모리 리소스에 플랫폼별 기본 경계가 적용되어야 함을 알리는 것으로 보입니다. 순수 값 객체이므로 ara::core::PoolOptions은(는) RAII 관점의 리소스를 소유하지 않으며 소멸 시 어떠한 정리 작업도 수행하지 않습니다. 이 구조체의 라이프사이클은 일반적으로 메모리 리소스의 생성 단계와 결합됩니다. 옵션이 풀 리소스로 전달되면 리소스가 해당 매개변수를 내부적으로 유지하므로 PoolOptions 객체 자체는 안전하게 소멸되거나 재사용될 수 있습니다. 질문 (열림)

동시성과 관련하여 구조체 자체는 내재된 동기화 메커니즘을 제공하지 않습니다. 변경되지 않은 PoolOptions 객체에 대한 병렬 읽기 접근은 스레드 안전하지만, 동시 수정은 외부에서 동기화되어야 합니다. 그러나 객체는 주로 전달 전에 구성되므로 초기화 후에는 일반적으로 쓰기 접근이 더 이상 발생하지 않습니다.

사용 경로

주요 사용 사례에는 할당 경계 정의 및 이를 메모리 관리 컴포넌트로 전달하는 것이 포함됩니다. 먼저 호출자는 ara::core::PoolOptions의 인스턴스를 생성하고 원하는 매개변수를 채웁니다. max_blocks_per_chunk을(를) 통해 청크당 블록에 대한 상한을 정의하고[SWS_CORE_00027], largest_required_pool_block은(는) 풀에 의해 여전히 수용되어야 하는 할당의 상한을 정의합니다[SWS_CORE_00028].

이어서 값이 채워진 구조체는 해당 풀 메모리 리소스의 생성자로 전달됩니다. 메모리 리소스는 구성된 값을 읽어오고 그에 따라 내부 풀을 설정합니다. 런타임 중에 메모리 요청이 도착하면 리소스는 앞서 구성된 임계값을 기반으로 요청을 풀에서 처리할 수 있는지, 아니면 상위 업스트림 리소스로 전달해야 하는지 결정합니다. 해석: largest_required_pool_block을(를) 초과하는 요청은 일반적으로 상위 메모리 관리자에게 직접 위임될 것으로 간주할 수 있습니다. 질문 (열림)

PoolOptions의 구성 및 사용애플리케이션PoolOptionsSpeicherressourceUse Case: KonfigurationParameter max_blocks_per_chunk및 largest_required_pool_block 설정Use Case: 메모리 리소스 초기화PoolOptions를 사용한 생성Optionen auslesen매개변수 값 반환Use Case: Laufzeit-AllokationSpeicher anfordernSpeicherblock bereitstellen

시퀀스 다이어그램: PoolOptions를 통한 풀 메모리 리소스 구성의 일반적인 흐름. 출처: [SWS_CORE_00027], [SWS_CORE_00028].

오류 시나리오

ara::core::PoolOptions은(는) 단순 데이터 애그리게이트(struct)로 정의되므로, 필드의 생성이나 값 할당은 C++ 예외를 발생시키지 않으며 오류 코드를 반환하지 않습니다. 잠재적인 오류 조건은 수신 메모리 리소스가 값을 해석할 때 비로소 발생합니다.

해석: 비현실적인 값(예: max_blocks_per_chunk [SWS_CORE_00027] 또는 largest_required_pool_block [SWS_CORE_00028]에 대한 극단적으로 큰 값)이 구성되면, 후속 메모리 리소스가 청크를 할당할 때 시스템 한계에 부딪혀 메모리 부족(Out-of-Memory) 상태를 유발할 수 있습니다. 질문 (열림) 따라서 안정적인 작동을 위한 전제 조건은 물리적으로 사용 가능한 RAM과 애플리케이션의 예상 부하 프로필에 맞추어 두 매개변수를 신중하게 조정하는 것입니다. 값이 0(으)로 유지되는 경우 강력한 기본 크기를 적용하는 것은 대상 리소스의 몫입니다.

이 가이드는 AUTOSAR Adaptive Platform Release R25-11 사양을 기반으로 합니다. 모든 기술적 진술은 사양 페이로드에 포함된 요구사항에 전적으로 근거합니다.

UML 클래스 다이어그램

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__core__PoolOptions463 «struct» PoolOptions + largest_ + max_

상수

largest_ 변수

≙ [mem.res.pool]

std::size_t largest_required_pool_block = 0;
max_ 변수

≙ [mem.res.pool]

std::size_t max_blocks_per_chunk = 0;

상수 / 변수 문서

변수 largest_ [SWS_CORE_00028]

std::size_t largest_required_pool_block = 0;

As per corresponding usage in [mem.res.pool]

Header-Datei#include "ara/core/memory_resource.h"
Scopestruct ara::core::PoolOptions
Symbollargest_required_pool_block
Typstd::size_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00028
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00028@rel:R25-11#ffdfd246
Content hash
ffdfd246
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00028
Status: valid/unmigrated Version: rel:R25-11#a3bf6d56 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00028@rel:R25-11#a3bf6d56
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#09a93b7f2026-09-30
  • R24-11rel:R24-11#0f29769e2026-10-14
  • R25-11rel:R25-11#a3bf6d562026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

변수 max_ [SWS_CORE_00027]

std::size_t max_blocks_per_chunk = 0;

As per corresponding usage in [mem.res.pool]

Header-Datei#include "ara/core/memory_resource.h"
Scopestruct ara::core::PoolOptions
Symbolmax_blocks_per_chunk
Typstd::size_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00027
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00027@rel:R25-11#9867ee89
Content hash
9867ee89
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00027
Status: valid/unmigrated Version: rel:R25-11#fc3e04ef Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00027@rel:R25-11#fc3e04ef
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#3e26306e2026-09-30
  • R24-11rel:R24-11#cd619fd92026-10-14
  • R25-11rel:R25-11#fc3e04ef2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill