0. 말씀드리기 전에
버퍼에 관한 지식등록을 한번 해보자는 생각을 하다,
그럼, 캐시와 버퍼의 차이가 뭐지? 하는 생각이 들어
기억의 서고에 열람을 했더니 분명히 다르더군요.
(사실 제가 전산전공이라서…)
1. 간단하게 버퍼와 캐시
버퍼와 캐쉬는 모두 속도가 차이나는
두 기기(부분) 간에 종간 정도 속도의 완충 지대를 두어
비용을 많이 들이지 않고 속도 향상을 꾀하는 것입니다.
버퍼는 빠른 쪽에서 느린 쪽으로 데이터 흐름에
성능을 높히기 위한 것에 주안점을 두고 있습니다.
캐시는 느린 쪽에서 빠른 쪽으로 데이터 흐름에
성능을 높히기 위한 것에 주안점을 두고 있습니다.
2. 버퍼 설명 이전에...
어떻게 보면 너무 간단한 내용이고
어떻게 보면 조금 복잡하죠
어떻게 설명하면 좋을까 생각하다 보니
도서관에서 책을 대출/반남하는 것과 아주 비슷한 것 같습니다.
비교 설명을 위해 도서관 서고를 출입 할 수 있는
사람은 한 사람으로 함니다.
( 그래야 HDD의 헤드와 비교가 가능해서요. )
( 어떤 분은 HDD에 헤드가 여러 개 있다고
이의를 제기 하실 분이 계실텐데,
물리적인 헤드가 여러 개 일지는 몰라도
하나의 암에 여러 개가 일렬로 배치되어 함께 움직입니다.
그러므로, 논리적으로는 1개 임을 알려드립니다.)
3. 도서관에서…
이 도서관에는 데스크에 사서가 5명 있습니다.
사서의 지시를 받아
반납된 책을 서고에 꼽고. 서고에서 책을 찾아 오는
도서운반원이 오직 1명 있습니다.
수많은 이용자들이 책을 대출하거나 반납하기 위해
이 도서관을 이용합니다.
도서 대출의 절차를 알아 볼까요.
번호표를 받고 기다리다
도서관 사서에서 원하는 책을 요청합니다.
사서는 기다리다 도서운반원에게 책을 요청합니다.
도서운반원은 책을 찾아 사서에게 전달합니다.
사서는 이용자에게 도서를 대출해 줍니다.
대출도서 반납의 절차는 이렇습니다.
이용자는 사서에게 책을 반납하고 도서관을 나갑니다.
사서는 도서운반원을 기다렸다 책의 입고를 요청합니다.
도서운반원은 책을 서고에 입고합니다.
모든 책은 사서를 거치게 됩니다.
사서가 잠시 동안 책을 보관하게 되는 겁니다.
사서가 많을 수록 대출/반납과정이 원활합니다.
특히 반납의 경우 사서에게 반납만 하면
책이 서고에 꼽히는 것과 관계 없이 자신의 일을 할 수 있게 되겠죠.
그런데 사서가 5명이 아니라 2명이나 1명이라고 하면 어떨까요?
4. HDD에서는…
데이터 읽기 과정은 이렇게 되죠.
프로그램은 HDD에게 데이터를 읽기를 요청합니다.
HDD는 헤드를 원하는 데이타가 있는 플레터로 움직여
데이타를 읽어 버퍼에 저장합니다.
프로그램은 데이터 이용하여 실행합니다.
데이터 쓰기 과정도 알아보면.
프로그램은 HDD에게 데이터를 쓰기를 요청하고.
HDD버퍼에 쓰기 데이터를 보냅니다.
HDD버퍼의 공간이 충분하면 프로그램은 손을 떼고,
부족하면 버퍼 수용가능한 용량으로 나누거 계속 보냅니다.
HDD는 버퍼에 들어온 데이터를 헤드를 통헤 플래터에 저장하고
버퍼의 데이타를 지우고 새로운 데이터를 쓰는 과정을 반복하여
모든 데이터를 플래터에 저장합니다.
읽기의 경우에는
속도가 느린 쪽에서 빠른 쪽으로 데이터 이동함으로
버퍼가 아주 큰 열활을 못하지만,
쓰기의 과정은 빠른 쪽에서 느린 쪽으로 데이터 이동함으로
아주 큰 효과를 볼 수 있습니다.
게다가 윈도우즈에서는 여러 프로그램이 동시에 실행되기 때문에
버퍼는 크면 클수록 큰 효과를 발휘하게 됩니다.
특히, HDD에서 HDD로 복사하거나 옮길 때는 큰 효과가 있습니다.
참 쉽게 설명해주셨네요. 쏙 들어옵니다.
아주 오래전에 올린글인데, 도움 되셨길 바랍니다~