Puffer (Informatik)

Puffer (Informatik)

Puffer (engl. Buffer) sind in der Informatik und Telekommunikation Speicher für die Zwischenlagerung von Daten. Je nach Aufgabe kann der Puffer unterschiedlich strukturiert sein.

Ein Puffer speichert die Daten in der Regel zeitweise, und kann in einem flüchtigen, aber auch in einem nichtflüchtigen Speicher angesiedelt sein.

Inhaltsverzeichnis

Formen von Pufferspeicherung

Piping und Queueing (FIFO-Buffer)

Hauptartikel: Pipe (Informatik)

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 (engl. pipe ‚Rohr‘ oder queue ‚Warteschlange‘) und funktionieren nach dem First In – First Out-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.

Typische Anwendungen sind die Druckwarteschlange, die Aufgaben für einen Drucker puffert, oder die Kommunikation von System- und Anwendungsprogrammen untereinander, die Interprozesskommunikation.

Stacking (LIFO-Buffer)

Hauptartikel: Stapelspeicher

Puffer zum Speichern eines Zustandes während einer Unterbrechung oder dem „Abstieg“ in ein Unterprogramm nennt man im allgemeinen Stack; sie funktionieren nach dem Last In – First Out-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.

Der Stack gehört zu den frühesten Speichersystemen der Computertechnik, und wird auch auf Ebene der Maschinensprache (push/pop) realisiert, der direkt auf den Stackpointer des Mikroprozessors einwirkt. Großer Nachteil des Stacks ist, dass er eine feste Größe hat – unabgefangener Überlauf führt zum Pufferüberlauf, einem schweren und gefahrenträchtigen Programmierfehler und Angriffsbasis zahlreicher Malware.

Caching und Mapping

Hauptartikel: Cache, Memory mapping

Puffer für den schnelleren Zugriff auf Daten auf einem langsamen Speichermedium nennt man Cache (‚Stapel‘), insbesondere bei Hardware spricht man von Mapping (engl. ‚auf einer Karte eintragen‘)

Beides heißt, einen Datenbereich in einem Speicher abzubilden. 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. Schreibzugriffe erfolgen im laufenden Betrieb nur auf das Abbild (indirekter Zugriff).

Beim sequentiellen Lesen von Daten entspricht das Verhalten des Caches einem FIFO-Puffer, ein paralleles Verfahren hat den Vorteil, dass die eine Seiten des gemappten Bereichs unabhängig davon befüllt werden kann, wie die die Daten ausgelesen werden sollen.

Mapping wird etwa typischerweise bei dem Schreiben auf eine Festplatte oder einen USB-Stick eingesetzt: Das Betriebssystem arbeitet nur an einem vom Festspeicher gemappten Datensatz, und kann daher schneller arbeiten. Endgültig geschrieben wird bei der Festplatte etwa bei Sektorwechsel, beim USB-Stick beim „Auswerfen“ – können die Daten nicht korrekt übertragen werden (Versagen von System, Leitung oder Speichereinheit, vorschnelles Entfernen), sind sie verloren.
Ein anderes Einsatzgebiet sind zeitkritische Anwendungen. Ein Beispiel ist der Framebuffer des Monitors, der in einem geschützten Speicherbereich oder auf der Grafikkarte liegt, und vom Grafiktreiber unabhängig von der Ausleserate des Anzeigegeräts befüllt werden kann. Sonderformen sind Doppelpufferung und Dreifachpufferung. Auch für das Brennen einer CD, bei denen eine Unterbrechung in der Versorgung mit Daten einen Fehler zur Folge hätte, benötigt man solche Puffer.

Swapping und Paging (Virtual Memory)

Hauptartikel: Virtuelle Speicherverwaltung

Ziel des Virtual Memory (virtueller Speicher) ist, Daten aus einem schnelleren Speichermedium im langsameren vorzuhalten, indem derzeit nicht benutzte Datensätze ausgelagert werden. Dadurch kann der – meist teure – schnelle Speicher kleiner dimensioniert werden – das Virtual Memory gaukelt einen viel größeren aktiven Speicher vor. Dabei wird beim Swapping ein kompletter inaktiver Prozess, beim Paging ein Speicherblock ausgelagert. Typischer Pagebuffer ist die Auslagerungsdatei.

Typische Konzepte über die Kriterien, welche Prozesse/Daten geswappt werden, sind neben FIFO etwa least recently used (‚am längsten ungenutzt‘, LRU), least frequently used (‚am seltensten genutzt‘, LFU) oder not recently used (‚zuletzt ungenutzt‘, NRU).

Heaping

Hauptartikel: Dynamischer Speicher

Auch Speicherbereiche, die Programme für die spätere Bearbeitung mit Daten füllen, dienen der Datenstrompufferung. Hierzu reservieren sich die Programme einen über ihren geladenen Programmcode hinausgehenden Speicher. Heute beruht der Heap (engl. für Halde, daher auch Haldenspeicher) auf dynamischer Speicherreservierung, die das Betriebssystem auf Anforderung des Programms bedient – typische Programmbefehle zur Speicheranforderung sind malloc() und realloc().

Clipboarding

Clipboarding umfasst die Puffer, die nur eine fixierte Anzahl von Plätzen haben, die als solche aber unabhängig belegt und gelesen werden können. Die Zwischenablage etwa ist ein betriebssysteminterner, anwendungsübergreifender Kleinspeicherbereich für das Hantieren mit Daten am PC, sie erlaubt im Allgemeinen nur einen Datensatz, der vorherige wird immer überschrieben.


Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Puffer — Puffer, teils synonym Buffer (engl., dt. unter anderem Reserve, Dämpfer), teils auch Pufferspeicher, steht für: Knautschzone, Bauteile in der Sicherheitstechnik, die Aufprallenergie durch Deformation absorbieren Geoinformationssystem#Puffer, das… …   Deutsch Wikipedia

  • Puffer-Speicher — Puffer (engl. Buffer) sind in der Informatik und Telekommunikation Speicher für die Zwischenlagerung von Daten. Je nach Aufgabe kann der Puffer unterschiedlich strukturiert sein. Der Puffer enthält transiente Daten, und kann in einem flüchtigen,… …   Deutsch Wikipedia

  • Z-Puffer — Das Z Buffering (auch Depth Buffering, Tiefenpuffer[1] oder Tiefenspeicher Verfahren[2]) ist ein Verfahren der Computergrafik zur Verdeckungsberechnung, also um die vom Betrachter aus sichtbaren dreidimensionalen Flächen in einer Computergrafik… …   Deutsch Wikipedia

  • Referenz (Informatik) — Dieser Artikel oder Abschnitt ist nicht hinreichend mit Belegen (Literatur, Webseiten oder Einzelnachweisen) versehen. Die fraglichen Angaben werden daher möglicherweise demnächst gelöscht. Hilf Wikipedia, indem du die Angaben recherchierst und… …   Deutsch Wikipedia

  • Container (Informatik) — Ein Container in der Informatik ist ein abstraktes Objekt, das Elemente des gleichen Typs speichert. Je nach Anforderungen verwendet man dabei unterschiedliche Datenstrukturen, um einen Container zu realisieren. Beispiele für Container sind Array …   Deutsch Wikipedia

  • Buffer — Puffer, teils synonym Buffer, teils auch Pufferspeicher, steht: in der Wärme und Heiztechnik für eine Masse, die Wärme zwischenspeichert, Puffer (Heiztechnik) in der Elektrotechnik für ein Speichermedium für elektrische Energie, siehe… …   Deutsch Wikipedia

  • Pufferspeicher — Puffer, teils synonym Buffer, teils auch Pufferspeicher, steht: in der Wärme und Heiztechnik für eine Masse, die Wärme zwischenspeichert, Puffer (Heiztechnik) in der Elektrotechnik für ein Speichermedium für elektrische Energie, siehe… …   Deutsch Wikipedia

  • Slow Start — TCP (Transmission Control Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Zuverlässiger bidirektionaler Datentransport TCP im TCP/IP‑Protokollstapel: Anwendung HTTP SMTP … Transport …   Deutsch Wikipedia

  • TCP-Header — TCP (Transmission Control Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Zuverlässiger bidirektionaler Datentransport TCP im TCP/IP‑Protokollstapel: Anwendung HTTP SMTP … Transport …   Deutsch Wikipedia

  • DDR (EDV) — Double Data Rate (DDR, auch: doublepumped) bezeichnet in der Computertechnik ein Verfahren, mit dem Daten auf einem Datenbus mit doppelter Datenrate übertragen werden können. Ähnliche Verfahren sind Quadruple Data Rate (QDR) mit vierfacher und… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”