스물두줄

정보관리기술사 · 개념서 · 클라우드 및 인프라

가상메모리

설명 영상 가상메모리 · 2:53

왜 배우는가: 가상메모리는 물리 메모리보다 큰 프로그램을 실행하게 하고 다중 프로세스의 메모리 보호와 공유를 가능하게 하는 운영체제의 핵심 기법이다. 페이징, 세그먼테이션, 단편화, 구역성 등 여러 개념의 출발점이어서 정보관리기술사 시험에서 반복해 출제되었다.

출제 이력: 제139회 4교시 4번, 제102회 3교시 4번

1. 한 줄 정의와 핵심 키워드

가상메모리는 물리 메모리 용량과 무관하게 프로세스에 연속된 주소 공간을 제공하고, 필요한 부분만 물리 메모리에 적재하는 메모리 관리 기법이다.

핵심 키워드

  • 가상 주소(Virtual Address): 프로세스가 보는 논리적 주소
  • 물리 주소(Physical Address): 실제 주기억장치의 주소
  • 페이징(Paging): 고정 크기 단위로 주소 공간을 나누어 적재하는 기법
  • 세그먼테이션(Segmentation): 코드·데이터·스택 등 논리 단위로 나누는 기법
  • 페이지 폴트(Page Fault): 요청한 페이지가 주기억장치에 없을 때 발생하는 인터럽트
  • 구역성(Locality): 프로그램이 최근 참조한 주소 주변을 다시 참조하는 성질
  • 단편화(Fragmentation): 메모리 공간이 쪼개져 사용 효율이 떨어지는 현상
  • 스래싱(Thrashing): 페이지 교체가 과도하게 일어나 실행이 진행되지 않는 상태

2. 개념 풀이

가상메모리는 "실제 메모리보다 큰 메모리를 쓰는 것처럼 보이게 하는 기술"이다. 프로그램 전체를 메모리에 올리지 않고, 당장 필요한 조각만 올린다. 나머지는 보조기억장치에 두었다가 필요할 때 가져온다.

정식 정의는 다음과 같다. 가상메모리는 프로세스의 가상 주소 공간을 주기억장치와 보조기억장치에 나누어 매핑하고, 주소 변환 하드웨어와 운영체제가 협력하여 이 매핑을 관리하는 기법이다. 프로세스는 자신만의 연속된 주소 공간을 가진다고 믿으며 실행된다.

핵심 용어는 다음과 같다.

주소 변환은 가상 주소를 물리 주소로 바꾸는 과정이다. 이 과정은 페이지 테이블과 MMU(Memory Management Unit, 메모리 관리 장치)가 담당한다. 변환 속도를 높이기 위해 TLB(Translation Lookaside Buffer, 변환 색인 버퍼)를 둔다.

요구 페이징(Demand Paging)은 페이지를 실제로 참조하는 시점에만 디스크에서 메모리로 가져오는 방식이다. 유효/무효 비트로 각 페이지의 존재 여부를 표시한다.

프로세스 격리는 각 프로세스가 자기 주소 공간만 접근하도록 막는 기능이다. 한 프로세스의 오류가 다른 프로세스 메모리를 훼손하지 못하게 한다.

3. 등장 배경과 필요성

초기 컴퓨터는 프로그램 전체가 연속된 물리 메모리에 들어가야 실행되었다. 그래서 프로그램 크기가 물리 메모리 크기로 제한되었다. 다중 프로그래밍이 확산되면서 여러 프로세스가 메모리를 나누어 써야 했고, 이 과정에서 외부 단편화가 생겼다.

스와핑은 프로세스 단위로 메모리 전체를 디스크와 맞바꾸는 방식이었다. 교체 비용이 커서 현대 시스템에서는 쓰지 않고, 이를 페이지 단위로 세분화한 방식이 가상메모리 페이징으로 발전했다. 이 과정에서 페이지 단위는 보통 4KB 같은 고정 크기가 널리 쓰였다.

가상메모리가 필요한 이유는 세 가지다. 첫째, 물리 메모리보다 큰 프로그램을 실행할 수 있다. 둘째, 프로세스마다 독립된 주소 공간을 주어 보호와 격리를 제공한다. 셋째, 여러 프로세스가 같은 공유 라이브러리 페이지를 물리 메모리에 한 번만 올려 쓸 수 있다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기