Today
Total
KoreanEnglishFrenchGermanJapaneseSpanishChinese (Simplified)
관리 메뉴

DB & AWS Knowledge

버퍼 (Buffer) & 캐시 (Cache) 본문

DB 관련 지식/DB 연관 IT 개념

버퍼 (Buffer) & 캐시 (Cache)

`O` 2021. 3. 18. 17:58
728x90
반응형

해당 페이지에서는 버퍼 & 캐시 개념에 대해서 알아본다.

(참조페이지)

dololak.tistory.com/84

process0modesty.tistory.com/357

wikidocs.net/65523

 

 

버퍼 (Buffer)

 

두 장치간에 입출력 속도차이로 인한 처리 지연을 방지하지 위하여 도입된 개념이다.

아래의 예시를 보면 기존 컴퓨터, 서버에는 저장장치인 Disk 와, 연산장치인 CPU 가 있다. 

디스크는 CPU 와 비교하면 비교가 안될 정도로 느리다. (해당 예시는 쉬운 예시를 위하여 단순 숫자로 표기)

 

그래서 1개의 연산 데이터를 읽어들여 CPU 에 보낼 때, CPU 는 이에 따라 분당 100개의 데이터를 처리 할 수 있어도 디스크로 인하여 1개의 데이터를 처리 할 수 밖에없다. 이 때 CPU는 다른 작업들을 수행 하지 못하고 99개의 데이터 영역 처리 공간 및 시간이 지속 대기 및 지연이 되므로 이에 따라 연산속도를 제대로 활용하지 못한 채 연산 속도가 느려지게 된다.

 

 

그래서 그 사이에서 중간에 버퍼가 도입되게 되었다. 위의 디스크와 CPU 만 보여주었는데 우리가 사용하는 컴퓨터에는 이 가운데에 RAM 등의 메모리를 추가로 사용한다. 보통 이와 같이 CPU 가 연산을 하는 과정에서 언급 되는 버퍼는 메모리내의 버퍼 영역을 뜻한다 (아래 예시의 메모리 이외에 다양한 장치에서 메모리 버퍼와 같은 임시 저장 공간이 있다). 아래와 같이 메모리 영역이 중간에 있으면 디스크가 느리더라도 메모리에 1개씩 지속적으로 데이터를 전송하면서 메모리가 보관을 할 수 있다. CPU 는 메모리가 디스크로 부터 데이터를 지속적으로 받아 적재를 하기 때문에 그 동안 이 작업에 쓸 수 있는 연산공간을 다른 연산작업에 사용하는 한편, 메모리가 보관했다가 전송하는 디스크의 일부 데이터를 디스크가 데이터를 모두 전송할때 까지 대기 할 필요 없이 부분적으로 지속 처리를 하기 때문에 각 요소들이 대기시간으로 인한 성능 지연이 없이 CPU 연산을 100% 까지 사용 할 수 있다. 

 

DB와 관련된 예시를 들어야 해서 RAM 메모리 내의 버퍼 영역을 들었지만, 버퍼를 자체적으로 사용하는 다른 컴퓨터 여러 부품들이 존재한다. 물론, 사용 이론은 위와 동일하다.

 

 

 

케시 (Cache)

 

도입 개념은 버퍼와 매우 유사하다. 입출력 처리 속도 지연을 방지하는 것은 버퍼와 유사하나 여기에 추가적으로 연산 처리속도를 극대화 하기 위하여 도입된 개념이다. 흔히 DB에서 작업이 필요한 데이터들을 디스크에서 선별하여 메모리에 보관한 후, 이 메모리를 디스크 대신 작업 데이터 보관 공간으로 사용하는 것이 대표적인 예이다.

 

DB 가 디스크로부터 데이터를 지속적으로 조회를 하여 연산 처리 작업을 수행한다면, 위의 버퍼 개념과 같이 지속적인 성능 저하가 발생하므로 캐시는 매우 필수적인 요소라고 할 수 있다.

 

이 또한 메모리 이외에 여러 컴퓨터 장치에도 적용되는 개념이다.

 

 

 

정리

 

정리하면 버퍼, 캐시는 두 장치간의 속도 간극을 줄이는데에 목적을 두는건 동일하지만, 버퍼는 속도가 느린 장치에 관점을 두어 속도 간극을 줄이고 캐시는 속도가 빠른 장치에 관점을 두어 속도간극을 줄이는 것에 차이가 있다고 볼 수 있다

반응형
Comments