메모리 할당 정책 (Memory Allocation Policies)
메모리 할당 정책은 사용 가능한 메모리 블록들 중 요청된 크기에 가장 적합한 블록을 선택하는 전략을 의미하는데요. 이때 운영체제가 메모리를 프로세스에게 할당할 때 사용하는 대표적인 방법으로는 First Fit, Next Fit, Best Fit 등이 있습니다.
1. First Fit (최초 적합)
- 개념
- 메모리를 앞에서부터 탐색하여 요청한 크기 이상의 첫 번째 빈 공간을 찾아 할당하는 방법
- 특징
- 탐색 시간이 짧아 빠른 할당이 가능하다
- 앞쪽 메모리 공간이 빠르게 소진될 수 있으며, 단편화가 자주 발생할 수 있다
- 장점: 구현이 단순하고 속도가 빠르다
- 단점: 메모리 앞부분에 단편화가 집중될 수 있다
2. Next Fit (다음 적합)
- 개념
- 이전 할당이 이루어진 위치에서부터 다음으로 넘어가면서 요청 크기 이상의 첫 번째 빈 공간을 찾아 할당하는 방법
- 특징
- First Fit보다 탐색을 고르게 하여 앞부분에만 단편화가 집중되는 현상을 완화할 수 있다
- 전체 메모리를 골고루 사용 가능하지만, 오히려 전체적인 공간 효율성은 떨어질 수 있다
- 장점: 메모리 전체를 보다 균일하게 활용 가능
- 단점: 메모리 할당 속도가 First Fit보다 약간 느릴 수 있고, 탐색이 순환하면서 전체 메모리 관리가 복잡해질 수 있다
3. Best Fit (최적 적합)
- 개념
- 요청된 크기를 만족하는 빈 공간 중 가장 크기가 작은 빈 공간을 찾아 할당하는 방법
- 특징
- 사용 가능한 공간 중 낭비를 최소화하는 가장 작은 공간을 선택하여 할당한다
- 메모리 공간의 효율적인 사용을 목적으로 한다
- 장점: 메모리 공간 낭비가 가장 적고 효율적이다
- 단점: 빈 공간 탐색 시간이 길어 성능 저하 가능성이 존재하며, 남은 작은 공간으로 인해 작은 단편화가 다수 발생할 수 있다
마치면서
메모리 관리 전략은 어느 방식이 무조건 더 좋고 나쁘다기보다는, 운영체제와 애플리케이션의 특성에 따라 선택적으로 사용하게 되는데요. 빠른 속도를 중시하면 First Fit, 균일한 메모리 사용을 원하면 Next Fit, 공간 효율을 중시하면 Best Fit이 적합하다고 할 수 있습니다.
'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글
[CS기초] Demand-Zero Memory (0) | 2025.04.28 |
---|---|
[CS기초] Implicit Free List vs Explicit Free List (0) | 2025.04.28 |
[CS기초] 메모리 단편화(Memory Fragmentation) (0) | 2025.04.28 |
[CS기초] 동적 메모리 할당 (힙, sbrk, malloc ,free) (0) | 2025.04.27 |
[CS기초] 가상 메모리(Virtual Memory)와 페이징(Paging) (0) | 2025.04.26 |