Semaphore
Semaphore: Semaphore ist nichts anderes als ein Begriff, der in UNIX für eine Variable, die als Zähler. Zum Beispiel gibt es vielleicht mal werden, wenn zwei Prozesse versuchen, auf die gleiche Datei gleichzeitig. In diesem Fall müssen wir den Zugang der Datei, wenn der andere Prozess zugreift. Dies geschieht, indem Wert auf Semaphore.
Der Wert der Semaphore wird initialisiert, indem der erste Prozess, wenn sich die Datei im Zugriff hat. Wenn der zweite Prozess versuchen, auf die Datei zugreifen, prüft sie, ob der Wert der Semaphore und wird, wenn sie den Wert als initialisiert es nicht auf die Datei zugreifen. Nach dem ersten Prozess wird es reinitialisiert die Semaphore Wert und jetzt den zweiten Prozess verwendet wird. Das obige Beispiel ist für zwei, sondern eine Semaphore verwendet werden können, auch wenn viele Prozesse versuchen, auf die gleiche Datei. So werden Semaphoren zu koordinieren Zugriff auf eine Ressource durch verschiedene Verfahren.
Wir haben gesehen, dass Semaphore können verwendet werden, wenn Anzahl der Prozesse versuchen, auf die gleiche Datei. In diesem Fall müssen wir die Semaphore zur Verfügung für alle Prozesse, so dass sie lesen können, und überprüfen Sie den Wert und die auch neu initialisiert und der Wert der Semaphore werden. Aus diesem Grund nur die Semaphore wird im Kernel, so dass sie sich durch alle Prozesse.
Der Wert der Semaphore beschreibt somit die Anzahl der Threads, die nichts, aber Prozesse. Mit anderen Worten: Wir haben festgestellt, dass, wenn der Wert positiv ist, dann haben wir Threads decrement und gehen Sie für die Ausführung ohne Aussetzung. Wenn der Wert der Semaphore ist negativ, dann bedeutet, dass die Anzahl der Threads oder Prozess ist blockiert und gehalten wird Staates. Wenn der Wert der Semaphore Null ist, dann bedeutet dies, dass es keine Threads oder Prozesse in Staat warten.
|