연속 메모리 할당 기법에 대해서 설명해주세요.

백엔드와 관련된 질문이에요.

연속 메모리 할당 기법(Continuous Memory Allocation) 은 운영체제가 프로세스에 연속적인 메모리 공간을 할당하는 방법을 의미합니다. 연속 메모리 할당 기법을 사용하면, 하나의 프로세스는 메모리 주소 공간에서 연속적으로 존재하게 됩니다.

연속 메모리 할당 기법은 크게 가변 크기 메모리 할당과 고정 크기 메모리 할당이 존재하는데요. 고정 크기 메모리 할당은 물리적인 메모리 공간을 고정된 크기로 나누어 프로세스에 고정된 크기만큼 할당합니다. 반면, 가변 크기 메모리 할당 방식은 프로세스의 크기에 맞춰 동적으로 메모리를 할당합니다.

외부 단편화와 내부 단편화가 무엇인가요? 🤔

외부 단편화(External Fragmentation) 는 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해서 메모리가 낭비되는 현상입니다. 연속 메모리 할당 기법을 사용할 때 프로세스가 사용할 메모리 공간이 300MB라고 가정하겠습니다. 이때, 흩어져 있는 빈 공간들의 합은 300MB가 넘지만, 연속적인 300MB는 존재하지 않아 프로세스에 메모리를 할당하지 못하는 상황이 발생할 수 있습니다.

내부 단편화(Internal Fragmentation) 는 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되는 상황에서 메모리 공간이 낭비되는 상황을 의미합니다. 고정 크기 할당 방식에서 프로세스가 사용할 메모리 공간이 300MB이지만 실제로 할당된 공간은 500MB인 경우, 200MB가 낭비됩니다.

고정 크기 할당 방식은 고정된 크기만큼 프로세스에 공간을 할당하기 때문에 내부 단편화가 발생할 수 있습니다. 반면, 가변 크기 할당 방식은 필요한 크기만큼 프로세스에 할당하기 때문에 내부 단편화는 발생하지 않습니다. 단, 할당과 해제를 반복하다보면 외부 단편화가 발생할 수 있습니다.

메모리에 빈 공간이 여러 개라면, 어디에 신규 프로세스를 배치해야 하나요? 🤓

연속 메모리 할당 기법에서 사용할 수 있는 대표적인 방법으로 최초 적합, 최적 적합, 최악 적합 방식이 존재합니다.

  • 최초 적합(First Fit) 은 운영체제가 메모리 내의 빈 공간을 순서대로 검색하고, 최초로 발견된 공간에 프로세스를 배치합니다.
  • 최적 적합(Best Fit) 은 운영체제가 메모리 내의 빈 공간을 모두 검색하고, 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식입니다.
  • 최악 적합(Worst Fit) 은 운영체제가 메모리 내의 빈 공간을 모두 검색하고, 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식입니다.

추가 학습 자료를 공유합니다.