Computer_science/Memory

[메모리] 메모리 관리 전략

neck392 2024. 12. 8. 02:50

모든 프로그램은 메모리에 적재하는 과정이 선행된다. 따라서 메모리는 프로그램을 실행하는 중요한 작업 공간이다.

운영체제가 메모리에 여러 개의 프로세스을 동시에 적재하여, CPU와 시스템 자원을 효율적으로 사용하는 환경(다중 프로그래밍 환경)에서 한정된 메모리를 여러 프로세스가 함께 사용하므로 효율적으로 관리하는 방법이 필요하다.

 

메모리 관리란 프로세스들을 메모리에 할당하고 제거하며 보호하는 활동이다.

  • 프로세스 요청에 따라 메모리의 일부를 할당하고, 작업이 끝나면 다시 재사용할 수 있도록 헤제하는 과정
  • 디스크에 있는 프로그램을 실행하기 위하여 메모리에 적재한 후 메모리 관리자가 예약된 메모리를 할당하는 과정
  • 다중 프로그래밍 시스템에서 여러 프로세스가 메모리에 상주할 수 있도록 운영체제가 동적으로 메모리를 세분화하는 과정

위 과정들은 모두 메모리 관리에 포함된다.

메모리 관리는 메모리 관리자가 담당하는데 메모리 관리자는 운영체제의 관리 모듈과 메모리관리장치(Memory Management Unit, MMU)가 협업하여 관리한다. 메모리 관리자는 메모리를 관리하는 전략(정책)은 다음과 같다.

전략은 정책이라고 부르기도 하며 각 전략은 다시 여러 방법으로 표현된다. 표현 단어는 다르나 같은 의미를 가진다.

 

Fetch Strategy(=페치 전략, 반입 전략, 적재 전략)

  • 디스크에 있는 프로세스를 언제 메인 메모리로 로드할지 결정하는 방법
    1. 요구 반입(Demand Fetch)(=요구 페치 전략)
      • 프로그램이 필요로 하는 순간에만 해당 프로세스를 메모리로 로드
      • 메모리를 효율적으로 사용할 수 있으나, 페이지 부재(page fault)가 자주 발생 가능
    2. 예상 반입(Anticipatory Fetch)(=예측 페치 전략)
      • 프로그램이 앞으로 필요할 것으로 예상되는 데이터를 미리 메모리에 로드
      • 시스템 자원의 낭비를 초래할 위험이 있으나, 성능 최적화에 유리

Placement Strategy(=배치 전략)

 

  • 디스크에서 메모리로 로드한 프로세스를 메인 메모리의 빈 공간 중 어디에 저장할지 결정하는 방법
    1. 최초 적합(First-Fit)
      • 메모리의 빈 공간 중 가장 먼저 발견된 충분히 큰 공간에 프로세스를 저장
      • 간단하고 빠르지만, 메모리 단편화가 발생 가능
    2. 최적 적합(Best-Fit)
      • 프로세스를 저장하기 유효하며 가장 작은 빈 공간에 프로세스를 저장
      • 메모리 공간 낭비를 최소화하지만, 탐색(검색) 시간이 오래 걸릴 수 있음
    3. 최악 적합(Worst-Fit)
      • 가장 큰 빈 공간에 프로세스를 저장
      • 큰 공간을 나누어 작은 작업에 활용할 여지를 최대화

 

Replacement Strategy(=대치 전략, 교체 전략)

 

  • 메인 메모리가 부족해 새로 로드할 프로세스를 저장할 공간이 없을 때, 기존에 메모리를 차지하고 있는 어떤 부분을 제거할지 결정하는 방법
    1. FIFO(First-In-First-Out)
      • 가장 오래된 메모리 페이지를 제거
      • 구현이 간단하지만, 항상 최선의 선택은 아님
    2. LRU(Least Recently Used)
      • 가장 오랫동안 사용되지 않은 페이지를 제거
      • 과거의 사용 기록을 바탕으로 미래의 사용 가능성을 예측
    3. LFU(Least Frequently Used)
      • 가장 적게 참조된 페이지를 제거
      • 자주 사용되지 않는 데이터를 제거하지만, 최근 사용 여부는 고려하지 않음
    4. Clock(Second-Chance)
      • FIFO 방식을 개선하여, 사용 여부를 확인한 후 제거할 대상을 선정
      • 페이지를 제거하기 전, 참조 비트(Reference Bit)가 설정되어 있는 경우 해당 페이지에 다시 기회를 부여

 

 

반입 전략은 데이터 로드 시점을, 배치 전략은 데이터 저장 위치를, 교체 전은 불필요한 데이터를 제거하는 방식을 결정한다.

Page fault는 프로그램이 실행 중에 필요한 메모리 페이지가 현재 메인 메모리에 없는 상태를 뜻하며 이 상황에서는 운영체제가 해당 페이지를 다시 저장소에서 메인 메모리에 로드해야 한다.(추가적인 시간 소요)


Reference

  • Harvey M. Deitel, Paul J. Deitel, and David R. Choffnes, Operating Systems, 3rd ed., Pearson, 2003.
  • Hyun-Hoe Koo, Operating System: Principles and Structure Illustrated, 1st ed., Hanbit Academy, 2016. (7th printing, 2022).