Buffer (geheugen)
Uiterlijk
Een buffer is een deel van het computergeheugen waarin gegevens geplaatst kunnen worden om later uitgelezen te worden. Een buffer vormt een wachtrij die asynchrone communicatie mogelijk maakt en wordt ingezet om het schrijven en lezen van gegevens niet tegelijk plaats te laten vinden. Het gebruik van een buffer noemt men buffering of bufferen.
Buffers worden op diverse manieren gebruikt, waaronder:
- Invoerapparatuur: Bijvoorbeeld in de toetsenbordbuffer wordt opgeslagen welke toetsen ingedrukt worden. Het BIOS van op de IBM gebaseerde PC's gebruikt een ringbuffer met ruimte voor 15 toetsen. Onder Windows hebben toetsenbord en muis een gecombineerde Console Input Buffer.[1]
- Bijvoorbeeld bij streaming media wordt door het gebruik van een buffer een soepele weergave bereikt: doordat de gedownloade gegevens in een buffer worden opgeslagen kan er een zekere veiligheidsmarge ingebouwd worden. De buffer bevat typisch gegevens voor een paar seconden afspelen. Als de downloadsnelheid niet constant is, of de gegevensstroom even onderbroken wordt, kan afspelen doorgaan tot de buffer leeg is. Als voor die tijd de gegevens weer binnenkomen, wordt het afspelen niet onderbroken.
- Voor het weergeven van computergraphics wordt vaak een dubbele buffer gebruikt: twee buffers met elk een apart gebied van het geheugen. Een van de twee gebieden is wat op het scherm afgebeeld wordt. Het andere gebied wordt gebruikt om een nieuwe afbeelding op te bouwen. Als dat gereed is worden de buffers omgewisseld. Zo krijgt men een ononderbroken weergave.
Er kunnen diverse problemen optreden met buffering, waaronder:
- bufferoverloop - een veiligheidslek waarbij er te veel gegevens in de buffer geplaatst worden, en dus buiten het voor de buffer gereserveerde deel van het geheugen terechtkomen.
- Als bijvoorbeeld de in het BIOS geïmplementeerde toetsenbordbuffer vol zit, zal de interne luidspreker een pieptoon produceren.
- bufferleegloop - het leegraken van de buffer, doordat gegevens sneller worden gelezen dan ze geleverd worden. In het geval van streaming media wordt de weergave dan onderbroken. In de vroege dagen van de cd-branders kwam het vaak voor dat de buffer leeg raakte en de cd weggegooid kon worden.