Ringspeicher
-
hallo allerseits,
habe eine Frage und zwar ist mir nicht klar was ein Ringspeicher ist . ist er gleich bedeutend mit FIFO??
wie kann man es programmieren?? ich bin gerade in der Einarbeitungspahse von C und habe deswegen noch meine Schwierigkeiten.MFG, mahdi
-
FIFO und Ringspeicher sind nicht gleichbedeutend. Sie haben eine gewisse Ähnlichkeit. Bei einem Ringspeicher geht es primät darum die letzen x Werte sicher zu speichern. Zahlenbeispiel:
Ich haben einen Puffer in den 10 Elemente reinkommen. Ich schreibe das erste Element an puffer[0], das zweite an puffer[1], ... das zehnte an puffer[9]. Nun ist mein puffer voll und ich fange einfach an den ältesten Wert zu überschreiben. Also kommt mein elfter Wert wieder an puffer[0]... usw...
Ein FIFO arbeitet zwar ähnlich, aber er kennt auch den Zustand "voll" und den Zustand "leer", welche beim Ringpuffer eigentlich nicht interessieren.
-
Oh, das habe ich gerade erst am Sonntag gelernt.
Ein Ringbuffer ist ein Buffer (fester Größe?) der beim Weiterzählen am Ende wieder am Anfang beginnt. Ob das jedoch die korrekte Beschreibung ist kann ich nicht sagen!
TactX hat auf meine Anfrage bezüglich Arrayrotation ein gutes Beispiel gegeben, siehe: http://www.c-plusplus.net/forum/viewtopic-var-t-is-164083.html
Mittlerweile benutze ich Ringpuffer für alle statischen aber periodisch auftretende Werte (wie z.B. Sinustabellen), anstatt sie ständig neu berechnen zu lassen.
Viel Erfolg!
Edit: Vergiss was ich geschrieben habe! Wer hätt's gedacht, TactX war schneller und vermutlich liegt er richtiger. Ich denke meine Variante könnte man Ringtabelle nennen und nicht Ribgbuffer. Ach, ich halt jetzt einfach mal die Klappe ...
-
danke Tactx und timmix bin jetzt um eniges schlauer