24 - 4.6 Thread-Koordinierung: jbuffer [ID:26434]
18 von 18 angezeigt

Zu guter Letzt bleibt nur noch das Vorstellen der nächsten Aufgabe, nämlich der Cellbuffer.

Bei der Cellbuffer sollen zwei Module entwickelt werden.

Zum einen haben wir ein Ringpuffer-Modul, den Cellbuffer selbst.

Der Ringpuffer soll dabei einfache Integerwerte speichern.

Was man dafür benötigt, ist ein Array, ein Leseindex und ein Schreibindex sowie die

Modulooperation, um den richtigen Index zum Lesen bzw. Schreiben zu ermitteln.

Um das Ganze ein bisschen interessanter zu machen, soll der Ringpuffer dabei

nebenläufigen Zugriff unterstützen. Als Einschränkung gilt hierbei jedoch,

dass es nur einen Produzenten gibt, das heißt einen Thread, der etwas in den Ringpuffer hineinschreibt

und mehrere Konsumenten, also mehrere Threads, die etwas aus dem Ringpuffer herausnehmen.

Dabei soll auf Semaphore und blockierende Synchronisation zurückgegriffen werden,

um den Zugriff zwischen Produzenten und Konsumenten zu koordinieren.

Dies dient der Vermeidung von Über- bzw. Unterläufen.

Die Produzenten selbst hingegen sollen untereinander nicht blockierend synchronisiert werden.

Dies soll auf Basis der CAS-Operation stattfinden.

In dem Semaphore-Modul sollt ihr eure eigene Semaphore implementieren.

Diese soll Funktionen zur Initialisierung und Zerstörung bereitstellen,

sowie die aus der Vorlesung bekannten P- und V-Imporationen.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

00:01:20 Min

Aufnahmedatum

2020-12-14

Hochgeladen am

2020-12-14 09:28:37

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen