Malloc 및 페이지 매김

Malloc 및 페이지 매김

사용자 프로세스가 malloc(n)을 호출할 때 프로세스에 할당된 물리적 페이지가 있습니까? 나는 그렇지 않다고 믿습니다. 왜냐하면 malloc은 힙에서 할당하기 때문입니다. 맞습니까?

답변1

Linux의 경우 귀하의 질문에 대한 짧은 대답은 "물리적 페이지는 일반적으로 할당되지 않습니다"라고 생각합니다. 이것은 ... 불리운다"메모리 과잉 할당"당신은 찾을 수 있습니다~의문서위에. Unix 변형에는 malloc 중 실제 물리적 페이지 할당에 대한 다양한 전략이 있습니다. 4BSD 기반 시스템은 전통적으로 남용되지 않으며 chill프로그램과 결합하면(참조를 찾을 수 없음) 무한한 재미가 있습니다. chill가능한 한 많은 메모리를 할당하고 예약하세요. SunOS(4.2BSD 기반)는 항상 무엇이든 물리적 페이지를 할당하기 때문에 malloc()한 사용자가 모든 RAM을 할당하고 다른 사용자가 끝없이 페이징하도록 할 수 있습니다.

Linux의 경우 시스템 정책이 무엇인지 확인할 수 있습니다. cat /proc/sys/vm/overcommit_memory"0", "1" 또는 "2"가 지정되어야 합니다. 이는 각각 "경험적 오버커밋", "항상 오버커밋" 및 "오버커밋하지 않음"을 의미합니다.

관련 정보