본문 바로가기

Ryu's Tech

Cache & Buffer [ 캐쉬와 버퍼 ]



"
캐시"란 속도가 다른 두 장치 사이에서 속도차이를 메워주는 장치입니다.


 
예를 들면, 메모리의 속도가 100이고, 하드디스크의 속도를 1이라고 가정 한다고 했을 때,

 이 때 갑자기 어떤 데이터(용량이 50)를 메모리가 하드디스크에서 읽어 오려고 할 경우를 생

 각해 보죠. 속도가 1인 하드디스크가 50인 용량을 읽기 위해서는 시간이 50 걸립니다.


그런
50인 용량을 메모리가 받을때는 0.5라는 시간이 걸리죠. 결국 메모리는 하드디스크가 정보

를 다 읽을때까지 모두 49.5라는 시간을 아무일도 못하고 놀게 됩니다.

그것을 막기 위해서 
캐시라는 장치가 생겼습니다. 만약 메모리의 특정영역을 캐시로 정하고 위의 경우에서 읽어

올 데이터 50중에 30을 미리 읽어 왔다면, 30은 미리 메모리에 있으니, 20만 더 읽어 오면 됩니다. 그래서 하드디스크는 20의 시간이 걸리고, 메모리는 19.5라는 시간만 놀게 됩니다



국 하드디스크가 2.5배나 빨라진 셈입니다. 보통 윈도우95/98에서는 하드디스크 캐시를 사용하면, 하드디스크 속도가 10배 정도 빨라지는 효과를 얻을 수 있습니다. 그것은 윈도우95/98이 캐시메모리를 훌륭하게 관리해서 90%이상의 데이터를 미리 읽어오기 때문입니다. 캐시 메모리는 하드디스크와 메모리 사이에만 있는 것이 아니고, CPU와 메모리 사이에도 있고, 하드디스크와 케이블 사이에도 있으며, CD-ROM과 메모리 사이에도 있습니다. 속도차이가 나는 모든 장치에 있다고 생각하면 됩니다. 인터넷을 쓸때도, 모뎀의 속도가 느리기 때문에 자주 접속하는 홈페이지의 그림을 하드디스크에 저장해 뒀다가 사용하는데, 이것을 인터넷 캐시라고 합니다. 쿠키파일도 비슷한 일을 하지만 보안과 관련되어 있습니다. 내 컴퓨터에서 캐시와 쿠키 관리하기 모뎀보다 하드디스크가 빠르니 하드디스크를 캐시로 사용하는 것입니다. 그래서 인터넷을 쓰기 위해서는 하드디스크를 50MB 이상 비워두는 것이 좋습니다. 캐시메모리는 많으면 많을 수록 좋지만, 비례해서 좋아지지는 않습니다. 미리 읽어 올 데이터가 30인데, 캐시 메모리가 10이면 속도가 나질 않겠지요. 그런데 캐시를 30으로 늘리면 속도가 많이 늘것입니. 그런데, 캐시를 60으로 늘리면, 미리 읽어와야 할 데이터가 30이상일 때는 속도는 늘어나겠지만, 30이하일 때는 늘지는 않을 것입니다. 게다가 메모리는 비싸기 때문에 무조건 캐시로 사용할 수는 없지요.

 

 

 

버퍼란 데이터를 전송하는 상호간의 장치에서 고속의 장치와 저속의 장치 간의 속도 차이로 인해 저속의 장치가 작업을 추리하는 동안 고속의 장치가 기다려야 하 는 현상을 줄여주는 기술입니다.

 

예를 들어 버퍼를 사용하지 않는다면 컴퓨터는 프린터가 인쇄를 끝낼 때까지 아무런 작업을 할 수 없게 되죠

 

하지만 버퍼를 사용하면 컴퓨터에서 전송한 데이터가 버퍼에 저장되어 프린터는 컴퓨터로부터 집적 데이터를 받는 것이 아니라 버퍼에서 데이터를 조금씩 읽어서 출력하므로 컴퓨터는 버퍼로 전송작업을 마치고 프린터가 출력을 하는 동안 다른 작업을 할 수 있게 되는 겁니다.

 

따라서 눈치채셨겠지만, 버퍼는 각 장치나 프로세스가 상대방에 의해 정체되지 않고 잘 동작할 수 있도록 해주는 놈입니다.

 


 

"데이터의 중간 저장소"라는 측면에서 버퍼는 캐시와 마찬가지이지만, 캐시가 어떤 작업의 속도를 증진시키기 위해 존재하는데 비해, 버퍼는 개별 작업들 간의 협동을 지원하기 위해 존재한다는 차이가 있다고 볼수 있습니다.