Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

Page Replacement Algorithm 본문

Operating System

Page Replacement Algorithm

d5ngs 2019. 3. 26. 17:21

정의

- Page Fault가 발생했을 경우, 필요한 페이지를 주기억장치로 가져와야 한다. 이 때 가장 쓸모없는 페이지를 선택하여 교체하는 것이 시스템적으로 가장 효율적인데 이를 정하는 알고리즘



종류

  • OPT(Optimal replacement)
  • FIFO(First In First Out)
  • LRU(Least Recently Used)
  • LFU(Least Frequently Used)
  • NUR(Not Used Recently)



OPT(Optimal replacement)
  • 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
  • 가장 최적의 방법
  • 현실적이지 않음



FIFO(First In First Out)

  • 먼저 들어온 페이지를 먼저 교체시키는 방법
  • 주기억장치 내에 가장 오래 있었던 페이지를 교체
  • Belady's Anomarly
    - 페이지 프레임 수가 증가하면 Page Fault가 더 증가한다.

주기억장치에는 빈 프레임이다. 따라서 CPU가 1,2,3,4를 요청할 때 모두 Page Fault가 발생

그리고 1과 2를 요청할 때, 주기억장치에 이미 있으니 넘어감

5를 요청할 때, Page Fault가 발생하고 1,2,3,4 중 1이 가장 먼저 들어왔으니 교체




LRU(Least Recently Used)

  • 비교적 가장 오래 전에 사용된 페이지를 교체하는 방법
  • 각 페이지마다 계수기

주 기억장치에는 빈 프레임이다. 따라서 CPU가 1,2,3을 요청할 때 모두 Page Fault가 발생

4를 요청할 때 Page Fault가 발생

1,2,3 중 1이 가장 오래 전에 사용되었기 때문에 교체되어 4,2,3

1을 요청할 때 Page Fault가 발생

4,2,3 중 2가 가장 오래 전에 사용되었기 때문에 교체되어 4,1,3

3을 요청할 때, page가 있으니 넘어감

5를 요청할 때 Page Fault가 발생

4,1,3 중 4가 가장 오래 전에 사용되었기 때문에 교체되어 5,1,3

...





LFU(Least Frequently Used)

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




NUR(Not Used Recently)
  • 최근에 사용하지 않은 페이지를 교체하는 기법
  • 참조비트, 변형비트 사용
    - 우선순위 : 참조비트 > 변형비트
    - 각 비트 값이 1인 것이 가장 나중에 교체될 페이지
  • 참조비트
    - 페이지 호출 시에 1, 호출하지 않을 시 0
  • 변형비트
    - 변경했을 때1, 변경하지 않을 때 0
NUR은 최근에 사용되지 않은 페이지를 교체하고,
LRU는 사용된지 가장 오래된 페이지를 교체하는 알고리즘인데 똑같은 느낌이다..
쓴지 오래된 페이지를 바꾸겠다는 소리가 아닌가?
찾아보니..
  1. 페이지 사용량의 추적에서 다르다!
  2. 구현 비용에서 다르다!
LRU는 계수기 같은 별도의 하드웨어가 필요하며, 시간적 오버헤드가 발생한다고 한다.


'Operating System' 카테고리의 다른 글

CPU Scheduling  (0) 2019.03.26
가상기억장치의 성능(Working Set/Thrashing/Locality)  (0) 2019.03.26
암호화 기법  (0) 2019.03.26
Process / Thread  (0) 2019.03.26
OS 발달 과정  (0) 2019.03.26