2010-07-07 14 views

Antwort

21

Ein Puffer ist nur ein Container, um Daten für eine kurze Zeit zu speichern, wenn zu einem bestimmten Zeitpunkt mehr reinkommt, als ein Verbraucher verwenden/verarbeiten kann. Es ist eine First-In-First-Out-Situation - die Daten kommen herein, werden gepuffert und gehen nach einer Weile in der gleichen Reihenfolge aus, in der sie gekommen sind. Ein Cache ist ein Speicher zur Beschleunigung bestimmter Operationen. Die Dinge werden in einen Cache gestellt und sollten mehrfach und immer wieder abgerufen werden. Es gibt keinen "fließenden Cache" -Mechanismus - Daten kommen nicht rein und gehen in der gleichen Reihenfolge aus - aber es ist nur ein Aufbewahrungsbehälter. Die Reihenfolge kann alles sein, wirklich - Gegenstände werden über einen Schlüssel angesprochen, sie "fließen" nicht durch, aber sie werden "hineingelegt" und bleiben dort (bis sie rausgeworfen werden, weil sie nicht benutzt werden, oder weil das System sinkt).

+0

danke Marc, ist jetzt klar – Dhiva

+0

aber wenn Cache ist ein temporärer Datenbehälter, was ist der Unterschied zwischen "Cache" und "verwendet"? Diese beiden Parameter werden angezeigt, wenn Sie "free -m" oder "dstat -m" verwenden. – fanchyna

5

Eine buffer ist eine zeitgenössische Sammlung von Orten, an denen eine riesige Menge an Daten verwaltet oder auseinandergenommen wird. Dies kann grundlegend für die Interaktion mit einer Gruppe von Sammlungsgeräten sein, die große Informationsblöcke benötigen, oder wenn Daten auf viele Weisen gegeben werden müssen, als das, in dem sie gemacht wird, oder selten beträchtlich ist, wenn weniger Blöcke nicht ausreichend sind. Der Vorteil liegt auch hier vor, wenn die gepufferten Daten einmal im Puffer gespeichert und einmal aus dem Puffer abgerufen werden.

Eine cache, auf der anderen Seite, denkt, dass die Daten mehr aus dem Cache abgerufen werden, als sie auf ihnen geschrieben werden. Ziel ist es, die Zugriffe auf den zugrunde liegenden Bestand zu verringern. Buffer ist ein programmierbarer Cache, der vom Betriebssystem im Hauptspeicher verwaltet wird und verwendet wird, um die erforderlichen Daten von der Festplatte zu erhalten, damit sie nicht erneut aus dem Speicher abgerufen werden müssen. Diese Funktion ist vom Betriebssystem verfügbar. Während der Cache tatsächlich eine Hardware ist, die die CPU verwendet, um die effektive Speicherzugriffszeit zu reduzieren.

+0

Ich habe den klaren Unterschied Martin Vielen Dank – Dhiva

-1

Ein Puffer ist wie eine Trommel, er kann Daten speichern und ausspülen ... Auf der anderen Seite wird Cache verwendet, um Ihre Operationen zu beschleunigen.

0

etwas von Wiki über den Unterschied zwischen Buffer und Cache hinzufügen.

Ein Puffer ist eine temporäre Speicherstelle, die traditionell verwendet, da CPU-Anweisungen nicht direkt Daten können in Peripheriegeräten gespeicherten Adresse. Somit wird adressierbarer Speicher als Zwischenstufe verwendet. Zusätzlich kann ein solcher Puffer machbar sein, wenn ein großer Datenblock zusammengebaut oder zerlegt wird (wie von einer Speichereinrichtung gefordert) oder wenn Daten in einer anderen Reihenfolge als der, in der sie erzeugt werden, geliefert werden können. Außerdem wird ein ganzer Datenpuffer normalerweise sequentiell übertragen (zum Beispiel auf die Festplatte), so Pufferung selbst erhöht manchmal die Übertragungsleistung oder reduziert die Variation oder Jitter der Übertragungslatenz im Gegensatz zu Caching, wo die Absicht ist, zu reduzieren die Latenz. Diese Vorteile sind vorhanden, auch wenn die gepufferten Daten einmal in den Puffer geschrieben werden und einmal aus dem Puffer gelesen werden.

Ein Cache erhöht auch die Übertragungsleistung.Ein Teil der Erhöhung kommt in ähnlicher Weise von der Möglichkeit, dass mehrere kleine Übertragungen zu einem großen Block kombinieren. Aber die Hauptleistungsverstärkung tritt auf, weil es eine gute Möglichkeit gibt, dass dieselben Daten mehrmals aus dem Cache gelesen werden oder dass geschriebene Daten in Kürze gelesen werden. Ein Caches einziger Zweck ist es, Zugriffe auf den zugrunde liegenden langsameren Speicher zu reduzieren. Cache ist normalerweise auch eine Abstraktionsschicht, die entworfen wurde, um aus der Perspektive benachbarter Schichten unsichtbar zu sein.