공부/OS

단편화(Fragmentation)란?

셩잇님 2023. 3. 4. 22:55
반응형

 

 

1. 단편화란?

단편화는 메모리가 사용할 수 없는 작은 조각으로 나뉘어져 메모리를 비효율적으로 사용할 때 발생하는 메모리 관리의 일반적인 문제입니다. 조각화는 운영 체제에서 사용하는 물리적 메모리(RAM)와 가상 메모리 모두에서 발생할 수 있습니다.

 

2. 단편화의 종류
단편화에는 외부 단편화와 내부 단편화의 두 가지 유형이 있습니다. 

 

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

 

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

 

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

 

 

 

반응형

'공부 > OS' 카테고리의 다른 글

프로세스(Process)와 쓰레드(Thread)의 차이점  (0) 2023.04.09
프로세스(Process)란?  (0) 2023.04.09
세그멘테이션(Segmentation)이란?  (0) 2023.03.04
페이징(Paging)이란?  (0) 2023.03.04
데드락(Deadlock)이란?  (0) 2023.03.02