01.02.2013 Aufrufe

MiCaDo Projektbericht - artecLab - Universität Bremen

MiCaDo Projektbericht - artecLab - Universität Bremen

MiCaDo Projektbericht - artecLab - Universität Bremen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

ab 6 : Die beobachteten Paketverluste waren stets auf einen Überlauf des vom Betriebssystem bereitgestellten<br />

Socket-Puffers zurückzuführen 7 , weil die Cave-Anwendung die ankommenden Pakete nicht<br />

so schnell bearbeiten konnte, wie sie am UDP-Socket eintrafen. Dies lag darin begründet, dass anwendungsseitig<br />

das Rendern der Grafik sowie das Abholen und Bearbeiten der Netzwerkpakete<br />

abwechselnd von einem einzigen Thread vorgenommen wurde, der neue Pakte nur dann abholte,<br />

wenn er gerade nichts anderes zu tun hatte.<br />

Das Workaround bestand daher aus der Einführung eines dedizierten Receiver-Threads, welcher<br />

nichts anderes tut, als Pakete vom UDP-Socket abzuholen und in einer verketteten Liste zwischenzuspeichern,<br />

aus welcher der Hauptthread der Cave-Anwendung sie nacheinander abholt – also in<br />

der Schaffung eines sekundären Paketpufferpools innerhalb der Engine. Unsere Implementierung<br />

versucht hierbei den durch das Memory Management entstehenden Overhead möglichst klein zu<br />

halten, indem sie die Allokation und Freigabe von Heapspeicher auf ein Minimum reduziert. Das<br />

Workaround behebt zwar nicht die Auswirkungen eines Paketverlustes, da es nur die Wahrscheinlichkeit<br />

eines solchen reduziert, dennoch kann sich das Ergebnis sehen lassen: Während des gesamten<br />

Projekttages blieb der Cave nicht ein einziges Mal aufgrund eines Paketverlustes stehen. Eine<br />

Weiterentwicklung der Madness bietet sich jedoch nach wie vor in einer Realisierung der sauberen<br />

Lösung an – der paketverlusttoleranten Reimplementierung des Netzwerkcodes.<br />

6 u.a. aufgrund berechtigter Bedenken, kurz vor einer wichtigen Deadline, bzw. dem Projekttag, möglicherweise mehr<br />

Fehler einzubauen, als am Ende zu beheben.<br />

7 Ist dieser Puffer voll, gehen alle weiteren eintreffenden Pakete verloren.<br />

111

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!