메모리 관리 (가상 메모리, 페이지 교체 알고리즘)
운영체제(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 등이 있으며, 각각의 특성을 이해하고 비교하는 것이 중요합니다.
- 기출 문제 풀이를 통해 알고리즘 적용 방법을 연습하세요!
💡 추가적으로 알고 싶은 부분이 있으면 언제든지 질문 주세요! 🚀😊