Computing/Operating System

Memory Fragmentation. 메모리 단편화

i독 2021. 10. 13. 07:04

RAM에서 메모리의 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만, 할당(사용)이 불가능한 상태를 말한다. 이는 내부, 외부 2가지로 구분된다.

 

Internal fragmentation. 내부 단편화 → 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비되는 상황.

*A App이 실행될 때 OS는 4kb를 할당했지만, 정작 프로그램은 1kb만 사용하고 있음. 이때 3kb 만큼의 내부 단편화가 발생

 

External Fragmentation. 외부 단편화 → 메모리가 할당되고 해제되는 작업이 반복될 때 작은 메모리가 중간중간 존재하는데, 이 사용하지 않는 메모리들이 여럿 존재하여 총 메모리 공간은 충분하지만 실제로 할당할 수 없는 상황.

*예를 들어 처음 주소에 8mb짜리 프로세스가 할당되었고 이어서 16mb를 추가 할당하였다고 가정하였을 때, 8mb 프로세스를 종료시키면 처음 주소부터 8mb만큼 공간이 생긴다. 이런 식으로 반복하여 빈 공간이 계속 생기는데 이에 적합한 8mb 이하의 프로세스가 나오지 않는다면 해당 공간은 계속 비워지게 된다. 이게 차곡차곡 쌓이면 공간은 있는데, 마땅히 넣을 자리가 없어서 외부단편화가 생겼다고 한다.

 

해결 방법 > Paging, Segmentation, Memory pool

 

출처 : https://jeong-pro.tistory.com/91

 

메모리 단편화(Memory Fragmentation)가 무엇이고 왜 발생하는가?

메모리 단편화가 무엇이고 왜 발생하는가? 메모리 단편화  - RAM에서 메모리의 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만 할당(사용)이 불가능한 상태를 보고 메모

jeong-pro.tistory.com

 

'Computing > Operating System' 카테고리의 다른 글

[GNU] 정리.  (0) 2021.10.13
Memory Leak, Cache Hit&Miss  (0) 2021.10.13
Bottleneck. 병목  (0) 2021.10.13
False sharing. 거짓 공유  (0) 2021.10.13
Race condition. 경쟁 상태  (0) 2021.10.13