메모리 단편화, Fragmentation
메모리의 남은 공간을 사용할 수 없는 현상
- 외부 단편화 :메모리 블럭 사이에 자투리 블럭들의 활용이 어려운 상황
[100] = [20/20] [20/20] [20/20] [20/20] [20/20] 모두 크기와 동일한 작업으로 사용중
[100] = [20/20] [0/20] [20/20] [20/20] [0/20] 1,4 번째 사용종료
추가로 [30]의 작업이 발생했을때, 남은 공간이 [20],[20]으로 40이지만, 연속적이지 않은 공간임으로 메모리 할당 불가 - 내부 단편화 :
[100] = [10/20] [10/20] [10/20] [10/20] [10/20] 영역의 크기보다 작은 작업들로 구성됨(낭비)
추가로 [30]의 작업이 발생했을때, 남은 공간이 50이지만, 영역이 부족하여 메모리 할당 불가
관리 기법
기법 | 설명 | 계층 | 단편화 해결 방식/ 목적 |
Memory Compaction |
살아있는 객체를 한쪽으로 모아서 단편화 해결 | JVM 레벨, 런타임 | 객체 이동하여 외부 단편화 해결 |
Paging | 메모리를 고정 크기 "페이지"로 나눠 관리 | 운영체제(OS) | 외부 단편화 회피 (연속 공간 불필요) |
Segmentation | 메모리를 의미 단위(코드, 데이터 등)로 나눔 | 운영체제(OS) | 단편화 발생 가능성 저하 (관리 방안) |
Memory Pooling | 미리 메모리를 할당해 두고 재사용 | 프로그램/라이브러리 | 내부 단편화 최소화, GC 감소 |
'CS 정리' 카테고리의 다른 글
STW, Stop the world 제어하기 (2) | 2025.04.13 |
---|---|
메세지 큐, Message Queue (0) | 2025.04.13 |
GC, Garbage Collection (0) | 2025.04.12 |
JVM, Java virtual machine (0) | 2025.04.11 |
java Collection, Hash 연관 정리 (0) | 2025.04.07 |