01801 Betriebssysteme KE 2 Prüfungsvorbereitung

#4 Synchronisation

Was ist eine race condition?

Eine race condition entsteht, wenn
 
  1. zwei oder mehr Threads / Prozesse einen gemeinsamen Speicherbereich lesen und schreiben, und

  2. das Ergebnis von der zeitlichen Reihenfolge der Ausführung der Prozesse abhängt.
Beispiel
Threads A und B verkaufen Tickets und führen dieselbe Prozedur aus:
 
Zwei mögliche Ausführungsreihenfolgen der Threads A und B ohne Koordinierung bei AnzahlTickets=1:
 
Ein gewünschtes Ergebnis:
 
Ein unerwünschtes Ergebnis (race condition):
 
Thread A verkauft ein nicht existierendes Ticket!

Diskussion