EMZETT.
Login

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