캐시 교체 알고리즘, 캐시 쓰기 정책
① 캐시 교체 알고리즘
캐시에 빈 공간이 없는 상태에서 새로운 내용이 메인 메모리로부터 캐시 메모리에 복사되어질 때에는 기존의 내용을 캐시로부터 내려야 할 것이고, 이때 어떤 블록의 내용을 내릴 것인지를 결정하는 것이 캐시 교체 알고리즘이다.
직접 매핑 방식의 경우 캐시에 저장되어야 할 위치가 정해져 있으므로 이러한 알고리즘은 필요하지 않다.
캐시에서의 교체 알고리즘은 주로 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 |