운영체제[반효경]/Ch08. Memory Management

Memory Management (2) 연속할당

developer-soyun 2024. 11. 10. 11:26

 

물리적인 메모리를 관리하는 방법

Allocation of Physical Memory

 

메모리

  • 메모리는 일반적으로 두 영역으로 나누어서 사용
    • OS 상주 영역
      • interrupt vector와 함께 낮은 주소 영역 사용
    • 사용자 프로세스 영역
      • 높은 주소 영역 사용
  • 사용자 프로세스 영역의 할당 방법
    • Contiguous allocation
      • 각각의 프로세스가 메모리의 연속적인 공간에 적재되도록 하는 것
      • Fixed partition allocation
      • Variable partition allocation
    • Noncontiguous allocation
      • 하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있음
      • Paging
      • Segmentation
      • Paged Segmentation

Contiguous Allocation

 

  • 고정분할(Fixed partition) 방식
    • 물리적 메모리를 미리 몇 개의 영구적 분할(partition)으로 나눔
    • 분할의 크기가 모두 동일한 방식과, 서로 다른 방식이 존재
    • 분할당 하나의 프로그램 적재
    • 융통성이 없다
      • 동시에 메모리에 load되는 프로그램 수가 고정됨
      • 최대 수행 가능 프로그램 크기 제한
      • 내부 조각, 외부 조각 발생
        • 프로그램 A는 분할 1, 프로그램 B는 분할 3에 할당 → 분할 3은 프로그램을 넣고 남은 공간이 발생 (내부조각) → 분할 2은 크기가 고정되어있어 이 크기보다 더 큰 프로그램은 넣을 수 없다(외부조각)
    • 가변분할(Variable partition) 방식
      • 프로그램의 크기를 고려해서 할당
      • 분할의 크기, 개수가 동적으로 변함
      • 기술적 관리 기법 필요
      • 외부조각 발생
        • 프로그램 ABC가 순차적으로 올라감 → B 종류 이후 D가 실행될 경우, D의 크기가 커 B가 종료되고 남은 메모리 공간에 들어갈 수 없다 → 외부조각 발생 → 또한 D를 올리고 남은 공간 역시 외부조각 이다
  • Hole
  •  
    • 가용 메모리 공간
    • 다양한 크기의 hole들이 메모리 여러 곳에 흩어져 있음
    • 프로세스가 도착하면 수용가능한 hole을 할당
    • 운영체제는 다음의 정보를 유지
      • 할당공간, 가용공간(hole)

  • Dynamic Storage-Allocation Problem
    • 가변 분할 방식에서 size n인 요청을 만족하는 가장 적절한 hole을 찾는 문제
    • First-fit
      • Size가 n이상인 것 중 최초로 찾아지는 hole에 할당
    • Best-fit
      • Size가 n이상인 가장 작은 hole을 찾아서 할당
      • Hole들의 리스트가 크기순으로 정렬되지 않은 경우 모든 hole의 리스트를 탐색해야함
      • 많은 수의 아주 작은 hole들이 생성됨
    • Worst-fit
      • 가장 큰 hole에 할당
      • 역시 모든 리스트를 탐색해야한다
      • 상대적으로 아주 큰 hole들이 생성됨
    • First-fit과 Best-fit이 Worst-fit 보다 효율적이다

Compaction

  • 외부조각 문제를 해결하는 한가지 방법
  • 사용 중인 메모리 영역을 한군데로 몰고 hole들을 다른 한 곳으로 몰아 큰 block을 만드는 것
  • 매우 비용이 많이 드는 복잡한 방법이다
  • 프로세스의 주소가 실행 시간에 동적으로 재배치가 가능한 경우에만 Compaction 수행 가능