패스잇
CS 기초 · 중급

가상 메모리(Virtual Memory)의 개념과 작동 원리를 설명하고, 실제 물리 메모리보다 큰 프로그램을 실행할 수 있게 하는 핵심적인 메커니즘은 무엇인지 구체적인 예시를 들어 설명해보세요.

힌트 · 물리 메모리의 제약을 극복하기 위해 디스크 공간을 활용하며, MMU를 통해 가상 주소를 물리 주소로 변환합니다. 필요한 부분만 메모리에 로드하고 나머지는 스왑 공간에 저장합니다.

가상 주소 공간페이지 테이블페이지 폴트요구 페이징TLB (Translation Lookaside Buffer)

모범답안

가상 메모리는 물리 메모리보다 큰 프로그램을 실행할 수 있게 해주는 기술입니다. 각 프로세스에게 독립적인 가상 주소 공간을 제공하고, 실제로는 필요한 부분만 물리 메모리에 로드합니다.

작동 원리는 이렇습니다. 프로그램은 가상 주소를 사용하고, MMU(Memory Management Unit)라는 하드웨어가 이 가상 주소를 물리 주소로 변환합니다. 이 변환 과정에서 페이지 테이블이라는 자료구조가 사용됩니다.

만약 프로그램이 접근하려는 페이지가 물리 메모리에 없다면, 페이지 폴트가 발생합니다. 이때 OS는 디스크의 스왑 공간에서 해당 페이지를 찾아 물리 메모리에 로드합니다. 이를 요구 페이징이라고 합니다.

예를 들어, 8GB RAM을 가진 시스템에서 10GB 크기의 게임을 실행한다고 가정해봅시다. 게임의 모든 부분을 RAM에 올릴 수 없지만, 가상 메모리 덕분에 현재 플레이어가 있는 지역, 필요한 텍스처 등 일부만 RAM에 로드하고 나머지는 스왑 공간에 저장하여 게임을 실행할 수 있습니다. 자주 사용하는 주소 변환은 TLB라는 캐시에 저장하여 성능을 향상시킵니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 운영체제 면접 질문

← 운영체제 면접 질문 전체 보기