I definieren mutual exclusion und wie unten Deadlock jeweils: Die gegenseitige Ausschlussbedingung existiert in jedem Moment, wenn jede gemeinsam genutzte Ressource entweder genau einen Prozess zugeordnet ist, oder zur Verfügung. Eine Gruppe von Prozessen ist festgefahren, wenn jeder Prozess in der Gruppe auf ein Ereignis wartet, das nur ein anderer Prozess in der Gruppe verursachen kann.Wenn der gegenseitige Ausschluss garantiert ist, sagen wir mit Semaphoren, ist ein Programm Deadlock-frei?
Angenommen, binäre Semaphore werden verwendet, um sicherzustellen, dass nur einer von ihnen gleichzeitig seine kritische Region betreten kann. Da jeder Prozess kurz vor dem Eintritt in seine kritische Region und unmittelbar nach dem Verlassen eine abklingt, ist ein wechselseitiger Ausschluss garantiert.
Ich verstehe, gibt es vier Bedingungen, die alle halten müssen Deadlock auftreten, von denen eines die gegenseitige Ausschlussbedingung (keine zwei Prozesse innerhalb ihrer kritischen Abschnitte gleichzeitig sein kann).
Da wechselseitiger Ausschluss garantiert ist, ist das Programm in diesem Fall deadlock-frei?
Grüße.