[운영체제] 메모리의 할당

지니🧸·2023년 4월 7일
0

CS 저장소

목록 보기
15/48

🌒 메모리의 할당

연속할당 방식: 프로세스를 메모리에 올릴 때 주소 공간을 분할하지 않고 물리적 메모리의 한 곳에 연속적으로 적재하는 방식

  1. 고정 분할 방식: 물리적 메모리를 주어진 개수만큼의 영구적 분할로 미리 나눠두고 각 분할에 하나의 프로세스를 적재해 실행시킬 수 있도록
  • 분할의 크기는 모두 동일해도 되고 서로 달라도 됨
  • 동시에 메모리에 올릴 수 있는 프로그램의 수는 고정
  • 수행 가능한 프로그램의 최대 크기 제한
  • 융퉁성이 떨어짐
  • 외부 단편화/내부 단편화 발생 가능성
    • 외부 단편화: 프로그램의 크기보다 분할의 크기가 작은 경우, 해당 분할이 비어있어도 프로그램 적재 불가
    • 내부 단편화: 프로그램의 크기보다 분할의 크기가 큰 경우, 해당 분할에 프로그램을 적재하고 남는 현상
      • 하나의 분할 내부에 사용되지 않는 메모리 생김 > 메모리 낭비
  1. 가변 분할 방식: 메모리에 적재되는 프로그램의 크기에 따라 분할의 크기/개수가 동적으로 변함
  • 분할의 크기를 프로그램의 크기에 맞게 할당 > 내부 단편화 방지
  • 동적 메모리 할당 문제:
    • 적재된 프로세스가 종료되면 메모리 내의 여러 곳에 산발적으로 메모리 가용공간(빈공간) 발생
    • 새로운 프로그램을 적재할 때 가용공간 중 어떤 위치에 올릴 것인가?
    • 해결방법: 최초 적합, 최적 적합, 최악 적합

🌒 메모리 연속할당 방식

First-Fit, 최초 적합

메모리에 존재하는 가용 공간을 차례대로 살펴 가용 공간이 프로그램 크기 이상인 최초의 공간에 프로그램 적재

  • 시간 측면에서 효율적

Best-Fit, 최적 적합

모든 가용공간 리스트를 탐색해서 프로그램을 넣을 수 있는 공간 중 가장 작은 공간에 프로그램 적재

  • 시간적 오버헤드 발생
  • 가장 딱 맞는 공간 찾으려고 해서 매우 작은 가용공간 발생 가능
  • 공간적 측면에서 효율적

Worst-Fit, 최악 적합

가용 공간 중에서 가장 크기가 큰 곳에 새로운 프로그램 할당

  • 모든 가용 공간 리스트를 탐색해야 해서 오버헤드 발생

🌒 Worst-Fit의 용도

Best-fit/First-fit보다 더 큰 공간을 남겨두기 때문에 나중에 프로그램이 들어올 때 유용함

프로그램이 주로 비슷한 크기일 때 효과적임

🌒 성능이 가장 좋은 알고리즘

속도: first-fit이 가장 빠름

  • 가용공간 리스트를 모두 탐색할 필요가 없음

이용률: best-fit

  • 속도는 조금 떨어지지만 정확하게 맞는 위치에 들어가는 방식을 취하기 때문에 애매한 빈공간 창출할 일이 많이 없음
  • 하지만 대부분의 경우 best-fit과 first-fit의 이용률 차이는 크지 않음

참고:

profile
우당탕탕

0개의 댓글