Teachers Paradise School Supplies Teacher Resources Free Encyclopedia
Teachers Paradise FREE Teaching Resources
Home Arts Crafts Audio Visual Equipment Office Supplies Teacher Resources
Hauptseite | See live article

Semaphore (Programmierung)

Semaphoren sind die klassische Methode, den Zugriff auf gemeinsam genutzte Ressourcen (z.B. Speicher) in einem Mehrprozesssystem zu regeln. Sie wurden von Edsger Dijkstra erfunden und zuerst im T.H.E Betriebssystem verwendet.

Eine Semaphore ist eine geschützte Variable (oder ein abstrakter Datentyp), auf die nur über folgende Funktionen zugegriffen werden kann:

P(s)
Semaphore s;
{
  while (s == 0) ;	/* warte bis s>0 */
  s = s-1;
}

V(s) Semaphore s; { s = s+1; }

Init(s, v) Semaphore s; Int v; { s = v; }

P und V stehen für Holländisch "Proberen", probieren und "Verhogen", erhöhen. Der Wert einer Semaphore ist die Anzahl an freien Einheiten der Ressource (wenn es nur eine Ressource gibt, wird eine "binäre Semaphore" mit dem Wert 0 oder 1 verwendet). Die Funktion P() wartet, bis eine Ressource verfügbar ist, worauf sie unmittelbar darauf eine beansprucht. V() ist die umgekehrte Funktion, die die Ressource wieder verfügbar macht, nachdem sie vom Prozess nicht mehr verwendet wird. Die Funktionen P() und V() müssen atomar sein, d.h. kein anderer Prozess kann auf die Semaphore während deren Ausführung zugreifen.

Um eine Warteschleife zu vermeiden, kann eine Semaphore eine Liste von Prozessen zugeordnet haben. Wenn ein Prozess die P()-Funktion ausführt und damit die Semaphore auf Null setzt, dann wird der Prozess dieser Liste hinzugefügt. Wenn ein Prozess die Semaphore mit der V()-Funktion erhöht, und andere Prozesse in der Warteliste sind, dann wird einer davon von der Liste genommen und fortgesetzt.

siehe auch: Interprozesskommunikation




Pay for Educational Supplies & Teaching Supplies with Visa, Master Card, American Express, Discover or Paypal.
TeachersParadise.com HOME | Safe Shopping Guarantee | Help Desk
All trademarks & brands are the property of their respective owners.
Legal Notice 2000-2008 TeachersParadise.com, Inc. All Rights Reserved