Queue Kapazität
Speicherbedarf einer Queue (Ringpuffer) bei fester Kapazität: Speicher = Kapazitaet · Elementgroesse. FIFO-Datenstruktur mit konstantem Pro-Element-Aufwand.
Queue Kapazität berechnen
Speicherbedarf einer Queue (Ringpuffer) bei fester Kapazität: Speicher = Kapazitaet · Elementgroesse. FIFO-Datenstruktur mit konstantem Pro-Element-Aufwand.
- Speicher — Speicherbedarf
- Kapazitaet — Kapazität
- Elementgroesse — Elementgröße
Worum geht es?
Eine Queue (First In First Out) wird in eingebetteten Systemen typischerweise als Ringpuffer fester Größe mit Head- und Tail-Index implementiert. Der Speicherbedarf ist Kapazität mal Elementgröße — Enqueue und Dequeue laufen in O(1) ohne dynamische Allokation.
Praktische Einsatzgebiete sind UART-Empfangspuffer, Druckwarteschlangen, Job-Queues in Schedulern, BFS-Implementierungen in Graphen-Algorithmen und Message-Queues in Embedded-Betriebssystemen.
Die Formel
Speicher = Kapazität · Elementgröße
Umstellungen:
Kapazität = Speicher / Elementgröße
Elementgröße = Speicher / KapazitätDie Variablen
| Symbol | Bedeutung | Einheit | Erklärung |
|---|---|---|---|
| Kapazität | Kapazität | — | Maximale Anzahl Elemente. |
| Elementgröße | Elementgröße | Byte | Größe eines Elements. |
| Speicher | Speicherbedarf | Byte | Gesamter belegter Speicher. |
Minimal-Beispiel
UART-RX-Puffer für 128 Byte-große Frames:
Speicher = 128 · 1
= 128 BytePraxis-Beispiele
Beispiel 1 — Message-Queue im RTOS
Eine FreeRTOS-Queue für 16 Messages à 32 Byte:
Speicher = 16 · 32
= 512 ByteBeispiel 2 — BFS-Frontier
Eine BFS auf einem Graphen mit 10⁶ Knoten benötigt im Worst Case eine Queue für alle Knoten (8 Byte Pointer):
Speicher = 10⁶ · 8
= 8 MBBeispiel 3 — Audio-Streaming
Ein Audio-Ringpuffer für 1 Sekunde Stereo-PCM (44,1 kHz, 16-Bit):
Kapazität = 44 100 · 2 = 88 200 Samples
Elementgröße = 2 Byte
Speicher = 176 400 Byte
≈ 172 KiB