25.2. 시스템 메모리 개요
Linux 커널은 시스템 메모리(RAM)의 리소스 사용을 극대화하도록 설계되었습니다. 이러한 설계 특성과 워크로드의 메모리 요구 사항에 따라 일부 시스템 메모리는 워크로드를 대신하여 커널 내에서 사용되고 메모리의 작은 부분은 사용 불가능합니다. 이 사용 가능한 메모리는 특수 시스템 할당 및 기타 낮거나 높은 우선 순위 시스템 서비스를 위해 예약되어 있습니다. 나머지 시스템 메모리는 워크로드 자체에 전용되며 다음 두 가지 범주로 나뉩니다.
- 파일 메모리
이 카테고리에 추가된 페이지는 영구 스토리지의 파일 일부를 나타냅니다. 페이지 캐시의 이러한 페이지는 애플리케이션의 주소 공간에 매핑되거나 매핑 해제될 수 있습니다. 애플리케이션을 사용하여
mmap시스템 호출을 사용하여 해당 주소 공간에 파일을 매핑하거나 버퍼링된 I/O 읽기 또는 쓰기 시스템 호출을 사용하여 파일에서 작업할 수 있습니다.페이지를 직접 매핑하는 애플리케이션뿐만 아니라 버퍼링된 I/O 시스템 호출은 매핑되지 않은 페이지를 다시 활용할 수 있습니다. 결과적으로 커널은 특히 시스템이 메모리 집약적인 작업을 실행하지 않는 경우 이러한 페이지를 캐시에 저장하여 동일한 페이지 집합에서 비용이 많이 드는 I/O 작업을 다시 발행하지 않도록 합니다.
- 익명 메모리
- 이 범주의 페이지는 동적으로 할당된 프로세스에서 사용 중이거나 영구 스토리지의 파일과 관련이 없습니다. 이 페이지 세트는 애플리케이션 스택 및 힙 영역과 같은 각 작업의 메모리 내 제어 구조를 백업합니다.