CS 기초 · 중급
가상 메모리(Virtual Memory)의 개념과 작동 원리를 설명하고, 실제 물리 메모리보다 큰 프로그램을 실행할 수 있게 하는 핵심적인 메커니즘은 무엇인지 구체적인 예시를 들어 설명해보세요.
힌트 · 물리 메모리의 제약을 극복하기 위해 디스크 공간을 활용하며, MMU를 통해 가상 주소를 물리 주소로 변환합니다. 필요한 부분만 메모리에 로드하고 나머지는 스왑 공간에 저장합니다.
가상 주소 공간페이지 테이블페이지 폴트요구 페이징TLB (Translation Lookaside Buffer)
모범답안
가상 메모리는 물리 메모리보다 큰 프로그램을 실행할 수 있게 해주는 기술입니다. 각 프로세스에게 독립적인 가상 주소 공간을 제공하고, 실제로는 필요한 부분만 물리 메모리에 로드합니다.
작동 원리는 이렇습니다. 프로그램은 가상 주소를 사용하고, MMU(Memory Management Unit)라는 하드웨어가 이 가상 주소를 물리 주소로 변환합니다. 이 변환 과정에서 페이지 테이블이라는 자료구조가 사용됩니다.
만약 프로그램이 접근하려는 페이지가 물리 메모리에 없다면, 페이지 폴트가 발생합니다. 이때 OS는 디스크의 스왑 공간에서 해당 페이지를 찾아 물리 메모리에 로드합니다. 이를 요구 페이징이라고 합니다.
예를 들어, 8GB RAM을 가진 시스템에서 10GB 크기의 게임을 실행한다고 가정해봅시다. 게임의 모든 부분을 RAM에 올릴 수 없지만, 가상 메모리 덕분에 현재 플레이어가 있는 지역, 필요한 텍스처 등 일부만 RAM에 로드하고 나머지는 스왑 공간에 저장하여 게임을 실행할 수 있습니다. 자주 사용하는 주소 변환은 TLB라는 캐시에 저장하여 성능을 향상시킵니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 운영체제 면접 질문
- 프로세스와 스레드의 주요 차이점을 설명하고, 특정 애플리케이션 개발 시 어떤 기준으로 둘 중 하나를 선택할지 구체적인 시나리오를 들어 설명해보세요.
- 운영체제에서 컨텍스트 스위칭(Context Switching)이 발생하는 과정과 이로 인해 발생할 수 있는 성능상의 오버헤드에 대해 설명하고, 이를 최소화하기 위한 방법은 무엇이 있을까요?
- 교착상태(Deadlock)가 발생하는 4가지 필수 조건을 설명하고, 실제 시스템에서 교착상태를 예방하거나 회피하기 위한 대표적인 기법들을 제시해주세요.
- 페이징(Paging) 기법이 가상 메모리 시스템에서 어떻게 작동하는지 설명하고, 페이지 테이블(Page Table)과 TLB(Translation Lookaside Buffer)의 역할 및 이들이 메모리 접근 속도에 미치는 영향에 대해 논해보세요.
- 운영체제의 CPU 스케줄링 알고리즘 중 라운드 로빈(Round Robin)과 우선순위(Priority) 스케줄링의 특징과 장단점을 비교 설명하고, 각각 어떤 종류의 시스템 환경에 적합한지 예를 들어 설명해주세요.
- 멀티스레드 환경에서 공유 자원에 대한 동시성 문제를 해결하기 위한 세마포어(Semaphore)와 뮤텍스(Mutex)의 차이점을 설명하고, 각각 어떤 상황에서 더 적합하게 사용될 수 있는지 구체적인 시나리오를 제시해주세요.