Memory Partition

메모리 분할 단편화

고정 분할은 관리가 단순하지만 내부 단편화가 생기고, 가변 분할은 크기를 맞출 수 있지만 외부 단편화와 배치 전략 문제가 생긴다.

01

분할 방식 선택

고정 분할은 구현이 단순하지만 프로세스 크기가 칸보다 작으면 남는 공간이 생긴다.

02

빈 공간 선택

가변 분할에서는 first-fit, best-fit, worst-fit이 빈 hole 선택 방식으로 성능과 단편화를 바꾼다.

03

압축 비용 검토

외부 단편화를 줄이려면 compaction이 필요하지만 프로세스 이동과 주소 갱신 비용이 크다.

Fixed partition
내부 단편화 분할 크기보다 작은 프로세스가 남은 칸을 낭비한다.
동시 실행 수가 분할 수에 묶인다.
Variable partition
외부 단편화 빈 공간 총합은 충분해도 연속된 큰 hole이 없을 수 있다.
배치 전략이 중요하다.
First-fit
빠른 선택 처음 맞는 hole에 배치해 검색 비용이 낮다.
앞쪽에 작은 조각이 쌓일 수 있다.
Best-fit
가장 작은 적합 공간 남는 공간을 줄이려 하지만 작은 hole을 많이 만들 수 있다.
검색 비용도 크다.

단편화 종류 · 연속성 · 전략 점검

단편화 종류 남는 공간이 할당 내부인지 외부 hole인지 구분하는가.
연속성 총 빈 메모리와 연속 빈 메모리를 구분하는가.
전략 first-fit과 best-fit의 장단점을 입력 패턴과 연결하는가.

비용 구분

internal: allocated block has unused bytes
external: free holes exist but no contiguous fit