본문 바로가기

기본기

메모리 단편화란?

단편화는 메모리가 작은 조각으로 나뉘어 사용할 수 없어 비효율적으로 변한 상태를 말한다. 

 

메모리 단편화는 2가지의 종류가 있다 

 

외부 단편화: 할당 된 메모리 블록 사이에 사용되지 않는 메모리의 작은 간격이 있어 새 프로세스에 연속된 큰 메모리 블록을 할당하기 어려울 때 발생합니다. 외부 단편화는 압축 및 페이징과 같은 메모리  할당 기술을 사용하여 줄일 수 있습니다. 압축은 할당된 메모리 블록을 이동하여 인접한 메모리 위치를 차지하고 그 사이에 간격을 두지 않는 것 입니다. 할당된 메모리 블록을 모두 이동해야 하므로 비용이 많이 드는 작업일 수 있지만 외부 조각화를 줄일 수 있습니다. 앞서 언긋했듯이 페이징은 메모리를 고정된 크기의 페이지로 분할하여 외부 조각화를 줄이는 데 도움이 될 수 있습니다.

 

내부 단편화: 프로세스가 특정 양의 메모리를 요청하지만 할당자가 필요한 것보다 많은 메모리를 할당하여 일부 메모리가 낭비되는 경우를 말합니다. 내부 단편화는 필요할 때만 메모리를 할당하는 동적 메모리 할당과 같은 메모리 할당 기법을 사용하고 낭비되는 메모리를 최소화하는 메모리 할당 알고리즘을 사용하여 줄일 수 있습니다. 

 

전반적으로 단편화는 메모리 오버헤드를 증가시키고 메모리 엑세스 시간을 늦출 수 있으므로 시스템 성능에 영향을 미칠 수 있습니다. 따라서 메모리를 효율적으로 관리하여 조각화를 줄이고 시스템 성능을 극대화하는 것이 중요 합니다. 

'기본기' 카테고리의 다른 글

오버로딩과 오버라이딩의 차이점  (0) 2023.07.27