컴퓨터에서 프로그램을 실행하거나 작업을 할 때 컴퓨터는 메모리에 해당 프로그램을 올리고 실행하게 된다. 이때 주기억잧이 상에서 빈번하게 기억 장소가 할당되고 반납됨에 따라 메모리 공간이 작은 조각 공간으로 나뉘게 될 경우, 사용 가능한 메모리가 충분함에도 불구하고 메모리 할당이 불가능한 상태가 발생하는데 이를 메모리 단편화라고 한다.
- 내부 단편화
- 외부 단편화
내부 단편화
주기억장치 내의 실행 프로그램 보다 사용자 영역이 커서 메모리 할당 후 사용되지 않고 남아있는 공간을 의미
EX) 메모장을 실행시키고 OS가 4KB만큼의 메모리를 할당해주었지만 사실상 1KB만큼만 사용하고 있을 때 필요 이상으로 프로세스가 메모리를 할당 받았기 때문에 내부 단편화가 3KB만큼 생김
외부 단편화
- 주기억장치 내의 사용자 영역보다 실행 프로그램이 커서 프로그램이 메모리에 할당되지 않고 남아있는 공간을 의미
- 메모리가 할당되고 해제되느 작업이 반복적으로 일어날 때 발생
EX) 메모리 처음 주소에 프로세스를 4KB만큼 할당하고 바로 이어서 8KB만큼의 메모리를 또 다른 프로세스에게 할당했다고 가정할 때, 4KB만큼의 메모리를 할당하고 있던 프로세스를 종료시키면 메모리의 처음 주소부터 4KB만큼의 공간이 생기게 되고 이런 식으로 계속해서 빈 메모리 공간이 생기게 되면 전체적으로 메모리 여유는 있지만 메모리를 많이 잡아먹는 프로세스를 실행시킬 수 없는 현상