CS 상식 - 운영체제

[CS 상식 - 운영체제] 연속 메모리 할당

beginner-in-coding 2025. 2. 20. 18:57
  • 연속 메모리 할당: 프로세스에 연속적인 메모리 공간을 할당하는 방식

01. 스와핑

  • 용어
    • 스와핑 (swapping): 오랫동안 사용하지 않은 프로세스들을 임시로 보조기억장치 일부 영역으로 쫓아내고, 생긴 메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식
    • 스왑 영역 (swap space): 프로세스들이 쫓겨나는 보조기억장치의 일부 영역
    • 스왑 아웃 (swap-out): 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
    • 스왑 인 (swap-in): 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것
  • 스와핑을 이용하면 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시 실행할 수 있음

02. 메모리 할당

  • 대표적: 최초 적합, 최적 적합, 최악 적합
  • 최초 적합 (first fit): 운영 체제가 메모리 내의 빈 공간을 순서대로 검색하다가 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식
    • 장점: 검색이 최소화, 결과적으로 빠른 할당이 가능
  • 최적 적합 (best fit): 운영체제가 빈 공간을 모두 검색해본 후, 프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 프로세스를 배치하는 방식
  • 최악 적합 (worst fit): 운영체제가 빈 공간을 모두 검색해본 후, 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스를 배치하는 방식

03. 외부 단편화

  • 외부 단편화 (external fragmentation): 프로세스를 할당하기 어려울 만큼 적은 메모리 공간들로 인해 메모리가 낭비되는 현상을 의미함
  • 외부 단편화는 메모리 용량도 크고 적재되는 프로세스도 많기 때문에 낭비되는 공간이 큼 → 해결해야 함
  • 해결 방안 1: 압축 (compaction)
    • 흩어져 있는 빈 공간들을 하나로 모으는 방식
    • 단점
      • 작은 빈 공간들을 하나로 모으는 동안 시스템은 하던 일을 중지해야 함
      • 메모리에 있는 내용을 옮기는 작업은 많은 오버헤드를 야기
      • 어떤 프로세스를 타깃으로 움직여야 오버헤드를 최소화하며 압축할 수 있는지에 대한 명확한 방법을 결정하기 어려움
  • 해결 방안 2: 페이징 기법