Race Conditions
Wenn zwei Prozesse auf einen gemeinsamen Speicherplatz lesen oder schreiben wollen und das Ergebnis davon abhängt wer wann darauf zugreift, wird in der Informatik speziell in der Interprozesskommunikation Race Conditions genannt.
Um dieses Problem zu lösen wurden Algorithmen entwickelt, die den gegenseitigen Ausschluss der Prozesse gewährleisten. Möchte zum Beispiel Prozess B in die kritische Section, wo gerade Prozess A am arbeiten, zugreifen, muss der Algorithmus dafür sorgen das Prozess B der Zugriff Verboten wird.
Algorithmen die den gegenseitigen Ausschluss von Prozessen gewährleisten:
- Peterson-Algorithmus (für 2 Prozesse)
- Dekker-Algorithmus (für 2 Prozesse)
- Bakery-Algorithmus (für n Prozesse)
Eine Elegantere Lösung lässt sich es mit den Semaphoren realisieren. Mit Semaphoren kann sogar gewährleisten, das mehrere Prozesse gleichzeitig auf dem Speicherplatz zugreifen können. Weitere Elegantere Lösungen bieten Mutexe, Monitore, und Sleep/Wakeup.