📖메모리 단편화(Memory Fragmentation)

기억 장치의 빈 공간 또는 자료가 여러 조각으로 나뉘는 현상

컴퓨터에서 어떤 프로그램을 실행할 때, 메모리의 공간을 연속적인 형태로 할당하여 사용함. 프로그램이 빈번하게 메모리에 할당되고 해제되며 메모리 공간이 작은 조각 공간으로 나뉘게 될 경우, 실제로는 사용 가능한 메모리가 충분하지만, 할당이 불가능한 상태가 발생하는데, 이를 메모리 단편화라고 함

📎내부 단편화

프로세스에 할당된 메모리 공간이 실제로 프로세스가 필요한 공간보다 많이 할당되었을 때, 프로세스에서 사용하는 메모리 공간이 낭비되는 상황

100MB의 메모리에 80MB 크기의 프로세스를 올리는 상황

  1. Process C를 메모리의 빈공간(100MB)에 적재
  2. Prcoess C를 메모리(100MB)에 적재 후 20MB의 공간이 남음
  3. 20MB의 공간은 너무 작기 때문에 다른 프로세스가 사용하지 못하게 되어 내부적으로 메모리가 낭비

→ 20MB의 내부 단편화 현상이 발생

📎외부 단편화

외부 단편화는 남아있는 총 메모리 공간이 요청한 메모리 공간보다 크지만, 남아있는 공간이 연속적이지 않아 메모리 공간이 낭비되는 상황

50MB 씩 떨어져 있는 100MB의 메모리에 80MB의 프로세스를 올리는 상황

  1. 남아있는 메모리 공간은 50MB + 50MB = 100MB로 Prcoess C의 크기(요청한 메모리 공간) 80MB보다 큼
  2. 남아있는 공간이 연속적이지 않아 Prcoess C 할당 불가능

→ 100MB의 외부 단편화 현상이 발생