아카이브

Cache 정리 본문

운영체제

Cache 정리

주멘이 2018. 5. 29. 21:52

메모리 계층 구조



< Cache ? > 

- 데이터를 임시로 저장하는 장소.

-  데이터의 지역성이나 접근 비율이 많은 경우 캐시에 데이터를 임시 저장하여 데이터를 빠르게 제공하는 것이 목적.

- RAM보다 빠른 L1, L2 캐시가 있고 CPU의 REGISTER와 중간에서 캐시 역할을 함.

- 공간 지역성 : 데이터 참조 시 근처에 있는 가까운 데이터가 참조된다.

- 시간 지역성 : 읽은 데이터가 빠른 시일 내에 또 참조된다.




< 동작 순서 >

- 데이터를 요청

- if(cache에 존재) cache에서 데이터를 가져옴

- else 실제 저장공간에서 데이터를 가져옴

- cache에 데이터를 임시 저장




< 용어 >

     cache hit : 참조하려는 데이터가 캐시에 존재할 때 

      cache miss : 참조하려는 데이터가 캐시에 존재 하지 않을 때

     cache hit ratio : 적중률 = (캐시히트횟수) / (전체참조횟수) = (캐시히트횟수) / (캐시 히트횟수 + 캐시 미쓰횟수)




< 캐시 교체 알고리즘 >

- LRU(least recently used) : 일반적이고 가장 효율이 좋은 알고리즘이다. 캐시 내에서 사용되지 않은 채로 가장 오래 있었던 데이터 교체


▶ 페이지 크기 3이고, 0부터 4까지의 숫자들이 참조되는 경우

▶ 시간 7,9 는 값은 바뀌지 않았지만 최근에 참조된 부분을 녹색으로

▶ 시간 8, 10은 참조된지 오래된 부분인 4와 1이 교체된 경우

카카오 코딩 테스트 문제에 출제


FIFO(first-in-first-out) : 가장 간단 하다. 캐시 내에서 가장 오래된 데이터를 교체. 특정 상황에서 너무 자주 교체되는 단점이 있다.

LFU(least frequently used) : 가장 적게 사용된 데이터를 교체. 카운터값을 유지해야하는 단점