가상 메모리(Virtual Memory)와 페이징(Paging)
운영체제를 공부하면서 반드시 짚고 넘어가야 할 개념 중 하나가 바로 가상 메모리(Virtual Memory)입니다. 그리고 이 가상 메모리를 구현하는 핵심 기법 중 하나가 바로 페이징(Paging)인데요. 이번 글에서는 이 두 개념에 대해 정리해보겠습니다.
가상 메모리(Virtual Memory)
가상 메모리는 물리적인 메모리(RAM)의 한계를 극복하고, 각 프로세스마다 독립적인 메모리 공간을 제공하기 위한 운영체제의 메모리 관리 기법입니다.
가상 메모리의 핵심 목적
- 추상화(Abstract)
- 프로세스가 마치 자신만의 큰 연속된 메모리를 가진 것처럼 보이게 함
- 보호성(Protection)
- 프로세스 간 메모리 접근을 격리
- 효율성(Efficiency)
- 실제 물리 메모리보다 더 큰 주소 공간을 사용할 수 있음
가상 주소 vs 물리 주소
- 가상 주소(Virtual Address)
- 프로세스가 보고 있는 주소
- 물리 주소(Physical Address)
- 실제 메모리(RAM)에 접근할 때 사용하는 주소
- MMU(Memory Management Unit)라는 하드웨어가 이 변환을 담당
페이징(Paging)
페이징은 가상 메모리를 작은 고정 크기의 블록인 페이지(Page)로 나누고, 물리 메모리 역시 동일한 크기의 프레임(Frame)으로 나누어, 매핑하는 방식입니다.
페이징의 동작 원리
- 프로세스가 메모리를 페이지 단위로 요청
- 운영체제는 각 페이지를 물리 메모리의 빈 프레임에 할당
- MMU가 페이지 테이블(Page Table)을 통해 가상 페이지 번호를 물리 프레임 번호로 변환해 메모리에 접근
페이징의 주요 구조
가상 주소 = 페이지 번호 + 페이지 내 오프셋
물리 주소 = 프레임 번호 + 동일한 오프셋
관련 키워드 정리
용어 | 설명 |
Page | 가상 메모리의 고정 크기 블록 (ex. 4KB) |
Frame | 물리 메모리의 고정 크기 블록 (Page와 동일 크기) |
Page Table | 가상 주소 → 물리 주소 매핑 정보를 저장 |
MMU | 주소 변환을 수행하는 하드웨어 |
페이지 폴트(Page Fault) | 해당 페이지가 메모리에 없어서 디스크에서 가져와야 할 때 발생 |
Demand Paging | 필요한 페이지가 접근될 때 비로소 메모리에 적재 |
페이징의 장점과 단점
장점
- 외부 단편화(External Fragmentation)가 없음
- 메모리 보호, 공유가 쉬움
- 스왑(Swap)과 같은 기법과 결합해 메모리 효율 증대
단점
- 내부 단편화(Internal Fragmentation)가 생길 수 있음
- 페이지 테이블이 커질 수 있음
- TLB(페이지 테이블 캐싱), 다단계 페이지 테이블로 보완 가능
마치면서
가상 메모리와 페이징은 단순히 메모리 관리 기법을 넘어 보안성, 안정성, 효율성을 모두 잡기 위한 OS의 핵심 기술이라고 할 수 있는데요. 현대 운영체제에서는 페이징이 기본적으로 적용되어 있고, 이를 이해하는 것은 CS 전반에 큰 도움이 됩니다.
'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글
[CS기초] 메모리 단편화(Memory Fragmentation) (0) | 2025.04.28 |
---|---|
[CS기초] 동적 메모리 할당 (힙, sbrk, malloc ,free) (0) | 2025.04.27 |
[중간정리] 6주차 - C언어(포인터), 이진탐색트리/RB트리/AVL트리 (0) | 2025.04.23 |
[CS기초] 6주차 개념 정리 (0) | 2025.04.22 |
[CS] RB트리(Red-black tree)의 삭제 (0) | 2025.04.18 |