IT이야기

메모리 관리 (가상 메모리, 페이지 교체 알고리즘)

Chiba-in 2025. 2. 14. 10:02

운영체제(OS)에서 메모리 관리(Memory Management)는 프로세스 실행을 위한 핵심 기능입니다.
특히 가상 메모리(Virtual Memory)와 페이지 교체(Page Replacement) 알고리즘은 중요한 개념으로,
응용정보기술자 시험(오전/오후 문제)에서 자주 출제됩니다.


1. 메모리 관리 개요

(1) 메모리 계층 구조

컴퓨터 시스템에서 메모리는 속도와 용량에 따라 계층적인 구조를 가집니다.

계층 속도 용량
레지스터 매우 빠름 매우 작음 CPU 내부
캐시(Cache) 빠름 작음 L1, L2, L3 캐시
RAM (주기억장치) 보통 중간 DDR4, DDR5
가상 메모리 느림 HDD, SSD의 일부
보조 기억장치 매우 느림 매우 큼 HDD, SSD

2. 가상 메모리 (Virtual Memory)

(1) 가상 메모리란?

  • 물리적 RAM보다 더 많은 메모리를 사용하는 기법
  • 하드디스크/SSD의 일부를 RAM처럼 사용하여 부족한 메모리를 보완함
  • 프로세스가 실행될 때 필요한 일부 페이지만 메모리에 로드하여 실행 가능

(2) 가상 메모리의 장점

멀티태스킹 지원: 여러 프로그램을 동시에 실행 가능
메모리 확장 효과: 실제 RAM보다 많은 메모리를 사용할 수 있음
프로세스 격리: 각 프로세스가 독립적인 메모리 공간을 가짐

(3) 가상 메모리 주요 개념

개념 설명
페이지(Page) 가상 메모리를 일정 크기로 나눈 단위
페이지 테이블(Page Table) 가상 주소와 물리 주소의 매핑을 관리
페이지 폴트(Page Fault) 필요한 페이지가 메모리에 없을 때 발생
스왑(Swap) 사용하지 않는 페이지를 디스크로 이동

3. 페이지 교체 알고리즘 (Page Replacement Algorithm)

운영체제는 페이지 폴트가 발생했을 때, 기존 페이지를 교체해야 하는데,
이때 효율적인 페이지 교체 알고리즘이 필요합니다.

(1) FIFO (First-In, First-Out)

  • 가장 먼저 메모리에 들어온 페이지를 먼저 교체하는 방식
  • 단점: 오래된 페이지가 자주 사용되는 경우 비효율적 (Belady's Anomaly 발생)

예시
메모리 크기가 3페이지일 때, 페이지 참조 순서가 1 2 3 4 1 2 5 1 2 3 4 5라면,
FIFO 알고리즘을 적용하면 페이지 폴트가 많이 발생할 수 있음.

(2) LRU (Least Recently Used)

  • 가장 오랫동안 사용되지 않은 페이지를 교체하는 방식
  • 최근 사용된 페이지는 유지하고, 사용되지 않은 페이지를 제거

예시
메모리 크기가 3일 때, 페이지 참조 순서 1 2 3 4 1 2 5 1 2 3 4 5
LRU를 적용하면, 가장 오랫동안 사용되지 않은 페이지(최신이 아닌 것)를 교체하여 페이지 폴트를 줄일 수 있음.

(3) OPT (Optimal Page Replacement)

  • 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체하는 방식
  • 이론적으로 가장 적은 페이지 폴트를 발생하지만, 미래 참조를 예측해야 하므로 현실적으로 구현이 어려움.

예시
페이지 참조 순서 1 2 3 4 1 2 5 1 2 3 4 5에서
OPT 알고리즘을 적용하면, 가장 늦게 사용될 페이지를 우선적으로 교체하여 페이지 폴트 수를 최소화.

(4) LFU (Least Frequently Used)

  • 가장 적게 사용된 페이지를 교체하는 방식
  • 단점: 최근에 많이 사용되었지만, 예전에 적게 사용된 페이지가 교체될 수도 있음

예시

  • 페이지 A(10번 참조), B(5번 참조), C(3번 참조)가 메모리에 있을 때,
    새로운 페이지 D가 들어오면 C(3번 참조)를 교체하는 방식.

4. 페이지 교체 알고리즘 비교

알고리즘 특징 장점 단점
FIFO 먼저 들어온 페이지를 교체 구현이 간단함 오래된 페이지가 자주 사용될 경우 비효율적
LRU 가장 오랫동안 사용되지 않은 페이지 교체 자주 사용되는 페이지 유지 가능 구현 비용(시간 복잡도) 높음
OPT 미래에 가장 늦게 사용될 페이지 교체 페이지 폴트 최소화 미래 예측이 어려워 현실적으로 구현 어려움
LFU 가장 적게 사용된 페이지 교체 자주 사용되는 페이지 유지 최근 자주 사용된 페이지가 교체될 가능성 있음

5. 페이지 교체 알고리즘 기출 문제 예제

오전 문제 예제

Q1. 다음 중 가상 메모리에서 페이지 교체가 발생하는 주요 원인은?
① 페이지가 너무 작을 때 ② 페이지 폴트가 발생할 때
③ CPU 사용량이 많을 때 ④ RAM 용량이 클 때
정답: ② 페이지 폴트가 발생할 때


오후 문제 예제

Q2. LRU 페이지 교체 알고리즘을 적용할 때, 다음과 같은 페이지 참조 순서에서 페이지 폴트 횟수를 계산하시오.

  • 페이지 참조 순서: 1 3 0 3 5 6 3 0 1 2 3 6
  • 페이지 프레임: 3개

풀이 예시
1️⃣ 초기 메모리 상태: 빈 페이지 프레임 (3개)
2️⃣ 페이지 폴트 발생: (1, 3, 0) → 1, 3, 0
3️⃣ 페이지 3은 최근 사용됨 → 그대로 유지
4️⃣ 새로운 페이지(5) → 0이 가장 오래 사용되지 않음 → 5로 교체
5️⃣ 같은 방식으로 진행하여 총 페이지 폴트 횟수를 계산.


🎯 마무리

  • 가상 메모리는 물리적 RAM을 확장하는 기술이며, 페이지 폴트가 발생하면 페이지 교체 알고리즘이 동작합니다.
  • 페이지 교체 알고리즘은 FIFO, LRU, OPT, LFU 등이 있으며, 각각의 특성을 이해하고 비교하는 것이 중요합니다.
  • 기출 문제 풀이를 통해 알고리즘 적용 방법을 연습하세요!

💡 추가적으로 알고 싶은 부분이 있으면 언제든지 질문 주세요! 🚀😊