Wikipedia · einfach zusammengefasst · Stand
Puffer (Informatik)
Ein Puffer speichert die Daten in der Regel zeitweise und kann in einem flüchtigen, aber auch in einem nichtflüchtigen Speicher angesiedelt sein.
Inhalt5 Abschnitte
Grundidee und Aufgabe von Puffern
Puffer (englisch buffer) sind in Informatik und Telekommunikation Speicher zur Zwischenlagerung von Daten. Sie nehmen Daten meist nur zeitweise auf und können sowohl in flüchtigem als auch in nichtflüchtigem Speicher liegen. Ihre Struktur richtet sich nach ihrer Aufgabe: Sie können Daten etwa in einer festen Reihenfolge weitergeben, Programmzustände sichern, häufig benötigte Daten schneller bereitstellen oder Speicherplatz dynamisch reservieren.
Puffer können als Hardware oder Software umgesetzt werden; die überwiegende Zahl wird softwareseitig realisiert. Sie sind wichtig, weil Verarbeitungsschritte oft unterschiedlich schnell arbeiten oder Daten zu bestimmten Zeitpunkten zuverlässig verfügbar sein müssen.
Warteschlangen und FIFO-Puffer
Piping- oder Queueing-Puffer gleichen Unterschiede in der Verarbeitungsgeschwindigkeit aus. Wenn ein Verarbeitungsschritt vorübergehend langsamer ist, werden ankommende Daten im Puffer zwischengelagert, bis sie bearbeitet werden können. So kann ein Stau toleriert werden.
Sie bilden eine Warteschlange und folgen dem Prinzip First In – First Out (FIFO): Das zuerst gespeicherte Element wird auch zuerst wieder entnommen. Technisch werden solche Puffer häufig als Ringpuffer implementiert.
Typische Anwendungen sind die Druckwarteschlange, die Aufträge für einen Drucker bereithält, sowie die Interprozesskommunikation, also die Kommunikation zwischen System- und Anwendungsprogrammen.
Stack: Zustände in umgekehrter Reihenfolge
Ein Stack (Stapel) speichert einen Zustand, wenn der Programmablauf unterbrochen wird oder ein Programm in ein Unterprogramm „absteigt“. Er folgt dem Prinzip Last In – First Out (LIFO): Das zuletzt abgelegte Element wird zuerst wieder entnommen. Dadurch kann ein Programm nach einer Unterbrechung genau an der Stelle fortfahren, an der diese stattfand. Stacks können außerdem Daten für eine spätere Bearbeitung vormerken.
Der Stack gehört zu den frühesten Speichersystemen der Computertechnik. Auf Ebene der Maschinensprache wird er beispielsweise mit den Anweisungen push/pop umgesetzt; diese wirken direkt auf den Stackpointer des Mikroprozessors.
Ein Nachteil ist seine feste Größe. Ein programmtechnisch nicht abgefangener Stacküberlauf ist ein Sonderfall eines Pufferüberlaufs. Er ist ein schwerer, gefahrenträchtiger Programmierfehler und kann eine Angriffsbasis für Malware sein.
Cache und Mapping für schnellen Zugriff
Ein Cache ist ein Puffer für den schnelleren Zugriff auf Daten eines langsameren Speichermediums. Besonders bei Hardware wird in diesem Zusammenhang von Mapping gesprochen. Beides bedeutet, einen Datenbereich in einem Speicher abzubilden.
Beim Einlesen werden Daten zusätzlich im Cache gespeichert. Bei erneutem Lesen können sie direkt daraus übernommen werden. Die Daten sind über ihre Adresse frei zugänglich; die Adressierung des darunterliegenden Speichermediums wird nachgebildet. Schreibzugriffe erfolgen während des laufenden Betriebs nur auf das Abbild, also indirekt. Beim sequentiellen Lesen verhält sich ein Cache wie ein FIFO-Puffer. Ein paralleles Verfahren erlaubt, eine Seite des gemappten Bereichs unabhängig davon zu füllen, wie Daten ausgelesen werden.
Beim Schreiben auf Festplatte oder USB-Stick arbeitet das Betriebssystem an einem gemappten Datensatz und kann dadurch schneller arbeiten. Endgültig geschrieben wird bei der Festplatte etwa beim Sektorwechsel, beim USB-Stick beim „Auswerfen“. Scheitert die Übertragung durch einen Ausfall von System, Leitung oder Speichereinheit oder durch vorschnelles Entfernen, gehen die Daten verloren.
Zeitkritische Anwendungen verwenden beispielsweise den Framebuffer eines Monitors. Er liegt in einem geschützten Speicherbereich oder auf der Grafikkarte und kann vom Grafiktreiber unabhängig von der Ausleserate des Anzeigegeräts gefüllt werden. Sonderformen sind Doppel- und Dreifachpufferung. Auch beim Brennen einer CD sind solche Puffer nötig, weil eine Unterbrechung der Datenversorgung einen Fehler verursachen würde.
Virtueller Speicher, Heap und Zwischenablage
Virtual Memory (virtueller Speicher) hält Daten eines schnelleren Speichermediums im langsameren Medium vor, indem derzeit nicht benutzte Datensätze ausgelagert werden. Dadurch kann der meist teure schnelle Speicher kleiner ausgelegt werden; das Virtual Memory täuscht einen deutlich größeren aktiven Speicher vor. Beim Swapping wird ein kompletter inaktiver Prozess ausgelagert, beim Paging ein Speicherblock. Ein typischer Pagebuffer ist die Auslagerungsdatei. Kriterien für die Auswahl sind unter anderem FIFO, least recently used (LRU, „am längsten ungenutzt“), least frequently used (LFU, „am seltensten genutzt“) und not recently used (NRU, „zuletzt ungenutzt“).
Auch der Heap dient der Datenstrompufferung. Programme reservieren dafür Speicher zusätzlich zu ihrem geladenen Programmcode und füllen ihn später mit Daten. Heaps beruhen heute auf dynamischer Speicherreservierung, die das Betriebssystem auf Anforderung des Programms bedient. Typische Befehle dafür sind malloc() und realloc().
Clipboarding bezeichnet Puffer mit einer festen Zahl von Plätzen, die unabhängig belegt und gelesen werden können. Die Zwischenablage ist ein vom Betriebssystem bereitgestellter, anwendungsübergreifender Kleinspeicherbereich. Sie speichert im Allgemeinen nur einen Datensatz; ein neuer Datensatz überschreibt den vorherigen.
Lernvideos zu Puffer (Informatik)
2:44
Was ist ein Puffer?
Chemie - simpleclub · 102.095 Aufrufe
5:01
Puffer in der Chemie | Chemie Tutorial
Studytiger - Chemie · 32.786 Aufrufe
5:54
Puffergleichung / Henderson-Hasselbalch-Gleichung
Chemie - simpleclub · 495.567 Aufrufe
8:46
Puffergleichung (Henderson-Hasselbalch-Gleichung) | Chemie Tutorial
Studytiger - Chemie · 25.124 Aufrufe