운영체제는 물리 메모리(RAM)의 한계를 극복하고, 더 효율적이고 안전한 메모리 관리를 위해 가상 메모리(Virtual Memory) 를 사용한다.
가상 메모리는 논리적으로 무한한 메모리 공간을 제공하는 추상화다.

| 장점 | 설명 |
|---|---|
| 주소 공간 분리 | 각 프로세스는 자신의 메모리 공간을 가지고 있어 서로 간섭 불가 |
| 보안성 향상 | 커널 영역과 사용자 영역을 구분하여 보호 |
| 효율적 자원 활용 | 실제 필요한 메모리만 물리 메모리에 적재 |
| 프로세스 간 공유 | 공유 메모리를 통해 통신 가능 |
| 프로그램 크기 제한 해제 | 물리 메모리보다 큰 프로그램도 실행 가능 |
가상 메모리를 쓰는 프로그램의 주소는 실제 RAM 주소가 아니다.
CPU는 가상 주소(Virtual Address)를 사용하고, MMU가 페이지 테이블(Page Table) 을 통해 물리 주소로 변환한다.
[Virtual Address] --(MMU + Page Table)--> [Physical Address]
이 과정을 주소 매핑(Address Mapping) 이라고 한다.
가상 메모리는 고정 크기 단위인 페이지(Page) 로 나뉘며,
물리 메모리 역시 동일한 크기의 프레임(Frame) 으로 나뉜다.
| 항목 | 설명 |
|---|---|
| Page | 가상 메모리의 단위 |
| Frame | 물리 메모리의 단위 |
| Page Table | Page → Frame으로의 매핑 정보를 저장한 표 |
일반적으로 페이지 크기는 4KB (x86 기준)
필요한 페이지가 아직 메모리에 올라와 있지 않은 경우, CPU는 해당 페이지를 찾지 못하고 Page Fault 예외를 발생시킨다.
운영체제는 이 신호를 받고:
→ 이 과정을 통해 지연은 있지만, 메모리 낭비 없이 실행 가능
fork() 후 효율적으로 메모리를 활용하는 데 사용됨| 항목 | 가상 메모리 | 물리 메모리 |
|---|---|---|
| 관리 주체 | 운영체제(OS) | 하드웨어(RAM) |
| 주소 | 프로세스 기준 논리 주소 | 실제 주소 (RAM 위치) |
| 용량 제한 | 이론적으로 매우 큼 | 실제 장착된 메모리 용량 |
| 보안 | 프로세스 간 격리 가능 | 직접 접근 시 취약할 수 있음 |