2025-11-27
오늘 배운 것
페이징(Paging) & 세그멘테이션(Segmentation)
1. 공통 목적
둘 다 물리 메모리를 효율적으로 관리하기 위한 분할 기법이다. 큰 메모리 공간을 쪼개어 관리함으로써 단편화를 줄이고, 프로세스별 메모리 보호 기능을 강화할 수 있다.
2. 페이징 (Paging)
(1) 개념
가상 메모리와 물리 메모리를 고정 크기 블록으로 나누어 매핑하는 방식이다.
- Page: 가상 메모리의 고정 크기 블록
- Frame: 물리 메모리의 고정 크기 블록
- Page Table: Page와 Frame의 매핑 정보
- MMU: VA → PA 주소 변환 수행
(2) 특징
- 분할 크기가 고정
- 물리 메모리가 연속적이지 않아도 된다
- 논리 주소 구조:
[페이지 번호 | 오프셋] - 물리 주소 계산:
Frame 시작 주소 + Offset
(3) 장점 / 단점
- 장점
- 외부 단편화가 없다
- 주소 변환 과정이 단순
- 프로세스를 물리 메모리 곳곳에 흩어 배치할 수 있다
- 단점
- 내부 단편화가 발생할 수 있다
- 페이지 테이블 크기 증가
- TLB 미스 시 주소 변환 오버헤드 증가
3. 세그멘테이션 (Segmentation)
(1) 개념
프로그램 구조(코드, 데이터, 스택 등)에 따라 의미 단위로 가변 크기 분할하는 방식.
- Segment: 의미 있는 단위(코드/데이터/스택 등)
- Segment Table: 세그먼트의 시작 주소(base)와 길이(limit) 저장
논리 주소 구조: [세그먼트 번호 | 오프셋]
(2) 특징
- 분할 크기가 가변
- 사용자/프로그램의 논리적 구조가 그대로 반영됨
- 외부 단편화 발생 가능
- 세그먼트 단위로 접근 권한 설정이 쉬움
(3) 장점 / 단점
- 장점
- 프로그램 구조와 일치하므로 직관적
- 세그먼트별 보호 및 접근 제어
- 단점
- 외부 단편화 발생
- 세그먼트 크기 관리 어려움
4. Paging vs Segmentation 비교
| 항목 | Paging | Segmentation |
|---|---|---|
| 분할 기준 | 고정 크기 | 의미 단위 |
| 분할 크기 | 동일 | 서로 다름 |
| 주소 구조 | 페이지 번호 + 오프셋 | 세그먼트 번호 + 오프셋 |
| 단편화 | 내부 단편화 | 외부 단편화 |
| 매핑 방식 | Page Table | Segment Table |
| 장점 | 단편화 해결, 관리 단순 | 논리 구조 반영, 보호 쉬움 |
| 단점 | Page Table 오버헤드 | 외부 단편화 |
5. Segmented Paging
세그멘트 안에 페이지를 도입한 구조.
프로그램 논리 구조(세그먼트)와 물리 메모리 효율성(페이징)을 결합한 방식이며, x86 계열에서 널리 사용된다.