[CS] Page Replacement Policy

wrld_worthy·2023년 12월 15일

CS

목록 보기
9/12

프로세스가 메모리에 접근하려고 할 때, 운영 체제제는 가상 메모리 주소를 사용하여 이루어진다. 하지만 실제 메모리는 물리 메모리 주소에 로드되어 있기 때문에 가상 주소는 물리 주소로 변환되어야 한다.
MMU에서 가상 메모리 페이지 테이블을 사용하여 가상 주소와 매핑된 실제 물리 메모리 주소로 변환하여 접근할 수 있게 해준다.
이때 요청된 가상 주소가 해당 페이지 테이블 엔트리에 없거나, 물리적 메모리에 없고 스왑 영역에 있거나, 아직 할당되지 않은 메모리 영역을 가리키고 있을 때 페이지 폴트가 발생하게 되고, 페이지를 교체하여 처리해야한다면 어떤 페이지 프레임을 선택하여 교체를 해야한다. 이때 사용하는 정책이다.

페이지 교체 정책

페이지 교체 정책은 컴퓨터 시스템의 가상 메모리 관리에서 중요한 부분이다. 이 정책은 시스템의 물리적 메모리가 가득 찼을 때, 어떤 페이지를 제거하고 새 페이지를 로드할지 결정하는 방법을 제공한다. 효율적인 페이지 교체 정책은 시스템의 전반적인 성능과 응답 시간에 큰 영향을 미친다.

정책

  1. FIFO
    • 가장 오래전에 메모리에 로드된 페이지를 제거한다.
    • 구현이 간단하지만, 자주 사용되는 페이지가 제거될 수 있다는 단점이 있다.
  2. LRU(Least Recently Used)
    • 가장 오랫동안 사용하지 않았던 데이터는 앞으로도 사용할 확률이 적다는 생각으로 만들어졌다.
    • 시간 지역성(temporal locality)성질 고려(최근에 참조된 페이지가 가까운 미래에 다시 참조될 가능성이 높은 성질)
    • 가장 오랫동안 사용되지 않은 페이지를 제거한다.
    • 최근 사용 패턴을 반영하여 효율적이지만, 구현이 복잡하고 오버헤드가 발생할 수 있다.
    • 프로세스가 주기억장치에 접근할때마다 참조된 페이지 시간을 기록해야 하므로 막대한 오버헤드가 발생
  3. LFU(Least Frequently Used)
    • 사용 빈도가 가장 낮은 페이지를 제거한다.
    • 사용 빈도를 기반으로 하지만, 초기에 자주 사용된 페이지가 장기적으로 불필요해질 때 비효율적일 수 있다.
    • 가장 최근에 불러온 페이지가 교체될 수 있음, 구현 더 복잡, 막대한 오버헤드 발생.
  4. Optimal Page Replacement
    • 미래에 가장 오랫동안 사용되지 않을 페이지를 제거한다.
    • 이론적으로최적이지만, 실제 시스템에서는 미래의 사용 패턴을 예측할 수 없어서 구현이 불가능하다.
  5. Clock Alogorithm
    • FIFO와 유사하지만 각 페이지에 사용 비트를 두어 최근 사용 여부를 체크한다.
    • 사용 비트가 설정된 페이지는 한 번의 기회를 더 받고, 사용 비트가 클리어도니 페이지가 교체 대상이 된다.
  6. Random Replacement
    • 제거할 페이지를 무작위로 선택한다.
    • 구현이 매우 간단하지만, 성능을 예측하기 어렵다.

0개의 댓글