메모리를 효율적으로 관리하고 공간을 효율적으로 할당하는 과정에서 발생하는 문제로 내부 단편화와 외부 단편화로 나뉜다.
내부 단편화는 고정적인 메모리 크기를 할당해주는 작업 과정에서 발생하는데, 배열을 생각하면 쉽게 이해할 수 있다. 미리 크기를 할당해뒀지만 해당 크기 만큼 사용하지 않고 비워두게 되면 메모리 낭비가 발생하는데 이를 내부 단편화라 한다.
예를 들어 HTTP 요청을 받기 위해 1024Byte를 할당해뒀는데, 실제 요청은 평균적으로 800Byte만 왔다면 요청마다 평균 224Byte의 크기만큼 다른 프로세스에 할당되지 못한 채 낭비되게 된다.
메모리 블록 사이에 작은 빈 공간들이 흩어져 있어 전체 사용가능한 메모리 공간이 충분히 있어도 연속된 메모리 블록을 할당하지 못하는 현상
위와 같이 메모리에서 프로세스들이 종료되며 빈자리가 생기는 문제를 외부 단편화라 한다.