인프런 커뮤니티 질문&답변
가상 메모리 개요에서 질문
해결된 질문
작성
·
230
1
가상 메모리 부분에서 "가상 메모리는 물리 메모리의 크기와 CPU의 비트수로 결정된다"고
하셨는데 여기서 궁금점이 생깁니다.
만약에 어떤 CPU A가 표현할 수 있는 메모리의 주소 크기 최대값이 16GB라고 가정하겠습니다
첫번째 경우, 물리 메모리(실제로 시금치 램)가 16GB 메인보드에 연결되어 있으면
하드디스크 안의 스왑영역을 사용하지 않는 것인가요??
어차피 가상메모리의 용량은 16GB가 최대인 상황인데 물리메모리로 16GB 다 있으니까
하드디스크의 스왑영역을 사용할 수 없고, 사욯할 필요도 없는 것 같습니다.
두번째 경우, 물리메모리가 8GB 만큼 메인보드에 연결되어 있어도
가상 메모리는 16GB가 되는 것인가요? 물리 메모리에서 8GB을 가져다 쓰고
하드디스크의 스왑영역에서 8GB를 가져다 쓰는 방식으로 작동하는지 궁금합니다.
세번째 경우, 가상메모리가 이론상 무제한이라고 하셨는데
그 이유가 하드디스크의 스왑영역 덕분인가요?
위 CPU 예시에서 가상메모리의 크기는 16GB가 될 것입니다
만약 지금 프로세스들의 메모리 요구사항이 총 100GB라고 가정하면
일단 급한대로 16GB의 가상메모리에 프로세스들을 나눠 담고
남은 84GB는 스왑영역에 넣었다가 필요할 때 마다 스왑해서 사용하면 되니까
이론적으로는 가상메모리가 무한대라고 하신건지 궁금합니다.
답변 1
1
감자
지식공유자
1. 물리 메모리(실제로 시금치 램)가 16GB 메인보드에 연결되어 있으면 하드디스크 안의 스왑영역을 사용하지 않는 것인가요??
맞습니다!
메모리에 공간이 부족해서 페이지 폴트가 발생하면 디스크에서 해당 페이지를 불러오는데 이때는 오버헤드가 발생합니다.
그래서 스왑과정이 없는게 가장 효율적인 방법인데 메모리의 크기가 충분하다면 디스크는 사용하지 않는게 훨씬 좋겠죠?
2. 물리메모리가 8GB 만큼 메인보드에 연결되어 있어도 가상 메모리는 16GB가 되는 것인가요?
가상 메모리의 크기는 물리메모리의 크기와 다를 수 있습니다.
만약 CPU A가 표현할 수 있는 주소크기 16GB였다면 가상 메모리의 최대크기는 16GB가 됩니다.
그 밑으로는 사용자가 임의로 설정할 수도있습니다!
만약 16GB바이트가 필요하다면 메모리에서 8GB(실제로는 운영체제 영역도 있으니 더 적음), 나머지는 스왑영역을 사용합니다!
3. 가상메모리가 이론상 무제한이라고 하셨는데 그 이유가 하드디스크의 스왑영역 덕분인가요?
맞습니다.
요즘은 많은 CPU가 64bit라서 표현할 수 있는 주소가 2⁶⁴(18446744073709551616)개로 무한대에 가깝습니다.
이해하신 것 처럼 충분한 크기의 하드디스크가 있으면 RAM의 부족한 영역을 충분히 커버할 수 있습니다!






답변 감사합니다~
새해 복 많이 받으세요!!!