Buffer VS Cache
Cache
캐시(Cache)란
Buffer
버퍼(Buffer)란
예를 들면, 메모리의 속도가 100이고, 하드디스크의 속도를 1이라고 가정 한다고 했을 때,
이 때 갑자기 어떤 데이터(용량이 50)를 메모리가 하드디스크에서 읽어 오려고 할 경우 속도가 1인 하드디스크가 50인 용량을 읽기 위해서는 시간이 50 걸립니다.
그런데 50인 용량을 메모리가 받을때는 0.5라는 시간이 걸립니다.
결국 메모리는 하드디스크가 정보를 다 읽을때까지 모두 49.5라는 시간을 아무일도 못하고 놀게 됩니다.
그것을 막기 위해서 캐시라는 장치가 생겼습니다.
만약 메모리의 특정영역을 캐시로 정하고 위의 경우에서 읽어올 데이터 50중에 30을 미리 읽어 왔다면, 30은 미리 메모리에 있으니, 20만 더 읽어 오면 됩니다.
그래서 하드디스크는 20의 시간이 걸리고, 메모리는 19.5라는 시간만 놀게 됩니다. 결국 하드디스크가 2.5배나 빨라진 셈입니다.
차이점
캐시(Cache)와 버퍼의 공통점은
추가적인 메모리를 소모함으로써 속도차이를 보상함에 있다.
차이점으로는, 버퍼는 일반적으로 캐시에 비해서 처리크기가 크기 때문에, 데이터를 저장할 수없다. 한번의 연산이 끝나면 사용된 데이터는 폐기된다. 이에 반해 캐시(Cache)는 캐시메모리에 해당 데이터를 저장하여 추후에도 계속 사용 할 수있다.
탄생한 목적도 둘은 상이하다. 캐시(Cache)는 어떤 작업의 속도를 증진시키기 위해 탄생했지만, 버퍼는 속도의 증진만을 목적으로 하느것이 아닌, 개별 작업들 간의 협동(무결성, 고속장치의 기다림 등)을 지원하기 위해 존재한다.
이러한 특성들로 주로 캐시는 읽기부분에, 버퍼는 쓰기부분에 사용된다.
'Database' 카테고리의 다른 글
[Database] DR 이란? 재해복구(Disaster Recovery) 의 개념 (0) | 2023.03.27 |
---|---|
[Database] ssh 통신이란? (0) | 2023.03.22 |
[Linux] 소스 패키지 설치 configure - make - make install (0) | 2023.03.13 |
1) Docker(도커)란? (0) | 2022.11.09 |
2) Docker 설치 및 컨테이너 실행 (0) | 2022.11.09 |