C 언어 - 버퍼(Buffer)의 개념과 이해

컴퓨터/C

728x90
반응형

해당 포스트를 읽기 전 스트림에 대한 이해를 하고 읽기를 권장합니다.

 

 

C 언어 - 스트림(Stream)의 개념과 이해

스트림(Stream)이란 무엇인가? Stream의 사전적인 의미는 흐르다, 흐름 등의 뜻으로 쓰입니다. 컴퓨터는 다양한 하드웨어와 소프트웨어가 합쳐져 있는 형태로 구성되어있습니다. 이런 다양한 장치

blog-of-gon.tistory.com

 

버퍼(Buffer)란?

버퍼(Buffer)의 사전적인 의미는 완충제 또는 완충제의 역할을 하는 것입니다.  컴퓨터 공학에서 불리는 버퍼 또한 장치와 장치 간의 데이터 전송을 할 때 완충작용을 하기 위한 임시 데이터 저장 공간입니다.

 

그림과 같이 입력스트림을 통해 키보드와 컴퓨터(CPU)가 연결되어 있다고 가정해 봅시다. 

 

키보드라는 입력장치와 컴퓨터(CPU)의 연산장치는 데이터를 처리하는 속도가 다릅니다. 

예를 들어 아래와 같은 처리속도를 가졌다고 가정해 봅시다.

  • 키보드는 초당 1회의 입력을 받을 수 있다.
  • 컴퓨터(CPU)는 초당 10회의 연산을 수행할 수 있다. 

만약 그림과 같이 완충장치가 존재하지 않는 상태에서 키보드에서 스트림을 통해 CPU로 데이터를 전달한다면 아무리 성능이 좋은 CPU라고 해도 초당 1회의 연산밖에 할 수 없습니다. 입력장치의 데이터 처리 수행 능력이 초당 1회밖에 안되기 때문입니다. 

 

이런 문제를 해결하기 위해서 버퍼라는 임시저장소를 만들게 됩니다. 키보드로부터 입력되는 데이터들을 모아서 한 번에 CPU로 전달을 해주는 것입니다. 그렇다면 CPU는 정상적으로 자신의 성능만큼 업무를 수행할 수 있게 됩니다.

 

이처럼 장치와 장치가 연결되는 공간에서 데이터를 원활하게 처리할 수 있게 만들어 주는 역할을 하는 것이 바로 버퍼입니다. 이런 버퍼의 개념이 적용되어 장치와 장치 사이에서 처리속도의 문제를 극복하게 할 수 있습니다.

 

 

 

 

728x90
반응형

'컴퓨터 > C' 카테고리의 다른 글

C 언어 - 예외처리  (0) 2021.11.30
C 언어 - 버퍼와 scanf 함수 (다양한 에러의 원인과 해결법)  (0) 2021.11.29
C 언어 - time.h  (0) 2021.10.02
C 언어 - NULL  (0) 2021.09.30
C 언어 - 거품정렬 구현해보기  (0) 2021.09.27

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :