사용자 프로세스 영역의 메모리 할당 방식 - 연속적 메모리 할당

예비 개발자·2021년 5월 24일
0
post-thumbnail
post-custom-banner
  1. 가변 분할 방식
    메모리 할당 공간이 변하는 것. 메모리 통합 등의 부가적인 작업이 필요해 메모리 관리가 복잡함.

    (1) 메모리 배치 방식

    • 최초 배치 (first fit) : 단편화를 고려하지 않고, 메모리에서 첫번째로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방법.
    • 최적 배치 (best fit) : 메모리의 빈 공간을 모두 확인한 후 적당한 크기 가운데 가장 작은 공간에 프로세스를 배치하는 방법.
    • 최악 배치 (worst fit) : 메모리의 빈 공간을 모두 확인한 후 가장 큰 공간에 프로세스를 배치하는 방법.
      실험 결과 first fit과 best fit이 속도와 공간 이용률 측면에서 worst fit보다 효과적인 것으로 알려짐.

    (2) 조각 모음

    • 단편화 (조각화, fragmentation) : 적재 가능한 빈 공간이 있어도 공간이 작은 조각으로 나누어져 있어서 사용이 불가능한 상태.
    • 외부 단편화 (external fragmentation) : 메모리가 할당되고 해제되는 작업이 반복되면서, 중간중간에 작은 조각으로 나누어져 있어 빈 공간이 낭비되는 상태.
    • 조각 모음 (compaction) : 단편화가 발생하면서 이미 배치된 프로세스를 옆으로 옮겨 떨어져있는 빈공간들을 하나의 큰 공간으로 만드는 것.
      • 이동할 프로세스의 동작을 멈추고, 프로세스를 적당한 위치로 옮기고 (프로세스의 상대 주소를 바꾸고), 프로세스를 다시 시작함.
      • 비용과 시간이 매우 많이 듦.
      • Run time binding에서만 사용 가능.
      • 부가적인 작업이 필요해 메모리 관리가 복잡.

  2. 고정 분할 방식
    메모리 할당 공간이 고정돼있는 것. 조각모음을 할 필요가 없어 메모리 관리가 용이하나 메모리 낭비가 있음.

    • 단편화 (조각화, fragmentation) : 적재 가능한 빈 공간이 있어도 공간이 작은 조각으로 나누어져 있어서 사용이 불가능한 상태.
      - 내부 단편화 (internal fragmentation) : 프로세스 크기보다 더 큰 메모리에 할당돼 프로세스에 할당된 메모리의 빈 공간이 낭비되는 상태.
      - 외부 단편화 (external fragmentation) : 메모리가 할당되고 해제되는 작업이 반복되면서, 중간중간에 작은 조각으로 나누어져 있어 빈 공간이 낭비되는 상태.
      - 가변 분할 방식처럼 조각 모음으로 조정을 못하는 대신에, 고정 분할 방식에서는 단편화를 최소화하기 위해 신중하게 메모리 크기를 결정해야 함.

  3. 버디 시스템 (buddy system)
    메모리를 분할할때는 1/2로 나누고, 프로세스가 종료될 때마다 주변을 살펴서 빈구역을 하나로 합침.

    • 버디 : 메모리가 나눠질때 각각의 공간.
    • 메모리가 프로세스 크기대로 나뉘며, 하나의 구역에 다른 프로세스가 들어갈 수없어서 내부 단편화가 발생할 수 있음.
    • 비슷한 크기의 조각이 모여 있어서, 조각 모음을 하지 않아도 간단하게 조각들을 큰 공간으로 만들 수 있음.
    • 버디 시스템처럼 1/2씩 공간을 나누는 방식은 모든 공간을 똑같은 크기로 나누는 불연속적 고정 분할 방식보다 복잡하기 때문에 잘 사용하지 않음.
profile
기록 == 데이터
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 6월 5일

고정 분할 방식에서는 first fit, next fit만 있는 건가요?

답글 달기