[정의]
버퍼란?
: 컴퓨팅에서 버퍼(buffer)는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역이다.
출처: 위키피디아
https://ko.wikipedia.org/wiki/%EB%B2%84%ED%8D%BC_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99
[요약]
버퍼는 "임시 데이터 보관소" 이다.
데이터 전송과정 : [ 장치 A ] -> [ 버퍼 ] -> [ 장치 B ]
[사용 목적]
1. 입출력 장치 간 전송속도차이 문제를 해결한다.
- 입력 장치에 비해 출력 장치의 전송속도가 매우 느릴 때 사용함
- 예를 들어
데이터 전송 속도에 대해
출력 장치는 1 초당 10개의 데이터를 전송받을 수 있고
입력 장치는 1 초당 100개의 데이터를 전송할 수 있을 때
버퍼가 없다면?
물리적으로 출력 장치의 데이터 전송 속도를 입력 장치에 맞출 수 없고
입력 장치의 속도를 출력 장치의 속도에 맞출 경우 입력 장치의 효율을 크게 낮추게 된다.
(입력 장치가 1초에 100개 데이터를 전송시킬 수 있는데 10개만 전송시키는 꼴)
-즉 입력장치에서 버퍼로 데이터를 빠르게 보낸 뒤,
버퍼에 저장된 데이터를 출력장치 속도에 맞춰 사용하게 된다.
2. 대용량 데이터 전송 시, 버퍼의 크기만큼 데이터를 나눠서 보냄으로써 장치의 부하를 낮춘다.
- 만약 1,000개의 데이터를 보낼 때,
입출력 장치가 한 번에 다룰 수 있는 데이터 수가 1,000개 보다 작다면 데이터를 나눠서 보내야 한다.
이 때 입출력 장치가 처리할 수 있게 데이터를 나눠 보내는 역할을 버퍼가 수행하게 된다.
- 만약 입력장치에 데이터가 들어오자마자 바로 출력장치에 보내게 되면
메모리 엑세스 횟수가 많아지면서 장치에 큰 부하가 걸리게 된다.
따라서 입력 장치에서 들어오는 값을 버퍼에서 보관하고
버퍼에 충분한 크기의 데이터가 쌓인다면 출력 장치로 데이터를 전송함으로써
메모리 엑세스 및 기타 작업 횟수를 줄여주고, 장치의 부하를 낮춰준다.
2.1 이 때 버퍼를 채우는 과정 및 버퍼를 활용하는 방법을 버퍼링(buffering)이라고 정의한다.
2.2 버퍼에 충분한 크기의 데이터가 채워지기 전에 데이터를 출력하는 것을 플러시(flush)라고 정의한다.
flush는 입력된 데이터를 바로 사용한 뒤 버릴 수 있지만
그만큼 많은 자원이 투자되기 때문에 효율적이라고 하긴 어렵다.
'기타' 카테고리의 다른 글
[축구] K리그 올스타 선수명단 확정(오피셜) (0) | 2024.07.23 |
---|---|
[축구] 토트넘 핫스퍼 아시아 투어 선수명단 확정(오피셜) (1) | 2024.07.23 |