운영체제 공부 중에 캐시와 버퍼 둘 다 속도 차이가 있는 장치 사이에서 사용하는 것이라고 이해했는데, 이 둘이 가진 목적이 어떻게 다른지 이해가 되지 않아 해당 글을 작성했다.
캐시
는 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소로, 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다. 캐시도 버퍼와 비슷하게 속도가 다른 두 장치 사이에서 속도차이를 메워준다. 만약 용량이 50인 데이터를 처리 속도가 1인 하드디스크에서 읽어 오려할 경우 50만큼의 시간이 소요된다. 이때 메모리의 특정 영역을 캐시로 정하여 읽어와야할 데이터 50 중에 30을 미리 읽어왔다면, 하드디스크는 20만 더 읽어오면 되고 20만큼의 시간만 소요된다.
버퍼
는 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리 영역을 말한다. 예를 들어 "버퍼링 걸렸다."라는 말을 생각해보면, 인터넷에서 영상을 시청할 때 영상을 내려받는 속도와 영상을 재생하는 속도 차이때문에 영상이 멈출 때를 말한다.
즉, 버퍼는 속도 차이가 있는 장치 사이에서 데이터 전송 시에 데이터 손실을 방지하기 위한 임시 저장공간이다. 데이터 손실을 막기위해 데이터를 미리 받아오는 것이라고 표현할 수 있다.
캐시와 버퍼의 공통점
은 추가적인 메모리를 사용하여 속도 차이를 보상한다는 것이다.
차이점으로는 캐시
는 캐시메모리에 해당된 데이터를 저장하여 계속 사용할 수 있지만, 버퍼
는 연산이 끝난 뒤까지 데이터를 저장할 수 없다. 또한 캐시는 어떤 작업의 속도를 증진시키고자 만들어졌지만, 버퍼는 데이터의 손실을 방지하고자 만들어졌다.
(Term) 버퍼(Buffer)란?
1. 캐시(Cache)란?
캐시메모리와 버퍼메모리의 차이
Buffer VS Cache