[운영체제] 메모리 할당

·2024년 8월 19일
0

운영체제

목록 보기
7/10

메모리 할당은 연속 할당, 불연속 할당으로 나뉨.

contiguous allocation - 연속 할당

  • 프로세스가 메모리 내에 연속적인 공간을 할당받아 배치됨
  • fixed partition allocation, variable partition allocation으로 나뉜다.

fixed partition allocation - 고정 분할

  • 메모리를 미리 파티션으로 분할해 놓고, 한 파티션에 한 프로세스를 할당하는 방식
    • 파티션을 모두 동일하게 분할, 동일하지 않게 분할 2가지 방식으로 나뉜다.
  • 간단하고 구현에 오버헤드가 적다.
  • 단점
    • 실행할 수 있는 프로세스의 개수가 정해져 있다.

발생하는 문제 - 내부 단편화

  • 파티션의 크기가 프로세스 크기보다 커 메모리 낭비가 발생하는 현상

발생하는 문제 - 외부 단편화

  • 프로세스는 항상 적재되고, 실행을 끝내면 메모리에서 해제된다 → 많은 빈 공간이 작은 조각으로 쪼개지게 된다.
  • 프로세스가 적재되기에 빈 공간의 총합은 충분하지만, 이 공간들이 연속적으로 존재하지 않는 현상을 외부 단편화라고 한다.
  • 최악의 경우에는 매 두 프로세스 사이에 빈 공간이 존재할 수도 있다.
  • 엄청난 메모리 낭비!

variable partition allocation - 가변 분할

  • 필요한만큼 partition을 variable하게 분할
  • first-fit 최초 적합
  • best-fit 최적 적합
  • worst-fit 최악 적합

first-fit

  • 운영체제가 메모리 내의 빈 공간을 순서대로 탐색하다가, 적재할 수 있는 공간을 발견하면 프로세스 배치
  • 최초로 발견한 적재 가능한 빈 공간에 프로세스 배치

best-fit

  • 운영체제가 빈 공간을 검색해 본 후, 프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 프로세스 배치

worst-fit

  • 운영체제가 빈 공간을 검색해 본 후, 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스 배치

현재 메모리가 위와 같은 상태임을 가정하고, 20MB의 프로세스를 적재해 보자.

  • first-fit: 처음 발견한 프로세스가 적재 가능한 공간 freeA에 적재
  • best-fit: 프로세스가 적재될 수 있는 공간 중 가장 작은 공간 freeC에 적재
  • worst-fit: 프로세스가 적재될 수 있는 공간 중 가장 큰 공간 freeB에 적재

발생하는 문제 - 외부 단편화

마찬가지로 외부 단편화가 발생할 수 있다.



외부 단편화 해결하기

  1. Compaction - 압축
    • 쪼개져 있는 빈 공간들을 하나로 모으는 방식을 압축이라고 한다.
    • 단점
      • 매모리에 있는 내용을 옮겨야 하고, 어떤 프로세스를 어떻게 움직여야 오버헤드를 최소화할 수 있는지 결정하기 어렵다.
      • 구현이 복잡
  2. 페이징
    • 오늘 날까지도 사용되는 기법
      → 불연속 할당, 다음 포스팅에서!


Reference

혼자 공부하는 운영체제

0개의 댓글

관련 채용 정보