실제로 필요할 때 page를 메모리에 올리기에 다음과 같은 장점이 있다.
⇒ I/O 양의 감소, 메모리 사용량 감소, 빠른 응답 시간, 더 많은 사용자 수용
Valid/Invalid bit의 사용
⇒ 처음에는 모든 page entry가 Invalid로 초기화 된다.
0, 2, 5 (A, C, F) 같은 경우에는 당장 필요한 부분이기 때문에, 물리적 메모리에 올라가 있고 Valid로 표시가 되어있다.
1, 3, 4 (B, D, E) 같은 경우에는 주소공간에는 올라가 있지만 사용되지 않고 있는 부분이기 때문에 Invalid로 표시가 되어있다.
6, 7 (G, H) 같은 경우에는 페이지가 물리적 메모리가 없는 상태이기 때문에, Invalid로 표시가 되어있다.
*** 주소변환 시에 Invalid bit이 설정되어 있으면, “Page Fault” 라고한다. ***
Page replacement
Replace Algorithm
Optimal Algorithm (= Belady’s Algorithm)
FIFO (First In First Out) Algorithm
LRU (Least Recently Used) Algorithm
LFU (Least Frequently Used) Algorithm
구현
가장 최근에 참조된 요소를 아래에 둔다. (최고 우선순위)
O(1)인 시간 복잡도가 나오게 된다.
맨 위에 참조 횟수가 가장 적은 요소를 두고, 밑에 자식 요소와만 비교하여 아래로 내려가는 방식을 반복함.
O(log n)인 시간 복잡도가 나오게 된다.