전체 목록
운영체제Medium#198

가상 메모리는 어떤 문제를 해결하나요?

#운영체제#VirtualMemory#메모리#MMU

답변 포인트

주소 공간 격리와 주소 변환를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.

정답 및 해설

빠른 요약

가상 메모리는 프로세스마다 독립적인 주소 공간을 제공하고 물리 메모리보다 큰 프로그램 실행을 가능하게 합니다. MMU가 가상 주소를 물리 주소로 변환합니다.

가상 메모리는 각 프로세스가 자신만의 연속된 큰 메모리 공간을 가진 것처럼 보이게 하는 운영체제의 메모리 관리 기법입니다. 실제 물리 메모리보다 추상화된 주소 공간을 제공해 보호, 격리, 효율적인 메모리 사용을 가능하게 합니다.

핵심 개념

  • 프로세스는 가상 주소를 사용하고, MMU와 페이지 테이블이 이를 물리 주소로 변환합니다.
  • 각 프로세스의 주소 공간이 분리되어 다른 프로세스 메모리를 직접 침범하기 어렵습니다.
  • 필요한 페이지만 물리 메모리에 올리고, 나머지는 디스크나 아직 매핑되지 않은 상태로 둘 수 있습니다.

동작 방식 또는 판단 기준

이 주제를 이해할 때는 다음 순서로 보면 실무 적용이 쉬워집니다.

  1. 무엇을 해결하려는가: 성능, 표현력, 안정성, 접근성 중 어떤 문제를 줄이려는지 확인합니다.
  2. 전제 조건은 무엇인가: 정렬 여부, 브라우저 지원, 네트워크 특성, 동시성 조건처럼 성립해야 하는 조건을 점검합니다.
  3. 비용은 어디서 발생하는가: 시간 복잡도, 메모리, 캐시, 재시도, 렌더링 비용처럼 병목 지점을 나눠 봅니다.
  4. 실패 시 어떤 문제가 생기는가: 잘못 적용했을 때의 버그나 운영 리스크를 함께 고려합니다.

실제 예시

Text
 A 0x1000  
                            frame 7
 B 0x1000                      frame 21

         

실무에서 주의할 점

  • 가상 메모리가 있다고 해서 메모리가 무한한 것은 아닙니다. 실제 RAM과 swap 한계가 있습니다.
  • page fault가 너무 자주 발생하면 디스크 I/O 때문에 시스템이 극도로 느려지는 thrashing이 생길 수 있습니다.
  • 메모리 누수는 가상 주소 공간과 물리 메모리 압박을 모두 만들 수 있습니다.

실무 적용 가이드

  • 프로세스 메모리 지표는 RSS, VSZ/VIRT, swap 사용량을 구분해서 봅니다.
  • 대용량 파일은 mmap으로 효율적으로 다룰 수 있지만 page fault 패턴을 이해해야 합니다.
  • 컨테이너 환경에서는 cgroup memory limit과 OOM kill 정책도 함께 고려합니다.

함께 연결해서 보면 좋은 키워드

Virtual Memory, MMU, Page Table, Memory Isolation, Swap

정리

가상 메모리는 각 프로세스가 자신만의 연속된 큰 메모리 공간을 가진 것처럼 보이게 하는 운영체제의 메모리 관리 기법입니다. 다만 개념 자체보다 중요한 것은 적용 조건과 한계를 함께 이해하는 것입니다. 작은 예제에서는 단순해 보여도 실제 서비스에서는 성능, 보안, 유지보수성, 접근성 요구사항이 함께 얽히므로, 문제의 성격을 먼저 파악한 뒤 적절한 도구로 선택하는 것이 좋습니다.

관련 질문

같은 카테고리/태그 기준