Zum Inhalt springen
L

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
  1. 1. Grundidee und Aufgabe von Puffern
  2. 2. Warteschlangen und FIFO-Puffer
  3. 3. Stack: Zustände in umgekehrter Reihenfolge
  4. 4. Cache und Mapping für schnellen Zugriff
  5. 5. Virtueller Speicher, Heap und Zwischenablage

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)

Weiterlesen

Informatik Als einfache Rechengeräte leisteten Abakus und später der Rechenschieber unschätzbare Dienste. 1641 konstruierte Blaise Pascal eine mechanische … Arbeitsspeicher Zugriffe auf den Arbeitsspeicher durch den Hauptprozessor werden zumeist über ein oder mehrere Pufferspeicher oder Cache-RAMs (kurz „Cache“) optimiert. Im Cache … Daten Daten bezeichnet als Plural von Datum Fakten, Zeitpunkte oder kalendarische Zeitangaben. Als Pluralwort steht es für durch Beobachtungen, Messungen u. a. Toleranz Toleranz, auch Duldsamkeit, bezeichnet als philosophischer und sozialethischer Begriff ein Gewährenlassen und Geltenlassen anderer oder fremder … Warteschlange (Datenstruktur) In der Informatik bezeichnet eine Warteschlange (englisch queue [kju]) eine häufig eingesetzte Datenstruktur. Sie dient als Puffer zur Zwischenspeicherung … Interprozesskommunikation Deadlocks. Bearbeiten. → Hauptartikel: Deadlock (Informatik). Eine Menge von Prozessen befindet sich in einem Deadlock-Zustand, wenn jeder Prozess aus der … Maschinensprache Mit einem Assembler: Assemblersprachen formulieren die Prozessorbefehle des Maschinencodes als Mnemonics in einer einfachen Syntax. Dieser Quelltext wird … Datenspeicher Chemo-optische Speicher, die durch einen chemischen Prozess Daten in Form von Lichtbildern (statischen und bewegten Bildern sowie Lichtton) speichern. Die … Hardware Unterteilung · Ausgabegeräte (Drucker, Bildschirm, Beamer, Lautsprecher …) · Eingabegeräte (Tastatur, Maus, Joystick …) · Einlesegeräte (Mikrofone, … Festplatte Unter einer Festplatte versteht man einen Bestandteil der Hardware, der der dauerhaften Speicherung digitaler Daten dient, was auf der Ebene der …