Forum: Mikrocontroller und Digitale Elektronik FIFO - Verständnisfrage


von Jonathan K. (burgerohnealles)


Lesenswert?

Hallo,

FIFO heißt ja "First In First Out", habe ich es richtig verstanden, dass 
wenn ich einen Stack habe und ein Element hinzufüge, dass das am Anfang 
hinzugefügt wird (weil "First In"). Und beim Auslesen am Anfang 
ausgelesen wird (weil "First Out")?

Liege ich komplett daneben oder ist es richtig?

Danke
burgerohnealles

von Christian B. (casandro)


Lesenswert?

Nein, ein Stack ist ein Stapel. Wenn Du da 10 Dinge nacheinander drauf 
legst, ist das letzte ganz oben und somit das, was Du als erstes wieder 
bekommen kannst.

Ein FIFO ist so was wie ein Gleis bei der Modelleisenbahn. Du kannst 10 
Züge drauf fahren lassen, und die kommen genau in der gleichen 
Geschwindigkeit auch wieder raus.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Jonathan K. schrieb:
> Liege ich komplett daneben oder ist es richtig?

Du liegst falsch. Bei einem Stack handelt es sich um ein LIFO (Last In 
First Out).

von dd (Gast)


Lesenswert?

Hallo!

Ein Stack ist kein FIFO.
Wenn du ein Element auf den Stack ablegst stapeln sich ja alle 
nachfolgenden darüber. Daraus folgst das Element welches du als erstes 
auf den Stack gelegt hast bekommst du als letztes wieder heraus. -> LIFO 
(oder umgekehrt: Das Element das du als letztes auf den Stack gelegt 
hast bekommst du wieder als erstes heraus).

L.g.

von Fabian O. (xfr)


Lesenswert?

Nein, genau falsch.

FIFO kannst Du Dir wie ein Warteschlange (z.B. am Postschalter) 
vorstellen. Zuerst stellt sich Person A an, dann Person B und dann 
Person C. Bedient wird als erstes Person A, Person B als zweites und 
zuletzt Person C. Derjenige, der zuerst angekommen ist (First In, also 
hier Person A) wird als erstes bedient (First Out).

Ein Stack ist dagegen wie ein Stapel Papier. Du legst zuerst Blatt A auf 
den Stapel, dann Blatt B und dann Blatt C. Jetzt entnimmst Du das 
oberste Blatt wieder vom Stapel und hast Blatt C in der Hand. D.h. das 
Blatt, das Du zuletzt auf den Stapel gelegt hast (Last In), nimmst Du 
als erstes wieder vom Stapel (First Out). Ein Stack funktioniert also 
nach dem LIFO-Prinzip.

Edit: Oh je, viel zu spät. :-)

von Jonathan K. (burgerohnealles)


Lesenswert?

Fabian O. schrieb:
> FIFO kannst Du Dir wie ein Warteschlange (z.B. am Postschalter)
> vorstellen. Zuerst stellt sich Person A an, dann Person B und dann
> Person C. Bedient wird als erstes Person A, Person B als zweites und
> zuletzt Person C. Derjenige, der zuerst angekommen ist (First In, also
> hier Person A) wird als erstes bedient (First Out).
>
> Ein Stack ist dagegen wie ein Stapel Papier. Du legst zuerst Blatt A auf
> den Stapel, dann Blatt B und dann Blatt C. Jetzt entnimmst Du das
> oberste Blatt wieder vom Stapel und hast Blatt C in der Hand. D.h. das
> Blatt, das Du zuletzt auf den Stapel gelegt hast (Last In), nimmst Du
> als erstes wieder vom Stapel (First Out). Ein Stack funktioniert also
> nach dem LIFO-Prinzip.

Ok. Sehr gut erklärt!

Aber wie nennt man dann das, wenn es z.B. nach dem FIFO-Prinzip, wie im 
Beispiel mit der Warteschlange, geht?


Danke
burgerohnealles

von Peter D. (peda)


Lesenswert?

Jonathan K. schrieb:
> ber wie nennt man dann das, wenn es z.B. nach dem FIFO-Prinzip

FIFO oder Queue


Peter

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Jonathan K. schrieb:
> Aber wie nennt man dann das, wenn es z.B. nach dem FIFO-Prinzip, wie im
> Beispiel mit der Warteschlange, geht?

FIFO

von Fabian O. (xfr)


Lesenswert?

Eine gängige Softwareimplementierung eines FIFOs wäre ein Ringpuffer, 
falls Du das suchst.

Oder eben das Wort "FIFO" als Kurzform für "Pufferspeicher nach dem 
FIFO-Prinzip". ;-)

von Jonathan K. (burgerohnealles)


Lesenswert?

Fabian O. schrieb:
> Eine gängige Softwareimplementierung eines FIFOs wäre ein Ringpuffer,
> falls Du das suchst.
>
> Oder eben das Wort "FIFO" als Kurzform für "Pufferspeicher nach dem
> FIFO-Prinzip". ;-)

Ok. Danke. Ich habe nicht nach etwas speziellem gesucht, wollte einfach 
wissen was das ist, weil das häufig in der Elektronik/Programmierung 
vorkommt.

MfG
burgerohnealles

von Falk B. (falk)


Lesenswert?

@  Jonathan K. (burgerohnealles)

>Aber wie nennt man dann das, wenn es z.B. nach dem FIFO-Prinzip, wie im
>Beispiel mit der Warteschlange, geht?

Siehe FIFO. Man könnte ihn auch Kurzzeitpuffer, Zwischenpuffer, 
Spitzlastpuffer oder Kartoffelpuffer nennen ;-)

von Karl H. (kbuchegg)


Lesenswert?

Es mag untergegangen sein (wurde weiter oben schon erwähnt)

LIFO  verhält sich zu    Stack      so wie
FIFO               zu    Queue  (sprich: 'Kju')

Queue ist einfach nur englisch für Warteschlange.

von Davis (Gast)


Lesenswert?

(sprich: 'Kju')

Ist das nicht der Wissenschaftler aus den James-Bond-Filmen?

von Falk B. (falk)


Lesenswert?

Nö, das pandimensionale Wesen aus Star Trek - Next Generation (er ist 
genial!)

Energize!

von Ulrich P. (uprinz)


Lesenswert?

Falk Brunner schrieb:
> @  Jonathan K. (burgerohnealles)
>
> Siehe FIFO. Man könnte ihn auch Kurzzeitpuffer, Zwischenpuffer,
> Spitzlastpuffer oder Kartoffelpuffer nennen ;-)

Kartoffelpuffer sind eher ein Beispiel von LIFO, weil man die, wenn sie 
überlappend auf dem Teller präsentiert werden auch eher von oben nach 
unten weg futtert...

SCNR :)

von Davis (Gast)


Lesenswert?

Falk Brunner schrieb:

> Energize!

Das ist jetzt aber Batteriewerbung.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Ulrich P. schrieb:
> Kartoffelpuffer sind eher ein Beispiel von LIFO, weil man die, wenn sie
> überlappend auf dem Teller präsentiert werden auch eher von oben nach
> unten weg futtert...

Das ist eine Sache der Betrachtungsweise...

Aus der Sicht des Verdauungstraktes handelt es sich eindeutig um ein 
FIFO.

> SCNR :)

Dito.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.