메모리 할당 방식과 문제점
메모리에 프로세스를 할당하는 방식에는
크게 최초 적합, 최적 적합,
최악 적합 방식이 있다.
이에 대해 각각 살펴보면 다음과 같다.
최초 적합
최초 적합(First fit) 방식은
운영체제가 메모리 내 빈 공간을 발견하는
족족 프로세스를 배치하는 방식이다.
최초로 발견한 공간에 배치한다는 의미로
최초 적합이라고 부르는 듯하다.
이 방식은 검색 과정을 최소화할 수 있으므로
빠른 할당이 가능하다.
최적 적합
최적 적합(Best fit) 방식은
운영체제가 메모리 내 빈 공간 전체를
검색한 후, 프로세스를 적재할 수 있는
가장 작은 공간에 배치하는 방식이다.
예를 들어 메모리 내 빈 공간이
[9, 12, 100]가 있다고 했을 때,
프로세스가 요구하는 공간이 10이면
[12]에 배치하는 방식이다.
최악 적합
최악 적합(Worst fit) 방식은
운영체제가 메모리 내 빈 공간 전체를
검색한 후, 프로세스를 적재할 수 있는
가장 큰 공간에 배치하는 방식이다.
예를 들어 메모리 내 빈 공간이
[9, 12, 100]가 있다고 했을 때,
프로세스가 요구하는 공간이 10이면
[100]에 배치하는 방식이다.
문제점: 외부 단편화
프로세스를 메모리에 연속적으로
배치하는 연속 메모리 할당은
메모리를 효율적으로 사용하는 방법이 아니다.
메모리에 배치된 프로세스와 프로세스 사이에
낭비되는 빈 공간들로 인해
메모리 낭비가 발생하는데,
이를 외부 단편화라고 한다.
(External fragmentation)
압축
위에서 살펴본 외부 단편화 문제를
해결하는 대표적인 방안에
압축(Compaction)이 있다.
압축은 여기저기 흩어져 있는 빈 공간을
하나로 줄이기 위해, 흩어진 프로세스를
재배치 시켜는 방법이다.
이러한 압축 방식은 외부 단편화 문제를
해결할 수 있다는 장점이 있지만,
1. 시스템은 하던 일을 중지해야 한다.
2. 메모리를 옮길 때 많은 오버헤드가 야기된다
3. 어떻게 압축해야 효과적인지에 대한 명확한 방법을 결정짓기 어렵다.
위와 같은 한계점도 존재한다.
때문에 등장한 외부 단편화 문제의
또다른 해결책이 있는데,
바로 페이징 기법이다.
'개인 학습 > 운영체제' 카테고리의 다른 글
20 - 페이지 테이블 엔트리 (0) | 2023.02.13 |
---|---|
19 - 페이징 기법 (0) | 2023.02.13 |
17 - 스와핑: 메모리 관리 기법 (0) | 2023.02.13 |
16 - 교착 상태 해결 방법 (0) | 2023.02.09 |
15 - 교착 상태 발생 조건 (0) | 2023.02.09 |