

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 커널 메모리 할당
<a name="kernel-memory-allocation"></a>

RTOS 커널에서는 작업, 대기열 또는 다른 RTOS 객체가 생성될 때마다 RAM이 필요합니다. RAM을 다음과 같이 할당할 수 있습니다.
+ 컴파일 시간에 정적으로
+ RTOS API 객체 생성 함수를 사용하여 RTOS 힙에서 동적으로

RTOS 객체를 동적으로 생성하는 경우 다음과 같은 여러 가지 이유로 인해 표준 C 라이브러리 `malloc()` 및 `free()` 함수를 사용하는 것이 적절하지 않은 경우도 있습니다.
+ 내장형 시스템에서 사용할 수 없습니다.
+ 중요한 코드 공간을 차지합니다.
+ 일반적으로 스레드 세이프가 아닙니다.
+ 결정적이지 않습니다.

따라서 FreeRTOS는 이동형 계층에 메모리 할당 API를 보관합니다. 이동형 계층은 코어 RTOS 기능을 구현하는 소스 파일의 외부에 있으므로, 개발 중인 실시간 시스템에 적절한 애플리케이션별 구현을 제공할 수 있습니다. RTOS 커널은 RAM이 필요한 경우 `pvPortMalloc()` 대신 `malloc()`를 호출합니다. RAM을 비우고 있는 경우 RTOS 커널은 `vPortFree()` 대신 `free()`를 호출합니다.