운영체제는 한정된 메모리를 효율적으로 관리하기 위해 논리 주소(Logical Address)를 물리 주소(Physical Address)로 변환하는 방식을 사용한다. 이때 대표적인 메모리 관리 기법으로 페이징(Paging)과 세그멘테이션(Segmentation)이 있다.
페이징은 프로세스의 논리 주소 공간을 동일한 크기의 고정된 단위(Page)로 나누고, 이를 물리 메모리의 프레임(Frame) 단위에 매핑하는 방식이다.
즉, 프로세스는 논리적으로 연속된 공간을 사용하는 것처럼 보이지만 실제 물리 메모리에서는 불연속적으로 저장된다.
📘 핵심 개념
📊 특징
아래 그림처럼 여러 프로세스(P1~P4)가 각자의 페이지를 물리 메모리의 프레임 단위로 나누어 사용하는 구조이다.
프로세스는 논리적으로 연속된 공간을 사용하지만 실제로는 물리적으로 흩어져 있다.

세그멘테이션은 프로세스의 논리 주소 공간을 의미 단위(Segment)로 나누는 방식이다.
각 세그먼트는 코드, 데이터, 스택 등 논리적으로 구분된 영역이며, 크기가 서로 다르다.
📘 핵심 개념
📊 특징
아래 그림은 세그먼트 단위로 메모리를 관리하는 구조이다.
각 세그먼트는 서로 다른 크기를 가지고 있으며, 세그먼트 테이블을 통해 물리 주소를 계산한다.

| 구분 | 페이징 (Paging) | 세그멘테이션 (Segmentation) |
|---|---|---|
| 단위 | 고정 크기의 Page | 가변 크기의 Segment |
| 관리 기준 | 물리적 단위 | 논리적 단위 |
| 단편화 | 내부 단편화 | 외부 단편화 |
| 주소 변환 | 페이지 테이블 사용 | 세그먼트 테이블 사용 |
| 사용 목적 | 메모리 관리 효율성 | 프로그램 논리 구조 반영 |
📌 정리하자면,
운영체제에서는 실제로 두 방식을 결합한 “세그먼트 페이징(Segmented Paging)” 기법도 사용하여 각각의 장점을 활용한다.