페이지 교체 알고리즘

초보개발·2021년 11월 11일
0

OS

목록 보기
13/38

TLB(Translation Lookaside Buffer, 변환 색인 버퍼)

  • 프로세서 내부에 있는 장치로 가상 메모리 주소를 물리적 주소로 변환하는 속도를 높이기 위해 사용되는 캐시의 일종

유효메모리 접근시간(Effective Access Time)

  • (메모리접근시간+TLB접근시간)x(TLB적중률)+(2x메모리접근시간+TLB검색시간)x(1-TLB적중률)

페이지 교체 알고리즘

Page fault가 발생하면 가상기억장치에서 필요한 페이지를 찾아 주기억장치에 적재해야 하는데, 이 떄 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택해 교체할 것인지 결정하는 기법

OPT(OPTimal replacement, 최적 교체) - 예측

앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법

  • 페이지 부재 횟수가 가장 적게 발생

FIFO(First In First Out)

각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법

  • 이해하기 쉽고 프로그래밍하기 간단함
  • Belady 이상현상 : 물리적 페이지의 개수를 확장했는데도 페이지 폴트가 늘어나는 경우가 발생하는 문제점

예제

세 개의 페이지 프레임을 가진 기억장치에서 FIFO 알고리즘을 사용해 교체했을 때 페이지 부재의 수는?
참조 페이지 - 2, 3, 2, 1, 5, 2, 3, 5
답 : 6

LRU(Least Recently Used) - 가장 오래전 사용

최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법

  • 각 페이지마다 계수기, 스택을 두어 현시점에서 가장 오래전에 사용된 페이지 교체

예제

세 개의 페이지 프레임을 가진 기억장치에서 LRU 알고리즘을 사용해 교체했을 때 페이지 부재의 수는?
참조 페이지 - 2, 3, 2, 1, 5, 2, 3, 5
답 : 5

LFU(Least Frequently Used) - 사용수가 적은것

사용 빈도가 가장 적은 페이지를 교체하는 기법

  • 활발하게 사용되는 페이지는 사용횟수가 많으므로 교체되지 않고 사용됨

NUR(Not Used Recently) - 최근사용X + 참조/변형 비트

최근에 사용하지 않은 페이지를 교체하는 기법

  • 최근에 사용되지 않은 페이지는 앞으로도 사용되지 않을 가능성이 높음을 이용해 LRU에서 나타나는 시간적인 오버헤드를 줄일 수 있다.
  • 최근 사용여부를 확인하기 위해 각 페이지마다 두개의 비트, 참조 비트와 변형 비트가 사용된다.
    • 참조 비트 : 페이지가 호출되지 않았을 때는 0, 호출되었을 때는 1
    • 변형 비트 : 페이지가 변경되지 않았을 때는 0, 변경되었을 때는 1
  • 참조비트가 0, 변형비트가 0인 페이지는 교체 순서가 1번째가 되고, 참조비트가 0, 변형비트가 1인 페이지는 2번째, 참조비트와 변형비트 모두가 1인 페이지는 교체순서가 4번째가 된다.

SCR(Second Chance Replacement, 2차 기회 교체)

가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법

  • FIFO의 단점을 보완하는데 사용

0개의 댓글