Ringpuffer
Kurz: Ein Ringpuffer ist ein Speicherbereich fester Größe, der wie ein Kreis benutzt wird. Ist das Ende erreicht, geht es am Anfang weiter.
Genauer: Zwei Zeiger (Lesen und Schreiben) wandern im Kreis. Neue Daten werden an der Schreibposition abgelegt, ältere an der Leseposition entnommen. So braucht man weder Kopieren noch Neu-Anlegen von Speicher.
Im Detail
- Voll oder leer: Beide Zustände haben gleiche Zeiger. Man unterscheidet sie mit einem Zähler oder einer freien Lücke.
- Überlauf: Entweder wird das Schreiben gestoppt oder das Älteste überschrieben (zum Beispiel für „die letzten 100 Logzeilen”).
- Einsatz: Audio-Puffer, Netzwerkkarten, Tastatur-Eingabe, Logging, Erzeuger-Verbraucher-Warteschlangen.
- Trick: Bei Größen, die Zweierpotenzen sind, ersetzt eine Bit-Maske die teure Modulo-Rechnung.
Siehe auch: Semaphore