🌒 메모리의 할당
연속할당 방식: 프로세스를 메모리에 올릴 때 주소 공간을 분할하지 않고 물리적 메모리의 한 곳에 연속적으로 적재하는 방식
- 고정 분할 방식: 물리적 메모리를 주어진 개수만큼의 영구적 분할로 미리 나눠두고 각 분할에 하나의 프로세스를 적재해 실행시킬 수 있도록
- 분할의 크기는 모두 동일해도 되고 서로 달라도 됨
- 동시에 메모리에 올릴 수 있는 프로그램의 수는 고정
- 수행 가능한 프로그램의 최대 크기 제한
- 융퉁성이 떨어짐
- 외부 단편화/내부 단편화 발생 가능성
- 외부 단편화: 프로그램의 크기보다 분할의 크기가 작은 경우, 해당 분할이 비어있어도 프로그램 적재 불가
- 내부 단편화: 프로그램의 크기보다 분할의 크기가 큰 경우, 해당 분할에 프로그램을 적재하고 남는 현상
- 하나의 분할 내부에 사용되지 않는 메모리 생김 > 메모리 낭비
- 가변 분할 방식: 메모리에 적재되는 프로그램의 크기에 따라 분할의 크기/개수가 동적으로 변함
- 분할의 크기를 프로그램의 크기에 맞게 할당 > 내부 단편화 방지
- 동적 메모리 할당 문제:
- 적재된 프로세스가 종료되면 메모리 내의 여러 곳에 산발적으로 메모리 가용공간(빈공간) 발생
- 새로운 프로그램을 적재할 때 가용공간 중 어떤 위치에 올릴 것인가?
- 해결방법: 최초 적합, 최적 적합, 최악 적합
🌒 메모리 연속할당 방식
First-Fit, 최초 적합
메모리에 존재하는 가용 공간을 차례대로 살펴 가용 공간이 프로그램 크기 이상인 최초의 공간에 프로그램 적재
Best-Fit, 최적 적합
모든 가용공간 리스트를 탐색해서 프로그램을 넣을 수 있는 공간 중 가장 작은 공간에 프로그램 적재
- 시간적 오버헤드 발생
- 가장 딱 맞는 공간 찾으려고 해서 매우 작은 가용공간 발생 가능
- 공간적 측면에서 효율적
Worst-Fit, 최악 적합
가용 공간 중에서 가장 크기가 큰 곳에 새로운 프로그램 할당
- 모든 가용 공간 리스트를 탐색해야 해서 오버헤드 발생
🌒 Worst-Fit의 용도
Best-fit/First-fit보다 더 큰 공간을 남겨두기 때문에 나중에 프로그램이 들어올 때 유용함
프로그램이 주로 비슷한 크기일 때 효과적임
🌒 성능이 가장 좋은 알고리즘
속도: first-fit이 가장 빠름
이용률: best-fit
- 속도는 조금 떨어지지만 정확하게 맞는 위치에 들어가는 방식을 취하기 때문에 애매한 빈공간 창출할 일이 많이 없음
- 하지만 대부분의 경우 best-fit과 first-fit의 이용률 차이는 크지 않음
참고: