lru 예제

LRU 알고리즘의 한 가지 중요한 장점은 전체 통계 분석을 수행할 수 있다는 것입니다. 예를 들어 LRU는 N이 관리되는 풀의 페이지 수에 비례하는 최적(OPT) 알고리즘보다 N배 이상의 페이지 오류를 초래할 수 없다는 것이 입증되었습니다. “페이지 교체”의 문제는 컴퓨터 디자인의 다른 영역에서도 발생한다는 점에 유의하십시오. 예를 들어 대부분의 컴퓨터에는 최근에 사용한 32바이트 또는 64바이트 메모리 블록으로 구성된 하나 이상의 메모리 캐시가 있습니다. 캐시가 가득 차면 일부 블록을 선택하여 제거해야 합니다. 이 문제는 짧은 시간 척도를 제외하고는 페이지 교체와 정확히 동일합니다(페이지 교체와 마찬가지로 밀리초가 아닌 몇 나노초 단위로 수행해야 함). 짧은 시간 규모의 이유는 캐시 블록 누락이 검색 시간이 없고 회전 대기 시간이 없는 주 메모리에서 충족되기 때문입니다. LRU의 더 나은 이해를위한 예로 다음 참조 문자열을 고려 위의 예, 문자열의 첫 번째 페이지는 7이미 없는 것은 3 개의 무료 페이지 프레임 중 하나에 넣고 페이지 오류가 기록됩니다. 마찬가지로 0과 1의 경우 페이지가 빈 페이지 프레임에 직접 삽입됩니다(열 2 및 3에 표시됨).

이제 세 개의 프레임이 모두 가득 차서 페이지 2가 참조될 때 가장 최근에 사용한 페이지(어떤 식으로든 다른 페이지 보다 앞서 사용된 페이지)가 됩니다. 즉, 더 많은 시간 동안 사용되지 않은 페이지가 바뀝니다) 이 경우 7.이 0이 이미 존재하는 것을 볼 수 있는 후 페이지가 바뀝니다. 이제 페이지 3이 참조되면 페이지 0이 마지막 조회에서 사용되고 2페이지가 그 전에 교환되었으므로 페이지 1이 가장 최근에 사용되지 않으며 올바르게 바교체되고 페이지 3으로 대체됩니다. 마찬가지로 모든 페이지 오류가 있는 전체 프로세스가 위에 표시됩니다. FIFO는 스택 알고리즘이 아닙니다. 경우에 따라 프로세스에 더 많은 프레임을 할당할 때 실제로 페이지 오류 수가 증가할 수 있습니다. 아래 예제에서는 3프레임에 대해 9개의 페이지 오류와 4프레임에 대한 10개의 페이지 오류가 있습니다. 두 번째 예는 웹 서버에 있습니다. 서버는 메모리 캐시에 많이 사용되는 웹 페이지의 특정 번호를 유지할 수 있습니다.

그러나 메모리 캐시가 가득 차있고 새 페이지가 참조되면 제거할 웹 페이지를 결정해야 합니다. 고려 사항은 웹 페이지가 캐시에서 수정되지 않으므로 디스크에 항상 새 복사본이 있다는 점을 제외하면 가상 메모리의 페이지와 유사합니다. 가상 메모리 시스템에서 는 주 메모리의 페이지가 깨끗하거나 더러워질 수 있습니다. 페이지 교체 정책은 하드웨어에서 제공하는 페이지에 대한 액세스에 대한 제한된 정보를 살펴보고, 총 페이지 누락 수를 최소화하기 위해 교체해야 하는 페이지를 추측하는 동시에 비용과 균형을 맞추려고 합니다(기본 저장소 및 프로세서 시간)을) 알고리즘 자체의 프로세서 시간)을 참조하십시오. 따라서 알고리즘 자체가 너무 복잡해서는 안 되며 구현될 때 관리할 수 없는 오버헤드와 지연을 초래해서는 안 됩니다. 추가 참조 비트: 프레임이 최근에 참조되었는지 여부입니다. 가상 메모리 관리를 위해 페이징을 사용하는 컴퓨터 시스템에서 페이지 대체 알고리즘은 메모리 페이지를 할당해야 할 때 페이징아웃할 메모리 페이지(디스크로 스왑아웃, 쓰기)를 결정합니다. 페이징은 페이지 오류(프로세서가 페이지에 액세스하려고 하고 해당 페이지가 현재 주 메모리에 없는 경우)가 발생하고 사용 중인 페이지를 사용할 수 없는 경우, 없음이 없거나 사용 중인 페이지 수가 일부 thth보다 낮기 때문에 발생합니다. 다시 보류합니다. 3페이지 프레임이 있는 LRU(가장 최근에 사용한) 페이지 교체 알고리즘을 사용하여 페이지 오류 수를 찾습니다.

설명 – 참조 비트는 주기적으로 새로 고쳐지지만 각 페이지 오류에서 제거할 임의의 페이지를 선택할 수 있지만 많이 사용되지 않는 페이지를 선택하면 시스템 성능이 훨씬 향상됩니다.