IT 기술/CA & OS

메모리 단편화

gooooooood 2024. 12. 16. 16:03
반응형

Ⅰ. 메모리 할당 기법에 의해 발생하는 메모리 단편화 개념 및 종류

가. 메모리 단편화 개념

- 메모리상에서 프로그램에 의해 사용되지 못하고 낭비되는 부분적인 공간이 발생하는 현상

 

나. 메모리 단편화 종류

외부 단편화 - 분할된 크기가 프로그램 크기보다 작아서 사용하지 못하는 공간
- 가변분할 또는 페이징기법 사용시 발생하는 메모리 단편화
내부 단편화 - 분할된 공간에 프로그램 적재 후 남는 공간
- 고정분할 또는 세그먼트기법 사용시 발생하는 메모리 단편화

- 메모리 할당 기법에 따라 외부/내부 단편화로 구분

 

Ⅱ. 메모리 단편화의 원인

가. 외부 단편화 발생 원인

개념도
원인 - 메모리 할당기법으로써 가변분할 또는 세그먼트 기법 사용
설명 - 메모리에 프로그램이 지속적으로 할당/교체되어 사용하기 어려운 작은 공간이 발생

 

나. 내부 단편화 발생 원인

개념도
원인 - 메모리 할당 기법으로 고정분할 또는 페이징 기법 사용
설명 - 사전에 메모리 할당 크기를 정의 후 프로그램 적재
- 고정분할 크기보다 작은 프로그램에 대해 미사용 영역 발생

 

Ⅲ. 메모리 단편화 해결 방안

가. 외부 단편화 해결 방안, Buddy memory Allocation

구분 설명
개념 - 요청한 프로그램 크기에 가장 알맞은 크기를 할당하기 위해 메모리를 2의 n승 크기로 분할 할당
동작 (1) 초기 64KB 버디 블록에 8KB 할당 요청 들어옴
(2) 버디 블록 절반 분할
(3) 요청한 8KB보다 크기가 크기 때문에 다시 절반 분할
(4) 블록크기가 8KB가 되어 요청한 메모리 할당
특징 - 외부 단편화는 해소되었으나, 내부 단편화 문제는 여전히 남아있음

 

나. 내부 단편화 해결 방안, Slab Allocation

구분 설명
개념 - 페이지 프레임을 할당 받아 공간을 작은 크기로 분할하고(캐시 집합) 메모리 요청시 작은 크기로 메모리를 할당/해제하는 동적 메모리 관리 기법
동작 (1) 메모리 할당 요청
(2) 요청크기가 최소 단위(4KB)보다 크면 Buddy Allocator, 작으면 Slab Allocator 할당
(3) 가장 적합한 크기의 캐시 찾아 Partial slab으로부터 객체 할당
특징 - 내부 단편화 최소화 뿐만 아니라 캐시 사용하여 성능향상

 

다. 공통 해결 방안, 통합/압축

구분 통합 압축
개념도
개념 - 인접한 단편화 영역을 찾아 하나로 통합 - 메모리의 모든 단편화 영역을 하나로 압축
반응형

'IT 기술 > CA & OS' 카테고리의 다른 글

파이프라인 해저드  (0) 2024.12.17
CPU 주소 지정 방식  (0) 2024.12.17
GPGPU  (0) 2024.12.16
RAID  (0) 2024.12.16
교착상태  (0) 2024.12.16