메모리 단편화(Memory Fragmentation) 이란?
컴퓨터에서 프로그램을 실행하거나 작업을 하게 되면 컴퓨터는 메모리에 해당 프로그램을 올리고 실행을 합니다.
이때 주기억장치 상에서 빈번하게 기억 장소가 할당되고 반납됨에 따라서 메모리 공간이 작은 조각 공간으로 나뉘게 될 경우
사용 가능한 메모리가 충분함에도 불구하고 메모리 할당이 불가능한 상태가 발생하게 되는데
해당과 같은 상황을 메모리 단편화라고 합니다.
여기서 메모리 단편화의 종류는 ‘내부 단편화’와 ‘외부 단편화’가 있습니다.
내부 단편화
⭐ 주기억장치 내의 실행 프로그램보다 사용자 영역이 커서 메모리 할당 후 사용되지 않고 남아있는 공간을 의미함.
예시) PPT를 실행시키고 OS가 5KB만큼 메모리를 할당해주었지만 사실상 1KB만큼 사용중일때
필요이상으로 프로세스가 메모리를 할당받고 있기 때문에 내부 단편화가 4KB만큼 발생함
외부 단편화
⭐ 주기억장치 내의 사용자 영역보다 실행 프로그램이 크기 때문에
위의 사진처럼 A 외부 단편화, B외부 단편화에 메모리가 할당되지 않고 남아있는 공간을 의미함.
특히나 메모리가 할당되고 해제되는 작업이 반복적으로 일어날때 많이 발생됨
예시) 메모리 처음 주소에 프로세스를 2KB만큼 할당하고 바로 이어서 6KB만큼의 메모리를 또 다른 프로세스에게 할당했다고 가정할 때,
2KB만큼의 메모리를 할당하고 있던 프로세스를 종료시키게 되면 메모리의 처음 주소부터 2KB만큼의 공간이 생기게 되고
이러한 빈 메모리 공간 생기게 된다면 여유는 있지만 메모리를 많이 잡아먹는 프로세스를 실행 시킬 수 없다.