Die erste Voraussetzung ist glasklar, denn das Hauptziel des gegenseitigen Ausschlusses ist ... Hm, sich gegenseitig auszuschließen, richtig?
Die zweite Anforderung (Fortschritt) ist in gewissem Sinne eine falsche Bezeichnung. Nehmen wir an, dass in einem bestimmten System eine Reihe von Prozessen gleichzeitig ablaufen, z. B. P1, P2, P3, P4 und P5, und keiner von ihnen führt den kritischen Abschnitt (CS) aus. Irgendwann, zu einem bestimmten Zeitpunkt, interessieren sich die Prozesse P1, P2 und P3 für die gleichzeitige Ausführung des CS. In dieser Situation besagt die Fortschrittsbedingung, dass nur P1, P2 und P3 das Recht haben, selbst zu entscheiden, wer in den CS eintritt (P4 und P5 dürfen diese Entscheidung auf keinen Fall beeinflussen). Nebenbei bemerkt, legt diese Anforderung auch fest, dass eine solche Entscheidung nicht ewig dauern kann, daher ihr Name ("Fortschrittsanforderung"). Ich denke, dass dies ein nicht beschreibender Begriff ist; "Abschlussanforderung" passt besser, da nur die interessierten Prozesse das Recht haben, zu entscheiden, wer den CS ausführen wird). Meines Erachtens zielt diese Anforderung darauf ab, Live-Locks zu verhindern (bei denen alle Prozesse zueinander sagen: "Bitte, führen Sie aus, Sie sind dran").
Die dritte Anforderung (Bounded Waiting) ist eng mit der zweiten verbunden. Während die Fortschrittsanforderung besagt, dass die interessierten Prozesse innerhalb einer endlichen Zeit eine Entscheidung treffen müssen, besagt die Bedingung Bounded Waiting, dass kein Prozess unendlich lange warten muss, um ein Aushungern zu verhindern: Nachdem Pn einen Antrag auf Eintritt in den CS gestellt hat, kann nur eine begrenzte Anzahl von Prozessen Pn umgehen. Aufgrund ihrer Definition und im Gegensatz zur zweiten Bedingung trägt diese Anforderung den bezeichnenden Namen "Bounded Waiting" oder manchmal auch "Bounded Bypass". aquí ). Für den Fall, dass Sie Portugiesisch verstehen, hier die Definition, die ich gefunden habe aquí :
Die erste Anforderung ist offensichtlich, denn sie ist das Hauptziel der Lösung. Die zweite besagt, dass wenn sich kein Prozess in der kritischen Region befindet und es Prozesse gibt, die sich anschließen möchten, dann wird nur der Prozesse, die teilnehmen möchten, entscheiden mit, wer teilnimmt, und diese Entscheidung ist nicht auf unbestimmte Zeit verschoben. Die dritte Anforderung besagt, dass ein Prozess, der in den Die kritische Region darf nicht unendlich lange warten, bis sie an der Reihe ist, d. h., wenn es einen Prozess gibt warten, muss es eine Begrenzung der Anzahl der Ein- und Austritte anderer Prozesse in ihre kritischen Bereiche geben. aus ihren kritischen Regionen.