[CS] 메모리 단편화

wrld_worthy·2023년 11월 10일
0

CS

목록 보기
3/12

단편화

메모리 단편화, Memort Fragmentation은 컴퓨터 시스템에서 메모리 할당 및 해제 과정 중에 발생하는 문제로, 메모리 공간의 이용 효율을 저하시키는 현상을 말한다.
메모리 단편화에는 내부 단편화(Internal Fragmentation)외부 단편화(External Fragmemtation)이 두 가지가 있다.

내부 단편화

내부 단편화는 할당된 메모리 블록 내에 사용되지 않는 공간이 존재한느 상황을 말하낟. 이는 메모리가 할당되었지만 실제론느 전부 사용되지 않는 경우에 발생한다.

원인

메모리를 할당할 때, 할당 과정에서 메모리 블록의 크기가 프로세스의 필요보다 약간 더 클 때 발생한다. 예를들어, 시스템이 항상 고정된 크기의 블록을 할당하는 경우, 요청된 양보다 더 큰 블록이 할당될 수 있고, 남는 부분은 사용되지 않게 된다.

해결

메모리 블록의 크기를 프로세스의 요구 사항에 더 가깝게 조정하여 최소화 한다.

외부 단편화

외부 단편화는 할당되지 않은 메모리 공간이 작은 조각들로 분산되어 있어, 충분한 총 공간이 있음에도 불구하고 큰 메모리 요청을 수용할 수 없는 상황을 말한다.

원인

프로세스들이 메모리를 할당하고 해제하는 과정에서 메모리 공간이 비효율적으로 분할된다. 할당과 해제가 반복되면서, 크기가 다른 여러 조각들이 생성되고, 이러한 조각들 사이에 사용할 수 있는 공간이 남지만, 연속적인 공간이 아니라서 할당할 수 없게 된다.

해결

컴팩션(메모리의 내용을 재배치하여 연속적인 공간을 만드는 것, 조각모음?) 메모리 요청의 크기를 정렬하거나, 가변 크기의 할당 알고리즘 사용, 가상메모리 생성 등으로 해결할 수 있다.

메모리 단편화의 영향

  • 성능저하: 단편화로 인해 메모리 할당 요청이 실패하거나 시스템이 더 큰 메모리 블록을 찾기 위해 추가적인 작업을 수행해야 하므로 성능이 저하될 수 있다.
  • 메모리 낭비: 단편화로 인해 실제로 사용되지 않는 메모리 공간이 증가하고, 이는 방비도니 리소스로 이어진다.
  • 시스템 안정성: 심각한 단편화는 시스템의 안정성에 영향을 미칠 수 있으며, 메모리가 충분함에도 불구하고 큰 메모리 할당 요청이 실패할 수 있다.

0개의 댓글