세그멘테이션은 메모리를 코드·데이터·스택처럼 논리적인 의미를 가진 가변 크기의 세그먼트로 나누는 방식입니다. 외부 단편화는 빈 공간이 여러 곳에 흩어져 큰 연속 공간을 확보하지 못하는 문제입니다.

순수 세그멘테이션에서는 각 세그먼트를 물리 메모리에 연속 배치하고, 세그먼트 테이블의 시작 주소(Base)와 크기(Limit)로 주소 변환과 범위 검사를 수행합니다. 논리 단위별 보호와 공유에 유리하지만, 서로 다른 크기의 공간을 할당·해제하면서 빈틈이 생깁니다.

예를 들어 4 KiB와 6 KiB의 빈 공간이 떨어져 있으면 총 10 KiB가 남아도 8 KiB짜리 세그먼트를 넣을 수 없습니다. 이런 외부 단편화는 메모리 압축으로 완화하거나, 페이징을 결합해 연속 배치 요구를 줄일 수 있습니다.

출처 및 참고자료