CS 정리

메모리 단편화, Fragmentation

문쿼리 2025. 4. 12. 18:21

메모리 단편화, 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