메모리 단편화
IT 위키
- Memory Fragmentation; 기억장치 단편화
- 메모리의 빈 공간이 잘게 나뉘어, 전체 여유 용량은 충분한데도 필요한 크기를 연속으로 확보하지 못하는 현상
| 구분 | 내부 단편화 | 외부 단편화 |
|---|---|---|
| 뜻 | 할당한 블록이 요청보다 커서 블록 안에 남는 공간 | 빈 공간이 흩어져 연속으로 못 쓰는 공간 |
| 생기는 곳 | 고정 분할, 페이징 | 가변 분할, 세그먼테이션 |
| 예 | 4KB 페이지에 3KB 만 쓰면 1KB 가 남는다 | 빈 칸이 10KB, 20KB 로 나뉘어 25KB 요청을 못 받는다 |
페이징은 외부 단편화를 없애는 대신 내부 단편화를 남기고, 세그먼테이션은 그 반대다. 시험에서 자주 묻는 지점이다.
- 압축(Compaction) — 할당된 영역을 한쪽으로 몰아 빈 공간을 하나로 합친다. 이동 비용이 크다
- 통합(Coalescing) — 인접한 빈 블록끼리 합쳐 큰 블록으로 만든다
- 페이징 기법 — 고정 크기 페이지로 나누어 외부 단편화를 없앤다
- 버디 시스템 — 2의 거듭제곱 크기로 쪼개고 합쳐 관리한다. 내부 단편화가 생기지만 통합이 빠르다
- 슬랩 할당 — 같은 크기의 객체를 담는 캐시를 미리 만들어 둔다
가변 분할에서 어느 빈 공간에 넣을지 고르는 방법에 따라 단편화 정도가 달라진다.
- 최초 적합(First Fit) — 처음 만나는 충분한 공간. 빠르다
- 최적 적합(Best Fit) — 가장 작은 충분한 공간. 남는 조각이 잘아져 외부 단편화가 심해질 수 있다
- 최악 적합(Worst Fit) — 가장 큰 공간. 남는 조각이 커서 다시 쓸 여지가 있다
