CS/operating system

Cache (캐시)

superbono 2021. 7. 14. 16:39

사실 컴퓨터구조 글이지만 카테고리 만들기 뭐해서 그냥 운영체제 카테고리에 작성한다.

* Cache(캐시)?

캐시

데이터나 값을 미리 복사해놓는 임시 장소이다. 원래 데이터 저장 장치에서 데이터를 불러오는 것보다 캐시 접근 시간은 훨씬 빠르다는 장점이 있다. 또한 값을 다시 계산하는 시간을 절약하고 싶을 때 사용한다. 캐시에 데이터를 미리 복사해높으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근이 가능하다. 기본적으로 데이터를 미리 복사하여 저장해두는 메모리를 의미한다. 휘발성의 성질을 갖는다.

 

* CPU 캐시

대용량의 메인 메모리 접근을 빠르게 하기 위해 CPU 칩 내부나 바로 옆에 탑재하는 작은 메모리이다. 메모리 접근 속도가 늘어나는 것에 비해 CPU의 처리 속도가 훨씬 빠르게 일어나고 있기 때문에 용량은 작지만 속도가 빠른 CPU 캐시는 현재 CPU 처리 시 성능 향상에 도움을 준다.

 

* 디스크 캐시

디스크 버퍼라고 불리기도 한다. 디스크 i/o가 오래 걸리기 때문에 디스크에 i/o되는 데이터를 저장하는 메모리의 역할을 한다.

  • 미리 읽기 
  • 속도 조절
  • 쓰기 가속
  • 명령 큐

 

cpu 캐시는 하드웨어를 통해 관리되지만 그 밖의 다른 캐시들은 소프트웨어적으로 관리된다. 신뢰성이 적은 네트워크(이더넷 등)에서, 네트워크 사이에 주고 받는 데이터를 캐시해 놓는 것은 매우 흔한 일이다. 이를테면, 웹 브라우저는 최근 방문한 사이트를 캐시에 저장해 놓는다. 많은 인터넷 제공업체들과 대규모 네트워크의 운영자들은 인기 있는 웹 페이지의 캐시를 프록시 서버에 저장하여 웹 페이지 요청에 응답하게 함으로써 네트워크 대역폭을 아낀다.

 

* 지역성

지역성이란 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어나는 것을 말한다.

시간적 지역성

특정 데이터가 한번 접근되었을 경우, 가까운 미래에 해당 데이터를 다시 접근할 가능성이 높은 것. 이러한 경우 해당 데이터를 캐시메모리에 저장해두면 매번 i/o 작업이 일어나는 것보다 경제적이다. 

공간적 지역성

특정 데이터와 가까운 주소가 순서대로 접근되는 것. CPU 캐시나 디스크 캐시의 경우 한 메모리 주소에 접근할 때 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져오게 된다. 이때 메모리 주소를 오름차순이나 내림차순으로 접근한다면, 캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상된다.

 

출처 - https://ko.wikipedia.org/wiki/%EC%BA%90%EC%8B%9C

'CS > operating system' 카테고리의 다른 글

Thread-safe의 의미  (0) 2021.08.10
운영체제 입문 강의 및 책 추천  (0) 2021.03.10
Thread  (0) 2021.03.02
File System Implementation  (0) 2021.03.01
File System (1/1)  (0) 2021.02.28