Inhaltsverzeichnis:
Definition - Was bedeutet Semaphor?
Ein Semaphor ist ein Synchronisationsobjekt, das den Zugriff mehrerer Prozesse auf eine gemeinsame Ressource in einer parallelen Programmierumgebung steuert. Semaphore werden häufig verwendet, um den Zugriff auf Dateien und den gemeinsamen Speicher zu steuern. Die drei grundlegenden Funktionen, die mit Semaphoren verknüpft sind, werden festgelegt. Überprüfen Sie diese und warten Sie, bis sie gelöscht werden, um sie erneut festzulegen. |
Semaphore werden verwendet, um Benchmark-Synchronisationsprobleme anzugehen.
Das Konzept der Semaphore wurde vom niederländischen Informatiker Edsger Dijkstra entwickelt.
Techopedia erklärt Semaphore
Semaphoren sind nicht negative Ganzzahlwerte, die die Operationen Semaphor-> P () und Semaphor-> V () unterstützen. P ist eine atomare Operation, die darauf wartet, dass ein Semaphor positiv ist, und dann um eins dekrementiert, während V eine atomare Operation ist, die ein Semaphor um eins inkrementiert, was impliziert, dass ein wartendes P aufgeweckt wird In Hardware implementiert, um untergeordnete kritische Abschnitte zu koordinieren.
Semaphoren werden normalerweise mithilfe von Dateideskriptoren implementiert. Semaphorkreationen sind nicht atomar. Wenn zwei Prozesse gleichzeitig versuchen, ein Semaphor zu erstellen, zu initialisieren und zu verwenden, wird eine Race-Bedingung erstellt. Semaphore werden erstellt und mit einem positiven Wert initialisiert, um die Verfügbarkeit einer zu verwendenden Ressource anzuzeigen. Semaphoren können durch Interrupts oder mithilfe von Testsatzoperationen implementiert werden.
Jedes Semaphor enthält eine Reihe von Genehmigungen. Es beschränkt die Anzahl der Threads, die auf die Ressourcen zugreifen. Semaphoren mit nur einer Erlaubnis und einer Initialisierung dienen als gegenseitige Ausschlusssperren. Sie werden als solche bezeichnet, da sie nur zwei Zustände haben: Erlaubnis verfügbar oder Nullerlaubnis verfügbar. Dies umschließt die Eigenschaft, sodass eine Sperre von einem anderen Thread als dem Besitzer aufgehoben werden kann, was zur Wiederherstellung von Deadlocks beiträgt. Semaphore werden für gegenseitige Ausschlüsse verwendet, bei denen das Semaphor einen Anfangswert von eins hat und P () und V () vor und nach den kritischen Abschnitten aufgerufen werden.