[CS] 연속 메모리 할당

정은아·2024년 2월 11일
post-thumbnail

메모리 관리 기법인 스와핑과 메로리에 프로세스를 할당하는 바익, 연속 메모리 할당의 부작용인 단편화에 대해 학습해보자

스와핑

  • 현재 실행되지 않는 프로세스를 임시로 보조기억장치 일부 영역으로 쫓아내고, 그 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식이다.
  • 스와핑을 이용하면 메모리보다 큰 프로세스들을 동시 실행할 수 있다.

스왑

  • 보조기억장치의 일부 영역 = 스왑 영역
  • 현재 실행되지 않는 프로세스가 메모리 -> 스왑영역으로 옮겨지는 것 = 스왑아웃
  • 반대로,스왑영역의 프로세스 -> 메모리로 옮겨지는 것 = 스왑 인

메모리 할당

  • 프로세스는 메모리 내의 빈공간에 적재되어야 한다.
  • 메모리 할당 방식에는 최초 적합, 최적 적합, 최악 적합이 있다.

최초 적합

  • 운영체제가 메모리 내의 빈공간을 순서대로 검색하다가 배치하는 방식이다.
  • 프로세스가 적재될 수 잇는 공간을 발견하는 즉시 메모리를 할당하는 방식이다.
  • 검색 최소화와 빠른 할당이 특징이다.

최적 적합

  • 운영체제가 빈공간을 모두 검색한 후에, 적재할 수 있는 공간 중 가장 작은 공간에 배치하는 방식이다.

최악 적합

  • 운영체제가 빈공간을 모두 검색한 후에, 적재할 수 있는 공간 중 가장 큰 공간에 배치하는 방식이다.

외부 단편화

  • 연속 메모리 할당은 외부 단편화라는 문제를 내포한다.
  • 프로세를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상을 의미한다.

압축

  • 외부 단편화를 해결할 수 잇는 대표적인 방안이다.
  • 다만 작은 빈 공간들을 하나로 모으는 동안 시스템이 중지되어야 하고, 메모리에 있는 내용을 옮기는 작업은 많은 오버헤드를 햐기한다.
profile
꾸준함의 가치를 믿는 개발자

0개의 댓글