파일 매핑 및 페이징 요청 시 최대 절전 모드에 전체 시스템 RAM 크기와 대략 동일한 크기의 스왑 공간이 필요한 이유는 무엇입니까?

파일 매핑 및 페이징 요청 시 최대 절전 모드에 전체 시스템 RAM 크기와 대략 동일한 크기의 스왑 공간이 필요한 이유는 무엇입니까?

내가 이해한 바에 따르면, 프로그램 텍스트나 공유 라이브러리 등을 포함하는 메모리의 페이지는 실제로 스왑이 아닌 관련 파일에 매핑됩니다(예: /usr/bin/ls 섹션에 매핑). 따라서 커널이 메모리를 해제할 때 이러한 페이지를 스왑에 복사할 필요가 없습니다. 페이지 부재가 발생할 때 관련 파일에서 메모리로 다시 복사할 수 있기 때문입니다.

따라서 우리는 익명 페이지(예: 일부 실제 파일과 관련되지 않은 메모리의 페이지)에만 스왑 공간을 사용합니다. 이러한 사실을 감안할 때 대부분의 메모리 페이지는 필요에 따라 관련 실제 파일에서 메모리로 직접 복사되기 때문에 스왑 공간에 복사할 필요가 없다고 가정합니다. 그래서 제 질문은 이렇습니다.대부분의 메모리 페이지가 스왑 공간에 전혀 매핑되지 않은 경우 최대 절전 모드에 전체 시스템 메모리와 거의 동일한 스왑 공간이 필요한 이유는 무엇입니까?

답변1

그러나 실제로는 그렇지 않습니다. 최대 절전 모드 이미지의 기본 대상(참조:image_size설정)은 설치된 메모리 양의 약 2/5입니다.

관련 정보