0 Daumen
378 Aufrufe

Aufgabe:

Warteschlangen/Puffer in Gerätecontrollern sollen dabei helfen, das jeweilige Gerät von der CPU zu entkoppeln. Dies sollt Ihr anhand einer Beispielrechnung illustrieren:

Ein gedachter Gerätecontroller kann ein angeschlossenes Gerät mit einer Datenrate von115200 Bit/s versorgen. Erreicht er die Low-Watermark, löst er einen Interrupt aus, damit derzuständige Prozess aufgeweckt wird und neue Daten an den Controller gesendet werden. Das Aufwecken des Prozesses samt Nachfüllen der Warteschlange im Controller dauert verein-fachend immer 2200 μs. Der Controller verwendetDouble-Buffering, d. h., der nachfüllendeProzess kann in einen Puffer schreiben während der Gerätecontroller Daten aus einem zweitenPuffer liest. Erst, wenn dieser Puffer leer ist, wird auf den anderen Puffer umgeschaltet. Die Dauer für das Umschalten kann in der Rechnung vernachlässigt werden. Welche effektive Datenrate (in Bit/s) zum angeschlossenen Gerät ergibt sich in folgendenFällen?

a) Größe des Puffers: 1 Byte. Low-Watermark: 0 Byte.

b) Größe des Puffers: 80 Byte. Low-Watermark: 0 Byte.

c) Größe des Puffers: 1200 Byte. Low-Watermark: 16 Byte.

d) Wie müsste die Low-Watermark gewählt werden, damit die Netto-Datenrate des Gerätsrechnerisch erreicht wird?

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Effektive Datenrate (in Bit/s) Berechnung

Um die effektive Datenrate zu berechnen, müssen wir die Rate berücksichtigen, mit der Daten zum angeschlossenen Gerät übertragen werden können, die Zeit, die benötigt wird, um den Prozess aufzuwecken und den Puffer wieder zu füllen, sowie die Arbeitsweise von Double-Buffering und die Einstellung der Low-Watermark.

a) Größe des Puffers: 1 Byte. Low-Watermark: 0 Byte.

Da die Größe des Puffers 1 Byte und die Low-Watermark 0 Byte ist, wird nach jeder Übertragung von 1 Byte der Prozess aufgeweckt, um den Puffer neu zu füllen.

Übertragungsrate: 115200 Bit/s \(=\) 115200 Byte/s / 8 \(=\) 14400 Byte/s

Aufweck- und Nachfülldauer: 2200 μs \(=\) 2,2 ms

Die effektive Datenrate \(R\) in Bit/s kann mit folgender Formel berechnet werden:
\( R = \frac{Byte \cdot 8}{Zeit_{Übertragung} + Zeit_{Aufwecken}} \)
Da \(Zeit_{Aufwecken} = 2,2 ms\), und die Übertragungszeit für 1 Byte bei \( \frac{1}{14400} s \) oder \( \approx 0,06944 ms \) liegt, kann man die effektive Datenrate wie folgt berechnen:
\( R = \frac{1 \cdot 8}{0,06944ms + 2,2ms} \)
\( R = \frac{8 \, \text{Bit}}{2,26944 \times 10^{-3} \, \text{s}} \)\( = 3527,65 \, \text{Bit/s} \)

b) Größe des Puffers: 80 Byte. Low-Watermark: 0 Byte.

Übertragungszeit für 80 Byte bei 14400 Byte/s ist \( \frac{80}{14400} s \) oder \( \approx 5,5556 ms \).

Mit einer Aufweck- und Nachfülldauer von 2,2 ms ist die effektive Datenrate dann:
\( R = \frac{80 \cdot 8}{5,5556ms + 2,2 ms} \)
\( R = \frac{640 \, \text{Bit}}{7,7556 \times 10^{-3} \, \text{s}} \)\( = 82501,16 \, \text{Bit/s} \)

c) Größe des Puffers: 1200 Byte. Low-Watermark: 16 Byte.

Für 1200 Byte beträgt die Übertragungszeit \( \frac{1.200}{14.400} s \) oder \( 83,3333 ms \). Da 16 Byte als Low-Watermark gesetzt sind, beginnt der Nachfüllprozess, bevor alle 1200 Byte übertragen sind. Dies ändert jedoch nichts an der Berechnung der effektiven Datenrate, da angenommen wird, dass die Nachfüllung stets rechtzeitig geschieht.

Damit ist die effektive Datenrate:
\( R = \frac{1200 \cdot 8}{83,3333ms + 2,2 ms} \)
\( R = \frac{9600 \, \text{Bit}}{85,5333 \times 10^{-3} \, \text{s}} \)\( = 112245,49 \, \text{Bit/s} \)

d) Low-Watermark für maximale Netto-Datenrate

Um die Netto-Datenrate des Geräts rechnerisch zu erreichen, soll die Aufweck- und Nachfülldauer so minimal wie möglich die Übertragungsrate beeinträchtigen. Damit die Übertragungsrate maximal ist, sollte theoretisch keine Verzögerung durch das Aufwecken entstehen. Praktisch ist dies nicht möglich, aber das Ziel ist es, die Low-Watermark so zu wählen, dass der Eingriff in die Datenübertragung minimiert wird.

Man kann die Low-Watermark so wählen, dass das System den Puffer auffüllt, während gleichzeitig der andere Puffer entleert wird, ohne jemals zu warten. Die tatsächliche Wahl der Low-Watermark hängt von der Übertragungsgeschwindigkeit, der Größe des Puffers und der Aufweck- bzw. Nachfülldauer ab. Im idealen Fall sollte die Übertragungsdauer der Daten ab dem Punkt der Low-Watermark bis der Puffer leer ist, gleich der Aufweck- und Nachfülldauer sein.

Mathematisch kann die benötigte Größe der Low-Watermark wie folgt nicht direkt bestimmt werden, ohne spezifische Bedingungen oder Werte zu kennen, wie z.B. die Größe des Puffers und die genaue Geschwindigkeit, mit der Daten verarbeitet werden können. Es geht darum, die Datenrate so nahe wie möglich an die technische Maximalrate von 115200 Bit/s zu bringen, indem man verhindert, dass der Prozess zu oft aufgeweckt wird und dadurch die Übertragungsleistung leidet.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community