Puffer
Puffer (engl. Buffer) sind in der Informatik Speicher für die Zwischenlagerung von Daten. Je nach Aufgabe kann der Puffer unterschiedlich strukturiert sein.
Puffer zum Ausgleich von Unterschieden in der Verarbeitungsgeschwindigkeit ermöglichen es, einen Stau in einer Verarbeitung zu tolerieren, in dem die Objekte der Verarbeitung zwecks späterer Verarbeitung zwischengelagert werden. Solche Puffer bilden eine Warteschlange bzw. eine Pipe und funktionieren nach dem FIFO-Prinzip. Technisch werden sie häufig als Ringpuffer implementiert. Puffer können Hardware- oder Softwareseitig implementiert werden, wobei die überwiegende Zahl von Puffern softwareseitig realisiert wird.
Puffer zum Speichern eines Zustandes während einer Unterbrechung oder dem „Abstieg“ in ein Unterprogramm nennt man im allgemeinen Stack; sie funktionieren nach dem LIFO-Prinzip. Sie ermöglichen es dem Programm nach der Unterbrechung genau dort fortzufahren, wo die Unterbrechung stattfand. Stack-Puffer werden auch manchmal benutzt, um Daten in einem Programm für die spätere Bearbeitung vorzumerken.
Puffer für den schnelleren Zugriff auf Daten auf einem langsamen Speichermedium nennt man Cache: beim Einlesen von Daten werden diese zusätzlich im Cache gespeichert, so dass sie beim erneuten Lesen direkt von dort übernommen werden können. Die Daten im Cache sind dabei frei über ihre „Adresse“ zugänglich, wobei die Adressierung des unterliegenden Speichermediums nachgebildet wird. Beim sequentiellen Lesen von Daten entspricht das Verhalten des Caches einem FIFO-Puffer. Solche Puffer werden vor allem für zeitkritische Anwendungen wie das Brennen einer CD benötigt, bei denen eine Unterbrechung in der Versorgung mit Daten einen Fehler zur Folge hätte.