주 기억장치에서 메모리의 공간이 작은 공간으로 나뉘어져서, 사용하기에 충분한 공간은 있지만 사실상 사용이 불가능한 경우 메모리 단편화가 발생했다고 한다. 메모리 단편화는 외부 단편화, 내부 단편화로 나뉘어진다.
내부 단편화(Internal Fragmentation): 필요한 양보다 더 큰 메모리가 할당되었을 때 메모리 내부에서 사용하는 메모리 공간 외에 남는 사용하지 않는 메모리 공간이 발생했을 때
ex) 메모장을 실행했을 때 OS가 4KB를 할당해줬다고 하자. 메모장은 실제 1KB만을 차지한다. 필요 이상으로 메모리를 할당받은 것이고 3KB의 남는 공간이 생긴다. 이를 내부 단편화라고 한다.
외부 단편화(External Fragmentation): 메모리가 할당이 되고 해제가 되는 과정이 반복될 때 작은 단위의 빈 메모리가 띄엄띄엄 존재하게 되는데 빈 메모리의 전체 공간은 할당하기에 충분하지만 실제로 사용할 수 없는 경우
ex) 총 24KB의 메인 메모리 공간이 있다고 했을 때 처음부터 메인 메모리 공간에 다른 프로세스들이 할당되어 있고 중간에 빈 공간이 있다. 이 때 빈 공간의 총 합을 5KB라고 할 때(1+2+2) 3KB 프로세스는 할당할 수 없다. 이를 외부 단편화라고 한다.