가상 메모리 페이지 교체

IT 위키

가상 메모리 페이지 교체는 운영체제의 가상 메모리 관리 기법 중 하나로, 물리 메모리(프레임)가 가득 찼을 때 새로운 페이지를 적재하기 위해 기존 페이지 중 일부를 제거하는 과정이다. 페이지 교체는 페이지 부재(page fault) 발생 시 메모리 효율을 유지하기 위해 필수적으로 수행된다.

1 개념[편집 | 원본 편집]

  • 가상 메모리 시스템에서는 실제 메모리보다 큰 주소 공간을 사용할 수 있다.
  • 프로세스가 참조한 페이지가 물리 메모리에 없으면 페이지 부재 발생
  • 이때 새로운 페이지를 적재할 공간이 없다면, 기존 페이지 중 하나를 교체해야 한다
  • 어떤 페이지를 교체할지를 결정하는 것이 페이지 교체 알고리즘의 역할이다

2 페이지 교체 과정[편집 | 원본 편집]

  1. 프로세스가 아직 메모리에 없는 페이지를 참조함
  2. 페이지 폴트 발생 → 운영체제가 처리 개입
  3. 프레임에 여유 공간이 없는 경우 교체 대상 페이지 선정
  4. 대상 페이지가 수정되었으면 디스크에 기록
  5. 새 페이지를 디스크에서 메모리로 적재
  6. 페이지 테이블 갱신

3 교체 알고리즘[편집 | 원본 편집]

가상 메모리의 페이지 교체는 다양한 알고리즘에 의해 수행되며, 대표적인 알고리즘은 다음과 같다:

  • NUR (페이지 교체 알고리즘)
    • 최근 사용 여부와 수정 여부(R/M 비트)를 이용한 간단한 근사 알고리즘
    • SCR(Second Chance Replacement)라고도 한다.
    • LRU의 개선 기법
    • 참조 비트와 변형 비트를 이용하여 두번 연속 사용되지 않을 경우 삭제
  • MFU(Most Frequency Used)
    • 가장 빈번하게 사용된 페이지를 교체
    • 구역성(Locality)에 반하는 것으로, 거의 사용되지 않는다.

4 성능 기준[편집 | 원본 편집]

  • 페이지 폴트 수
  • 디스크 I/O 횟수
  • CPU 부하
  • 캐시 지역성 활용도

5 벨라디의 역설[편집 | 원본 편집]

  • FIFO 알고리즘에서는 프레임 수를 늘렸는데도 페이지 폴트가 증가하는 비정상적인 현상이 발생할 수 있음
  • LRU, OPT에서는 발생하지 않음

6 목적[편집 | 원본 편집]

  • 한정된 물리 메모리를 효율적으로 관리
  • 프로그램의 메모리 접근 지역성(locality)을 최대한 활용
  • 전체 시스템의 응답성과 처리량 향상

7 같이 보기[편집 | 원본 편집]

8 참고 문헌[편집 | 원본 편집]

  • Silberschatz, A., Galvin, P. B., & Gagne, G. (2020). Operating System Concepts. Wiley
  • Tanenbaum, A. S., & Bos, H. (2014). Modern Operating Systems. Pearson