페이징 vs 세그멘테이션
| 항목 | 페이징 | 세그멘테이션 |
|---|
| 크기 | 고정 (4KB) | 가변 (논리적 단위) |
| 분할 기준 | 물리적 | 논리적 (코드/데이터/스택) |
| 외부 단편화 | 없음 | 있음 |
| 내부 단편화 | 있음 (평균 2KB) | 없음 |
| 보호/공유 | 페이지 단위 | 세그먼트 단위 (논리적) |
| 현대 사용 | 주류 (x86-64) | 레거시 (x86 플랫 모델) |
연속 할당 vs 페이징 vs 세그멘테이션
| 항목 | 연속 할당 | 페이징 | 세그멘테이션 |
|---|
| 할당 방식 | 연속 블록 | 고정 크기 페이지 | 가변 크기 세그먼트 |
| 단편화 | 외부 단편화 | 내부 단편화 | 외부 단편화 |
| 접근 | 빠름 | 페이지 테이블 참조 | 세그먼트 테이블 참조 |
내부 단편화 vs 외부 단편화
| 항목 | 내부 단편화 | 외부 단편화 |
|---|
| 위치 | 할당된 블록 내부 | 할당된 블록 사이 |
| 원인 | 고정 크기 블록 할당 | 가변 크기 할당/해제 반복 |
| 해결 | 가변 크기 할당, 슬랩 할당자 | 압축, 페이징, 버디 시스템 |
페이지 교체 알고리즘 비교
| 알고리즘 | 방식 | 장점 | 단점 | 성능 순위 |
|---|
| Optimal | 가장 나중에 사용될 페이지 | 이론적 최적 | 미래 예측 불가 | 1 (기준) |
| LRU | 가장 오래 사용 안된 페이지 | 실용적, 지역성 활용 | 구현 비용 (스택/카운터) | 2 |
| Clock | FIFO + Reference 비트 | LRU 근사, 효율적 | 근사치 | 3 |
| FIFO | 가장 오래된 페이지 | 단순 | Belady's Anomaly | 4 |
다단계 페이지 테이블 vs 단일 vs 역페이지 테이블
| 항목 | 다단계 | 단일 | 역 (Inverted) |
|---|
| 기준 | 프로세스별 | 프로세스별 | 시스템 전체 |
| 공간 | 절약 (미사용 영역 미할당) | 낭비 | 최소 |
| 접근 | 다회 메모리 접근 | 1회 접근 | 해시 검색 |
| 사례 | x86-64 (4단계) | 소규모 시스템 | PowerPC, IA-64 |
메모리 할당 기법: First Fit vs Best Fit vs Worst Fit
| 항목 | First Fit | Best Fit | Worst Fit |
|---|
| 방법 | 첫 번째 충분한 블록 | 가장 근접한 블록 | 가장 큰 블록 |
| 속도 | 빠름 (평균 O(n/2)) | 느림 (전체 탐색 O(n)) | 느림 |
| 단편화 | 앞쪽 작은 단편 | 아주 작은 단편 생성 | 큰 블록 빨리 소진 |
| 실무 | 가장 많이 사용 | 이론적 관심 | 거의 미사용 |
버디 시스템 vs Slab 할당자 vs malloc
| 항목 | 버디 시스템 | 슬랩 할당자 | malloc |
|---|
| 대상 | 페이지 단위 | 커널 객체 | 사용자 공간 |
| 크기 | 2의 거듭제곱 | 객체 크기 정확 | 가변 |
| 단편화 | 내부 단편화 | 없음 (정확 할당) | 외부/내부 |
| 속도 | O(log n) | O(1) | 가변 |
가비지 컬렉션: Reference Counting vs Tracing GC
| 항목 | Reference Counting | Tracing GC (Mark-Sweep) |
|---|
| 회수 시점 | 즉시 (참조 수 0) | 주기적 (GC 사이클) |
| 순환 참조 | 문제 (해결 불가) | 해결 (도달 가능성 기반) |
| STW | 없음 | 있음 (Stop-the-World) |
| 사례 | Python, Swift | Java, Go, JavaScript |
메모리 관리: 수동 vs GC vs 소유권 모델
| 항목 | 수동 관리 (C) | GC (Java) | 소유권 (Rust) |
|---|
| 속도 | 빠름 | GC 오버헤드 | 빠름 |
| 안전성 | 위험 (댕글링, 누수) | 안전 | 안전 (컴파일 타임 검증) |
| 학습 곡선 | 중간 | 낮음 | 높음 |
메모리 압축 vs 스왑 vs OOM Kill
| 항목 | 메모리 압축 | 스왑 | OOM Kill |
|---|
| 방식 | CPU로 페이지 압축 | 디스크로 페이지 이동 | 프로세스 강제 종료 |
| 속도 | 빠름 | 느림 (디스크 I/O) | 즉시 |
| SSD 영향 | 없음 | 수명 단축 | 없음 |
| 사례 | zswap, zram | swap 파티션 | Linux OOM Killer |