Herunterladen Inhalt Inhalt Diese Seite drucken

Synchronisation - Conrad C-Control II Unit Handbuch

Kompakter steuerungscomputer
Inhaltsverzeichnis

Werbung

5 Programmiersprache C2
Ist die Pause noch nicht vorüber, dann gibt der aktuelle Thread die Programmausführung
sofort an den nächsten Thread ab (vgl. yield).

5.9.6 Synchronisation

In Computersystemen mit parallelen Prozessen kann es zu folgenden problematischen
Situationen kommen:
• Aliasing von Speicherzugriffen
• Konkurrenz mehrerer Prozesse um eine Ressource
Konkurrenz um eine Ressource entsteht beispielsweise, wenn zwei Threads gleichzeitig
Daten über dieselbe serielle Schnittstelle senden wollen. Die serielle Schnittstelle kann aber
nur einen Ausgabepuffer zu einer Zeit bedienen. Folglich kann nur ein Thread gleichzeitig
senden. Der zweite Thread muß warten, bis die Ressource frei ist.
Zur Erläuterung des Aliasing-Problems folgendes Beispiel: Ein Thread fragt zyklisch zwei
Meßkanäle ab und speichert diese in zwei globalen Variablen. Ein paralleler Thread liest
diese globalen Variablen und soll jeweils beide Werte aus einem Meßzyklus einer
Prüffunktion zuführen.
float a, b;
thread measure
{
a = get_channel_a();
b = get_channel_b();
//...
}
thread watch
{
check(a, b);
// ...
}
// Messwerte
77

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis