스물두줄

컴퓨터시스템응용기술사 · 개념서 · 컴퓨터 구조 및 운영체제

가상 메모리

설명 영상 가상 메모리 · 3:35

왜 배우는가: 가상 메모리는 물리 메모리 크기의 제약을 넘어 프로그램을 실행하고 프로세스를 서로 격리하는 운영체제의 핵심 기법이다. 주소 변환과 페이지 폴트 처리 원리를 이해해야 성능 문제와 메모리 보호 문제를 설명할 수 있어 시험에서 반복해서 출제된다.

출제 이력: 제138회 3교시 3번, 제110회 3교시 6번

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

답안 첫 줄 정의 문장: 가상 메모리는 프로세스에게 물리 메모리와 분리된 논리 주소 공간을 제공하고, 실제 사용하는 부분만 주기억장치에 올려 실행하는 메모리 관리 기법이다.

핵심 키워드

  • 가상 주소(Virtual Address)
  • 물리 주소(Physical Address)
  • 페이지(Page)와 프레임(Frame)
  • 페이지 테이블(Page Table)
  • 요구 페이징(Demand Paging)
  • 페이지 폴트(Page Fault)
  • TLB(Translation Lookaside Buffer)

2. 개념 풀이

쉬운 말로 하면, 프로그램은 자기만의 넓고 연속된 메모리가 있다고 믿고 실행된다. 실제 램은 작고 여러 프로그램이 나눠 쓰는데, 그 간극을 운영체제와 하드웨어가 메운다.

정식 정의는 다음과 같다. 가상 메모리는 논리 주소 공간과 물리 주소 공간을 분리하여, 프로세스가 사용하는 주소의 크기를 실제 설치된 메인 메모리의 크기와 다르게 할 수 있게 하는 기법이다. 이 분리가 있어 프로세스마다 독립된 주소 공간을 줄 수 있다.

핵심 용어는 다음과 같다.

  • 페이지(Page): 논리 주소 공간을 같은 크기로 자른 조각이다. 리눅스 x86 시스템에서는 4KB 페이지를 사용한다.
  • 프레임(Frame): 물리 메모리를 페이지와 같은 크기로 자른 조각이다. 페이지를 어느 프레임에 올릴지가 주소 변환의 대상이 된다.
  • 페이지 테이블(Page Table): 프로세스마다 하나씩 있으며, 페이지 번호로 프레임 번호를 찾는 표다.

오프셋은 페이지 안에서의 위치이고, 페이지와 프레임의 크기가 같으므로 변환 과정에서 오프셋은 바뀌지 않는다. 따라서 변환은 페이지 번호를 프레임 번호로 바꾸는 일로 충분하다.

3. 등장 배경과 필요성

초기 컴퓨터는 프로그램이 물리 메모리 전체를 직접 써야 했다. 메모리보다 큰 프로그램은 실행할 수 없었고, 여러 프로그램을 동시에 올리면 주소 충돌과 상호 침범이 생겼다. 프로그래머가 적재 위치를 직접 관리해야 하는 부담도 컸다.

가상 메모리는 이 문제를 주소 변환으로 풀었다. 논리 주소를 쓰게 하고 물리 위치는 운영체제와 MMU가 정하므로, 프로그램 크기 제약과 주소 충돌이 함께 줄었다. 램 가격이 비싸던 시기에는 디스크를 확장 메모리처럼 쓸 수 있다는 점이 경제성 측면에서도 중요했다. 지금도 램 용량이 늘었지만 다중 실행과 프로세스 보호를 위해 이 기법은 그대로 쓰인다.

요구 페이징(Demand Paging)은 이 필요에 맞춘 방식이다. 프로세스는 페이지가 하나도 올라오지 않은 상태에서 시작하고, 접근하는 페이지만 그때그때 적재한다. 그래서 적재 지연을 줄이고 메모riy 사용을 아낄 수 있다. 미적재 페이지 접근은 페이지 폴트로 감지된다.

이어지는 내용

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

앱에서 이 단원 읽기