페이지 교체 알고리즘은 컴퓨터 운영 체제에서 메모리 관리 기법의 일종으로, 프로세스가 샐행될 때 필요한 페이지를 메모리에 적재하기 위해 어떤 페이지를 제거할지 결정하는 알고리즘입니다. 페이지 교체 알고리즘은 주로 가상 메모리를 사용하는 시스템입니다.
가장 오랫동안 사용되지 않을 페이지를 교체하는 방식입니다. 이론적으로 최적의 성능을 제공하지만, 미래의 페이지 참조를 예측해야 하므로 실제 구현이 불가능합니다.

FIFO 알고리즘은 가장 먼저 메모리에 적재된 페이지를 가장 먼저 교체하는 방식입니다. 큐를 사용하여 페이지를 관리하며, 큐의 앞부분에 있는 페이지가 교체됩니다.

LRU 알고리즘은 가장 오랫동안 사용되지 않은 페이지를 교체하는 방식입니다. 최근에 사용된 페이지는 계속 메모리를 유지하려고 합니다.

LFU 알고리즘은 사용 빈도가 가장 적은 페이지를 교체하는 방식입니다. 각 페이지 참조 횟수를 기록하여 가장 적게 참조된 페이지를 교체합니다.
MFU 알고리즘은 LFU의 반대 개념으로, 사용 빈도가 가장 많은 페이지를 교체하는 방식입니다. 이 알고리즘은 최근에 적게 사용된 페이지가 앞으로도 적게 사용될 것이라는 가정을 바탕으로 합니다.
LRU, LFU 페이지 교체 알고리즘과 성능이 거의 비슷하면서도 불필요한 메모리 공간 낭비 문제를 해결한 페이지 교체 알고리즘이다. 이 알고리즘은 각 페이지에 대해 두 구지 비트를 유지합니다.
NUR 알고리즘의 작동 방식
1. 참조 비트와 변경 비트 설정
1. 참조 비트는 CPU가 페이지를 참조할 때마다 설정됩니다.
2. 변경 비트는 페이지가 수정되었을 때 설정됩니다.
2. 비트 초기화
1. 일정 시간 간격으로 모든 페이지의 참조 비트를 0으로 재설정합니다.
2. 변경 비트는 페이지가 실제로 디스크에 기록될 때만 0으로 재설정됩니다.
3. 페이지 교체 시기
1. 페이지 프레임이 모두 사용 중일 때 페이지 폴트가 발생되면, 교체할 페이지를 선택해야 합니다.
2. 모든 페이지를 네 가지 카테고리로 분류합니다.
1. 참조 비트 0, 변경 비트 0 : 최근에 참조되지 않았고 수정되지 않은 페이지.
2. 참조 비트 0, 변경 비트 1 : 최근에 참조되지 않았고, 수정된 페이지.
3. 참조 비트 1, 변경 비트 0 : 최근에 참조되었고 수정되지 않은 페이지.
4. 참조 비트 1, 변경 비트 1 : 최근에 참조되었고 수정된 페이지
4. 페이지 교체
1. 위의 네 가지 카테고리 중 우선순위에 따라 교체할 페이지를 선택합니다. 가장 우선적으로 교체되는 페이지는 (참조 비트 0, 변경 비트 0)인 페이지 입니다. 만약 이런 페이지가 없다면 (참조 비트 0, 변경 비트 1)인 페이지를 선택하고, 그 다음 (참조 비트 1, 변경 비트 0) 그리고 마지막으로 (참조 비트 1, 변경 비트 1) 순으로 선택합니다.
2. 선택된 페이지는 메모리에서 제거되고, 새로운 페이지가 그 자리에 적재됩니다.

[참고]