Diskussion:Algorithmus von Peterson
Beispiel 2:
Zwischen Punkt 1 und 2 fehlt aber noch ein Zwischenschritt, wenn etwas "als letzter" gemacht wird? Was kommt vor dem "letzten"? (nicht signierter Beitrag von 217.232.9.82 (Diskussion) 12:44, 19. Jun. 2013 (CEST))
turn-Variable umgekehrt
[Quelltext bearbeiten]Der Algorithmus verwechselte die Bedeutung der turn-Variable. Es setzte sie auf process statt auf other. Allerdings stand in der Warteschleife auch (turn=process) anstatt (turn=other), womit das Programm zwar funktionierte, aber nicht mit der Beschreibung des Beispiels 2 übereinstimmte.
Ich habe die Logik wieder zurückgesetzt, so dass das Programm jetzt der englischen Wikipedia-Fassung des Peterson-Algorithmus entspricht und außerdem mit meinem Buch über Betriebssysteme übereinstimmt.
Man kann davon ausgehen, das der häufigere Fall der ist, dass man als Einziger die kritische Region betritt. In diesem Fall wird die andere interested-Komponente auf FALSE stehen und turn auf other. Somit ist es sinnvoller, in der Warteschleife zuerst die andere interested-Komponente zu prüfen, da diese auf FALSE steht. Die turn-Variable braucht dann gar nicht gelesen zu werden. Daher habe ich die beiden Abfragen ausgetauscht.