버퍼 (컴퓨터 과학)

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

컴퓨팅에서, 버퍼(buffer, 문화어: 완충기억기)는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역이다. 버퍼링(buffering)이란 버퍼를 활용하는 방식 또는 버퍼를 채우는 동작을 말한다. 다른 말로 '큐(Queue)'라고도 표현한다.

버퍼는 컴퓨터 안의 프로세스 사이에서 데이터를 이동시킬 때 사용된다. 보통 데이터는 키보드와 같은 입력 장치로부터 받거나 프린터와 같은 출력 장치로 내보낼 때 버퍼 안에 저장된다. 이는 전자 통신의 버퍼와 비유할 수 있다. 버퍼는 하드웨어나 소프트웨어에 추가될 수 있지만 버퍼는 상당수가 소프트웨어에 추가된다. 버퍼는 보통 속도가 계속 바뀔 수 있으므로 데이터 수신, 처리 속도에 차이가 있다. (예: 프린터 스풀러)

버퍼는 네트워크 상에서 자료를 주고 받을 때나 스피커에 소리를 재생할 때, 또는 디스크 드라이브와 같은 하드웨어의 입출력을 결합하는 데에 자주 이용된다. 버퍼는 또한 순서대로 데이터를 출력하는 FIFO 방식에서 보통 사용된다.

역사[편집]

인쇄 버퍼의 초기 언급은 1952년 SEAC 컴퓨터의 화상 처리의 선구자 러셀 A. Kirsch가 고안한 Outscriber이다:[1]

자동 디지털 컴퓨터의 설계에서 가장 심각한 문제들 가운데 하나는 연산 진행의 지연을 피하기 위해 충분히 빠른 수준으로 머신 외부로 계산된 결과를 도출해내는 것이다. 범용 컴퓨터가 마주치는 문제들 중 다수가, 출력된 데이터의 양이 상대적으로 너무 커서 컴퓨터가 이러한 데이터가 기존의 인쇄기에 입력되는 시간을 기다려야 할 만큼 심각한 비효율성을 초래한다는 것이다. 이러한 어려움은 SEAC에서 자기 기록 장치를 출력 장치로 제공함으로써 해결되었다. 이 장치들은 전자 타자기가 동작할 수 있는 속도의 최대 100배까지 기계로부터 정보를 받아올 수 있다. 그러므로 출력된 데이터를 기록할 때 더 나은 효율성을 달성할 수 있다. 즉, 메인 컴퓨터에 묶여있지 않고도 자기 기록 장치에서 인쇄 장치로 나중에 표기가 가능하다.

같이 보기[편집]

각주[편집]

  1. “SEAC Maintenance Manual: The Outscriber” (PDF). 《National Bureau of Standards Report》 2794. July 1953.