Written by
Sunwoo Han
on
on
LRU 알고리즘
LRU(Least Recently Used) 알고리즘
페이지 교체 알고리즘
cpu가 계산을 할 때 필요한 데이터가 페이지에 있다면 cache hit
라고 부르며, 없을 경우 보조기억장치로부터 데이터를 페이지로 옮겨온 후 계산을 하는데 이는 cache miss
라고 부른다.
두 경우 시간이 차이 나기 때문에 보다 빠른 연산을 위해서 페이지의 여러 정보 중 어느 정보를 오래 저장해 놓는지가 매우 중요하다.
이렇게 한정된 자원 내에서 최고의 효율을 얻기 위한 알고리즘을 페이지 교체 알고리즘이라고 한다.
페이지 교체 알고리즘의 종류는 다음과 같다.
- FIFO(First-In-First-Out)
- OPT(OPTimal Page Replacement)
- LRU(Least Recently Used)
- Count-Based
- LFU(Least Frequently Used)
- MFU(Most Frequently Used)
LRU 이론
LRU 알고리즘은 가장 최근에 사용되지 않은 페이지를 제거하는 알고리즘이다. 이 알고리즘의 기본 가설은 가장 오랫동안 사용하지 않은 데이터는 앞으로도 사용할 확률이 적다는 것이다. 알고리즘의 구현하는 첫 번째 방법은 페이지에 저장된 데이터가 언제 사용되었는지를 알 수 있게하는 부분을 구현해 가장 오랫동안 참조되지 않은 페이지를 제거하는 방법이다. 두 번째 방법은 페이지에 데이터를 Queue 형식으로 저장하는 방법이다. 페이지 내에 필요한 데이터가 존재하면 페이지 내에서 제거하고 맨 위로 올리고, 존재하지 않는다면 바로 입력하여 맨 아래 데이터를 제거하는 과정을 구현한다.
Reference
Comments
CS 의 다른 글
-
HTTP 헤더 - 캐시와 조건부 요청 03 Jan 2022
-
HTTP 헤더 - 일반 헤더 26 Dec 2021
-
HTTP 상태코드 20 Dec 2021
-
HTTP 메서드 활용 17 Dec 2021
-
HTTP 메서드 12 Dec 2021
-
HTTP 기본 09 Dec 2021
-
URI와 웹 브라우저 요청 흐름 08 Dec 2021
-
인터넷 네트워크 06 Dec 2021
-
Single LinkedList 01 Oct 2021
-
ArrayList 24 Sep 2021
-
List Interface(리스트 인터페이스) 23 Sep 2021
-
자바 컬렉션 프레임워크 20 Sep 2021
-
면접 기초 질문 리스트 31 Aug 2021
-
인프라 기초 총정리 14 Aug 2021
-
하드웨어와 네트워크 기초 지식 03 Aug 2021
-
오버레이 네트워크(Overlay Network) 02 Aug 2021
-
이건 꼭 알고 가자! 면접 출제 빈도가 높은 질문들 19 May 2021
-
1분 자기소개 19 May 2021
-
백엔드 개발자 면접 / 학습내용 15 Feb 2021
-
너비 우선 탐색(breadth-first search, BFS) 22 Oct 2020
-
깊이 우선 탐색(depth-first search, DFS) 10 Oct 2020
-
크리티컬 섹션(Critical Section) 10 Sep 2020
-
삽입 정렬(Insertion Sort) 04 Sep 2020
-
선택 정렬(Selection Sort) 04 Sep 2020
-
거품 정렬(Bubble Sort) 04 Sep 2020
-
LRU 알고리즘 31 Aug 2020
-
Stack, Queue 29 Aug 2020
-
awk 명령어 사용법 24 Aug 2020
-
grep 명령어 사용법 23 Aug 2020
-
DNS의 이해 14 Aug 2020
-
대칭키와 공개키 10 Aug 2020
-
HTTP & HTTPS 10 Aug 2020