본문 바로가기

University Classes/Operating System

캐시 교체 알고리즘, 캐시 쓰기 정책

캐시 교체 알고리즘,  캐시 쓰기 정책


①    캐시 교체 알고리즘

캐시에 빈 공간이 없는 상태에서 새로운 내용이 메인 메모리로부터 캐시 메모리에 복사되어질 때에는 기존의 내용을 캐시로부터 내려야 할 것이고, 이때 어떤 블록의 내용을 내릴 것인지를 결정하는 것이 캐시 교체 알고리즘이다. 

직접 매핑 방식의 경우 캐시에 저장되어야 할 위치가 정해져 있으므로 이러한 알고리즘은 필요하지 않다.

캐시에서의 교체 알고리즘은 주로 LRU (Least Recently Used) 방식을 많이 사용하며,
이 방식의 구현을 위하여 각각의 라인에 추가적인 비트를 두고 각 라인에 대한 데이터 참조 시
발생하는
시점을 기록함으로써 이 방식을 실현하고 있다.

 


     캐시 쓰기 정책


프로세서에서 메모리에 대한 쓰기 작업을 요청할 경우에는 어떻게 수행해야 할까
?

우선 캐시에 저장되어 있는 내용을 변경해야 할 것이며, 변경된 내용을 언젠가는 메인 메모리에 저장해야 할 것이다.

이때 언제 메인 메모리의 내용을 변경할 것인지를 결정하기 위하여 아래와 같은 두 가지 정책이 주로 사용되어 진다.


1.      Write Through 정책

프로세서에서 메모리에 쓰기 요청을 할 때마다 캐시의 내용과 메인 메모리의 내용을 같이 바꾸는 방식이다

이 방식은 구조가 단순하다는 장점을 가지고 있지만 데이터에 대한 쓰기 요청을 할 때마다 항상 메인 메모리에 

접근해야 하므로 캐시에 의한 접근 시간의 개선이 없어지게 된다. 

따라서 쓰기 식의 접근 시간은 주 메모리의 접근 시간과 같게 되는 단점을 가지게 된다.


2.      Write Back 정책

이 방식은 CPU에서 메모리에 대한 쓰기 작업 요청 시 캐시에서만 쓰기 작업과 그 변경 사실을 확인할 수 있는 

표시를 한 후, 캐시로부터 해당 블록의 내용이 제거될 때  그 블록을 메인 메모리에 복사함으로써 메인 메모리의 

캐시 내용을 동일하게 유지하는 방식이다.

이 방식은 동일한 블록 내에 여러 번 쓰기를 실행하는 경우 캐시에만 여러 번 쓰기를 하고 

메인 메모리에는 한 번만 쓰게 되므로 이 경우에 매우 효율적으로 동작하게 될 것이다.

 

'University Classes > Operating System ' 카테고리의 다른 글

페이지 교체 알고리즘  (0) 2012.06.14
쓰레싱 (Thrashing) 이란?  (0) 2012.06.14
캐쉬(cache)  (0) 2012.06.12
프로세스 내 캐쉬 관리  (0) 2012.06.11
특권레벨 ( pribilege Level)  (0) 2012.06.11