Queuing – Warteschlangentheorie für Embedded-Software

Seite: 10/12

Beispiel 2: Begrenzen des Queue-Überlaufs

Eine Software-Task produziert Messages und platziert diese in einer Queue - zu willkürlichen Zeiten, aber mit einer mittleren Ankunftszeit von M = 30 Millisekunden. Eine andere Software-Task holt die Messages aus der Queue ab und verarbeitet sie. Die Queue ist auf maximal 5 Messages begrenzt, andernfalls läuft sie über, siehe Abbildung 8. Was ist die höchste mittlere Message-Verarbeitungszeit, die die Queue-Overflow-Wahrscheinlichkeit auf unter ein Zehntausendstel Prozent begrenzt?

Wir verwenden die Formel zum Berechnen der Wahrscheinlichkeit, dass mindestens K Messages in der Queue sein werden:

K

P [ > K enqueued ] = (R)

und setzen P auf weniger als 0,0001%, wenn K = 6 oder mehr Messages für den Queue-Überlauf. Das ergibt:

6

P [ >6 enqueued ] = (R) < 0,000001

6 6 6 -6

Und da R = A / M und M=0,030 Sekunden, bekommen wir (R) = (A) / (0,030) < 1*(10)

Ergebnis: A < 1*(1/10)*0,030 = 0,003 Sekunden.

Demnach muss die mittlere Verarbeitungszeit der Task, die Messages verarbeitet, kleiner als 3 Millisekunden sein, wenn wir die Overflow-Verluste in unserer Queue mit einer Kapazität von 5 Messages auf unter 0,0001 Prozent begrenzen wollen.

Was wäre unter diesen Umständen die mittlere Queue-Länge?

Wir nehmen unsere bewährte Formel: Lavg = R / (1-R).

Berechnet ergibt das: R= 0,003 / 0,030 = 0,1.

Weiter: Lavg = 0,1 / 0,9 = 0,11 Messages.

In der Queue ist durchschnittlich also viel weniger als eine Message! Die meiste Kapazität der 5-Message-Queue wird kaum genutzt, aber dennoch ist sie vorzusehen, damit der Queue-Überlauf auf unter 0,0001 Prozent begrenzt wird.

(ID:44833511)