[메모리관리] 연속할당 방식 - 고정 분할 방식과 가변 분할 방식

연속 할당 방식

프로그램을 메모리에 올릴 때, 물리적 메모리의 한 곳에 연속적으로 적재하는 방식으로

고정 분할 방식가변 분할 방식이 존재합니다.

 

고정 분할 방식

주어진 개수 만큼의 영구적인 분할로 미리 나누어 두고 각 분할에 하나의 프로그램을 적재하는 방식입니다.

 

이 분할의 크기를 모두 동일하게 할 수도 있고 서로 다르게 할 수도 있습니다.

하나의 분할에는 하나의 프로그램만 적재 가능하므로 외부 조각내부 조각이 발생합니다.

  • 외부 조각
    • 프로그램의 크기 > 분할의 크기인 경우 발생합니다.
    • 프로그램을 적재하지 못하는 빈 메모리 공간으로 사용될 수 없는 작은 분할을 의미합니다.
  • 내부 조각
    • 프로그램의 크기 < 분할의 크기인 경우 발생합니다.
    • 프로그램이 분할에 적재되고 나서 분할 내부에 사용될 수 없는 메모리 조각을 의미합니다.

 

 

가변 분할 방식

메모리에 적재되는 프로세스 크기에 따라 분할의 크기, 개수가 동적으로 변하는 방식입니다.

 

가변 분할 방식에서 프로세스의 크기보다 분할의 크기보다 크게 할당하기 때문에 내부 조각은 발생하지 않습니다.

하지만 이미 메모리에 존재하는 프로그램이 종료되고

메모리 크기보다 더 작은 크기의 새로운 프로세스가 할당될 때 외부 조각이 발생할 수 있습니다.

또한, 프로세스를 어떤 위치에 올릴지 결정하기 위한 동적 메모리 할당 문제가 있습니다.

 

동적 메모리 할당 문제

프로세스를 메모리에 올릴 때 물리적 메모리의 가용 공간(분할)이 산발적으로 존재하게 됩니다.

주소 공간의 크기가 n인 프로세스를 하나의 가용공간에 적재하기 위한 세 가지 해결 방법이 존재합니다.

  • 최초 적합 방법(first-fit)
    • 가용 공간을 차례대로 살펴보면서 프로그램 크기 < 가용 공간 크기가 최초로 발견될 때, 해당 프로세스 할당합니다.
    • 모든 가용 공간을 탐색하지 않아 시간적인 측면에서 효율적입니다.

 

  • 최적 적합 방법(best-fit)
    • 프로세스 크기 < 가용 공간 크기가장 작은 공간을 찾고 프로세스를 할당합니다.
    • 모든 가용 공간 리스트가 크기 순으로 정렬되어 있지 않으면, 모든 가용 리스트를 탐색해야하는 오버헤드가 발생합니다.

 

  • 최악 적합 방법(worst-fit)
    • 프로세스 크기 < 가용 공간 크기가장 큰 공간을 찾고 프로세스를 할당합니다.
    • 모든 가용 공간 리스트가 크기 순으로 정렬되어 있지 않으면, 모든 가용 리스트를 탐색해야하는 오버헤드가 발생합니다.

 

외부 조각 문제 해결 방법

가변 분할 방식에서 외부 조각 문제를 해결하기 위한 방법으로 컴팩션(compaction) 방법이 존재합니다.

  • 사용하지 않은 메모리 영역을 한쪽으로 모은다. (비용이 많이 드는 작업)
  • 수행중인 프로세스의 물리적 메모리 위치를 옮겨야 하므로 실행 시간 바인딩 방식에서만 수행가능합니다.

 

 

참고 자료

  • 운영 체제와 정보기술의 원리(반효경 저)

'CS > 운영체제' 카테고리의 다른 글

[메모리 관리] 주소 바인딩  (0) 2021.04.11
프로세스와 쓰레드  (2) 2020.10.09
운영체제 개요  (0) 2020.10.09

댓글