See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Diskussion:Semaphor (Informatik) – Wikipedia

Diskussion:Semaphor (Informatik)

aus Wikipedia, der freien Enzyklopädie

Inhaltsverzeichnis

[Bearbeiten] Lemma Bedeutung

Der Artikel sollte hier eingearbeitet werden: Semaphore (Programmierung) -- Eckhart Wörner 15:15, 8. Mär 2004 (CET)

Habe erstmal von Semaphore (Programmierung) hierher ge-redirect-ed -- wird denn der Begriff "Semaphor" tatsächlich so verwendet? Ich kenne das nur mit e, selbst aus deutschen Vorlesungen... --Pinguin.tk 16:35, 8. Mai 2004 (CEST)


..in meinem skript steht anstelle von "P und V stehen für Holländisch "Proberen", probieren und "Verhogen" " P stehe für passeeren (passieren) und V für vrijgeven (freigeben). nicht wirklich wichtig, aber ist mir aufgefallen. --217.231.171.25 13:32, 21. Mai 2004 (CEST)

Singular: Semaphor, Plural: Semaphore (vgl. Fußballtor, ~tore) Geschlecht: Neutrum (auch: Maskulin)

An meiner Universität wird der Begriff durchaus "Semaphor" (ohne "e") im Deutschen verwendet.

"Semaphor" ist schon richtig. (Buch Moderne Betriebssysteme, Andrew S. Tanenbaum)

laut M+T Computerlexikon ist der singular Semaphore und ausserdem femininum. zitat: "Das System setzt dann die Semaphore, die den Status des Druckers beschreibt, auf besetzt."--seth 23:10, 14. Mär 2005 (CET)

und ich schau mal in den Duden deutsche Rechtsschreibung, 23. Aufl.: dort heißt es "das Semaphor, österr. nur der, Signalmast". Semaphore kommt gar nicht vor, und Signalmast passt ja --Hubi 06:58, 15. Mär 2005 (CET)
ach und Markt und Technik Produkte. Immer sehr ausführlich, aber auch sehr schnell auf den Markt geworfen und darum sehr fehlerhaft. Neben Pater Becker steht Markt und Technik bei mir auf der Liste der Verlage, von denen ich grundsätzlich keine (Mach-)Werke erwerbe. Das Motto des Verlags ist jedenfalls: Von Laien für Laien ... --Hubi 07:02, 15. Mär 2005 (CET)
was m&t betrifft stimme ich dir zu, obgleich die adressaten imho hier weniger eine rolle spielen als die ersteller. der gute alte mr. check, der online gleichzeitig in mehreren nachschlagewerken sucht, waehlt eben neben verschiedenen duden und dem brockhaus eben dieses m&t lexikon aus...
trotzdem moechte ich noch ein bissl advocatus diaboli spielen: das wort ist sicher den signalmasten entlehnt, was jedoch noch nicht heisst, dass es auch genauso geschrieben werden muss. in der informatik werden staendig begriffe aus dem englischen benutzt und auch eingedeutscht (wie z.b. Performanz etc.). im englischen heisst es "semaphore", wobei das letzte e nicht gesprochen wird. ich denke, dass daher die schreibweise "semaphore" im deutschen ruehrt und dass das genus (femininum) ein gefuehltes ist (vergl. die amphore).--seth 09:24, 15. Mär 2005 (CET)
Meine Computerbücher, die das Thema behandeln, sind leider alle Englisch. Lediglich Linux-Kernel-Programmierung von Addison-Wesley ist auf Deutsch und - ebenfalls Semaphor im Text, jedoch ist unklar, ob der oder das (ein Semaphor). Klett PONS Übersetzung von engl. semaphore ergibt ebenfalls Semaphor (n). Professoren scheinen von Semaphor zu sprechen, s. o. Solange keine besseren Quellen als M+T existieren, ist das Thema glaube ich erledigt. --Hubi 10:11, 15. Mär 2005 (CET)
Ich weiss zwar nicht wie es wirklich heisst, aber zum Thema "vgl. Fussbaltor": Sehr weit hergeholt. Es heisst ja auch Amphore und nicht Amphor. --unbekannt 01:19, 16. Feb 2006 (CET)


Da das Ganze doch schon laenger mehr oder minder unbelegt brachliegt [und das meine ich in beide Richtungen], moechte ich doch nochmal einen ganz entscheidenden Punkt anfuehren: Wie aus den Arbeitsseiten der fuehrenden deutschen Informatik-Fakultaeten hervorgeht, wird dort eindeutig eher zu den Begriffen "Die Semaphore(n)" gegriffen. [Karlsruhe, Darmstadt, Aachen..] Dies ist natuerlich nicht grundlegend, aber es ist nunmal ein entlehntes Wort - demzufolge muesste man entweder den Kompromiss gehen beide Schreibungen gleichberechtigt stehen zu lassen oder aber nach dem allgemein beliebten Mehrheitsvotum gehen. Wenn ich da Google und wie gesagt diverse Fachspezialisten [Fakultaeten s.o.] durchstoebere, dann sieht es fuer den Begriff "Semaphor" schlecht aus, und das einzige Argument was dann noch bleibt, waere der Bezug zum oesterreichen Wort. Den ich fuer hanebuechen halte, solange Djikstra nicht schlagartig zum Oesterreicher mutiert und der Begriff etwas Anderes bedeuten wuerde. :-) --91.89.241.237 13:33, 12. Jan. 2008 (CET)

Im einfachsten Fall besteht ein Semaphor aus einem Bit, das gesetzt sein kann oder nicht, was auch binärer Semaphor oder Mutex genannt wird. Ein Prozess, der einen kritischen Bereich betritt, löscht das Semaphor-Bit. Dies verhindert das Betreten des Bereichs durch andere Prozesse. Der Semaphor wird wieder gelöst, wenn der Prozess den kritischen Bereich verlässt. Wartende Prozesse werden dann nacheinander aktiviert.

Frage aus dem Artikel: wurde dieser nicht beim eintreten gelöscht?? bitte nach bearbeiten! .morla. sorry weiß nich wie ein kommentar gemacht wird

--Pinguin.tk 13:27, 18. Nov 2004 (CET)


Mal was Anderes: Die Implementation in einer C/Java ähnlichen Darstellung scheint mir fehlerhaft: Selbst wenn ich den abstrakten Datentyp Semaphor nicht objektorientiert implementiere verdeckt das "Semaphor s;" der zweiten Zeile den Parameder und die Abfrage wird sinnlos. Bei OOP Implementierung brauch ich kein Parameter, da der Semaphor als Objekt abgesprochen wird. --Pazz 00:12, 27. Apr 2005 (CEST)

[Bearbeiten] implement(ierung|ation)

Das Wort "Implementation" ist ein Unwort, es sollte "Implementierung" heißen. An der Hochschule gab es für sowas Schläge mit dem Rohrstock :D

Ich stimme dir in der Sache zu, aber es würde die Kommunikation erleichtern, wenn du deine Beiträge mit "--~~~~" signieren würdest. --jpp ?! 10:07, 12. Sep 2005 (CEST)
uebrigens ist laut duden auch "implementation" zugelassen.--seth 10:43, 12. Sep 2005 (CEST)
Auch das ist korrekt. Hier geht es um Feinheiten des Sprachempfindens. Manche legen Wert auf solche sprachlichen Feinheiten, anderen ist es wurscht. Ich zähle mich eher zu den "Sprachästheten". ;-) --jpp ?! 09:00, 13. Sep 2005 (CEST)

[Bearbeiten] Herkunft

Wenn man sich überlegt, daß Semaphore in der Informatik Prozesse dazu veranlassen, stehenzubleiben bzw. wieder loszulaufen, dann kann die Herkunft eigentlich nur mit Semaphoren bei der Eisenbahn erklärt werden, oder? Da sie der Prozeßsynchronisation und nicht der Interprozeßkommunikation dienen, können die Semaphore aus dem Fernmeldewesen wohl kaum der Ursprung gewesen sein. --ChesneyB 11:26, 15. Feb 2006 (CET)

  • Semaphore bei Eisenbahn und Fernmelderei (bzw. der Name Semaphor) haben aber den gleichen Ursprung: mit Signalflügeln wedeln und dabei Botschaften übermitteln. Nur hat man sich bei Eisenbahns meist auf ein bis zwei Bit beschränkt. --Sascha Claus  12:10, 14. Jun 2006 (CEST)

[Bearbeiten] Stellungnahmen zwecks Verbesserung

Ich habe alle Einzelpunkte mit meinem Namen signiert, damit direkt hinter jedem auch eine andere Meinung gesetzt werden kann. Ziel der Stellungsnahmen ist eine Verbesserung des Artikels.--HartmutS 19:09, 29. Apr 2006 (CEST)

  • Semaphor == Signalmast der Eisenbahn passt genau in die Anwendung der Semaphor in der Informatik. --HartmutS 19:09, 29. Apr 2006 (CEST)
  • Bei Semaphor geht es nicht um Interprozesskommunikation, auch nicht um Prozesssynchronisation, sondern um eine Regelung des Zugriffs zu Daten, Interprozesskommunikation wird mit diesen Daten ausgeführt (nicht mit dem Semaphor) und Prozesssynchronisation wird nur beeinflusst, wenn ein anderer Prozess gleichzeitig zugreifen wollte. Ansonsten wird mit einem Semaphor kein anderer Prozess beeinflusst. Aber mit den Daten, die mit einem Semaphor geschützt sind, ist eine Prozesssysnchronisation erreichbar (beispiel indem ein anderer Prozess auf bestimmte Daten wartet und dann losläuft). Ich lese sehr oft (auch in anderen Artikeln) diese Feinunterschiede nicht heraus, siehe auch Mutex.--HartmutS 19:09, 29. Apr 2006 (CEST)
  • Der Begriff Thread kommt hier sehr selten vor, statt dessen sehr oft Prozess_(Informatik). Statt Prozess sollte aber mindestens gleichberechtigt Thread stehen, denn wenn eine Semaphor-Struktur direkt angesprochen wird, dann steht sie im selben Speicherraum, das geht nur mit Threads. Prozesse können mit einem Sempahor nur dann arbeiten, wenn der Semaphor-Zugriff auf der Systemebene geregelt ist.--HartmutS 19:09, 29. Apr 2006 (CEST)
  • Semaphor im Zusammenhang mit Mutex ist meist ein binäres Semaphor, ggf. mit anhängender Warteschlange. Das ist eine der Hauptanwendungen. Die Dijkstras Lösung ist eine andere Aufgabe, die sich auf begrenzte Ressourcen bezieht. Das ist im Artikel nicht sehr gut auseinandergehalten ==> Gliederung.--HartmutS 19:09, 29. Apr 2006 (CEST)
  • Der Abschnitt Implementierung bezieht sich wieder nur auf die Regelung für begrenzte ressourcen und nicht auf den allgemeinen Fall. das beispiel sieht wie Java aus, ist aber kein java (Diskussionen oben). Verbesserungswürdig. --HartmutS 19:09, 29. Apr 2006 (CEST)

[Bearbeiten] Anfordern und Freigeben statt P und V.

Hallo, ein insgesamt gelungener Artikel. Allein die Bezeichnungen P() und V() im Abschnitt über Implementierung erscheinen mir kryptisch. Ein möglicher historischer Hintergrund ist mir nicht bekannt. >>>Die Funktion V() wird auch als up, die Funktion P() als down bezeichnet<<< Das ist besser. Es beschreibt was mit dem Zähler geschieht. Es ist aber die Sicht der Implementierung. Dem anfordernden Prozess geht es um eine Resource. Ich schlage daher vor P() in Öffnen() oder Anfordern() und V() in Schließen() oder Freigeben() umzubenennen. Grüße, Bateson.

[Bearbeiten] wie wird der Semaphor von wem geändert?

P(Semaphor s)
{
  while (s <= 0) {}
  s = s-1 ;
}

Schon für ein Semaphor innerhalb eines Programmes erscheint mir das seltsam. Wenn s ein Funktionsparameter ist, ist es wohl kaum eine globale Variable. Wie kann dann aber s erhöht werden, während ein Prozess im while im Kreise flitzt?

Aber egal ob globale Variable oder Funktionsparameter, wie soll ein externer Prozess denn eine Variable in einem anderen Programm ändern? --jailbird 22:09, 16. Dez. 2006 (CET)

[Bearbeiten] Anmerkungen

Semaphore gehören zu den klassischen Elementen der Informatik. Eine Umbenennung der Operationen in Anfordern o.ä. sollte auf keinen Fall vorgenommen werden. Ich plädiere für eine einheitliche und durchgängige Verwendung von P() und V(). Die von systemnahen Bibliotheken angebotenen Operation wie down/up oder wait/signal sollten aber erwähnt werden.

Semaphore werden für die Prozesssynchronisation verwendet. Synchronisation bedeutet das Herstellen einer Reihenfolge. Dies ist erforderlich beim Zugriff auf gemeinsam genutzte, aber exklusiv zu nutzende Daten (Konkurrenz). Da ein Prozess A nicht weiss, ob andere Prozesse ebenfalls auf derartige Daten zugreifen wollen, muss A seine Zugriffe immer mittels Semaphoroperation umrahmen. Gibt es andere Prozesse, die auf die Daten zugreifen, nachdem A seine P-Operation ausgeführt hat, so werden sie blockiert. Gibt es keine anderen, so passiert halt nichts. Das Besondere an Semaphoren im Vergleich zu anderen HW-nahen Synchronisationsmethoden ist, dass bei Absetzen einer V-Operation ein wartender Prozess deblockiert wird und dies ohne dass der V-absetzende Prozess sich im Detail darum kümmern muss.

Eine andere Form der Herstellung einer Reihenfolge liegt vor, wenn Prozess B mit seinen Aktionen erst dann weiter machen darf/kann, wenn Prozess A eine bestimmte Aktion ausgeführt hat (Kooperation). Auch hierfür werden Semaphore eingesetzt.

In der einleitenden Erklärung sollte daher "zur Prozesssynchronisation" unbedingt stehen bleiben. Gut fände ich es, wenn beide Synchronisationssituationen aufgeführt würden:

Ein Semaphor (zur Wortherkunft siehe Begriffserklärung) ist ein Datentyp zur Prozesssynchronisation. Der Datentyp stellt Prozessen/Threads Operationen zur Verfügung, mit denen Konkurrenz- wie Kooperationssituationen zwischen Prozessen/Threads effizient behandelt werden.

Die Beispiele der Einleitung zu Betriebsmitteln finde ich nicht passend. Die Nutzung der Ressource CPU wird nie über Semaphore geregelt. Programmteile (die krit. Abschnitte) sind keine Betriebsmittel, die von Prozessen angefordert werden. In einem krit. Abschnitt greift ein Prozess/Thread auf gemeinsam genutzte, aber exklusiv zu nutzende Daten zu.

Hinsichtlich Prozess - Thread schlage ich die Kombination Prozess/Thread vor. Eine Unterscheidung ist m.E. nicht erforderlich. Semaphore werden allgemein als ein Betriebssystemkonzept für die Prozesssynchronisation angesehen. Semaphore werden i.a. vom BS implementiert. Ein Prozess ruft Systemdienste auf, um einen Semaphor zu initialisieren und zu nutzen. Andere Prozesse operieren mit dann ebenfalls mit diesem Semaphor, der im Adressbereich des Betriebssystems und damit allen Prozessen gemeinsam platziert ist.

Den Abschnitt Probleme bei mehreren Prozessen (oder vielleicht: Formen der Interaktion paralleler Prozesse/Threads?) würde ich gemäß den oben erwähnten Synchronisationssituationen gliedern:

  • Konkurrenz: Prozesse/Threads arbeiten exklusiv mit Betriebsmitteln, die nur in beschränkter Anzahl zur Verfügung stehen, und bei denen ein Verzicht auf eine Regelung Probleme der Art auftreten lassen, wie sie unter Zugriffsarten aufgeführt sind.
  • Kooperation: Prozesse/Threads müssen ihre Aktionen in vorgegebener Reihenfolge ausführen (z.B. Initialisierung von Nutzung oder klassisch: Erzeuger kann nur dann etwas im Puffer ablegen, wenn dort von einem Verbraucher Platz geschaffen wurde).

Im Lösungsabschnitt würde ich es besser finden, wenn Datenstruktur durch den mächtigeren Begriff Datentyp (abstrakter Datentyp?) ersetzt wird. Falsch ist die Aussage "Es wird festgelegt, wie viele kritische Prozesse existieren dürfen". Es können beliebig viele Prozesse über einen Semaphor synchronisiert werden. Es weiss i.d.R. auch niemand, wie viele Prozesse gleichzeitig ein Betriebsmittel benötigen. Um die Erläuterung auch für die Kooperation gültig zu halten, sollte statt "im Falle Zähler größer als Null darf er den kritischen Abschnitt betreten" allgemeiner etwas wie "im Falle Zähler größer gleich(!) Null darf er weiter machen" ausgesagt werden. Wo kommt die Aussage "Manchmal wartet auch der Prozess bei wait in einer Schleife" her? Charakteristisch für Semaphore ist m.E. das Blockieren von Prozessen. Dies unterscheidet den Semaphor von Polling-/Busy-Waiting-Lösungen. Entsprechend habe ich Bedenken, die Busy-Waiting-Implementierung aufzuführen. Zumal sie nicht richtig ist. In der while-Schleife "while (s-- <= 0) {;};" wird s mit jedem Schleifendurchlauf dekrementiert. Somit wird ein einmaliger V-Operationsaufruf den durch P blockierten Prozess nicht entblockieren.--AHagerer 15:48, 20. Jan. 2007 (CET)

[Bearbeiten] Semaphore <= 0 und Prozess darf weiterlaufen?

Hallo zusammen!

Müsste es nicht heißen:

Ist der Zähler danach größer gleich 0, so wird ein Prozess aus der Warteschlange entfernt.

Und im Listing entsprechend:

    if (s.zaehler >= 0)
         ready (s.queue);       /* Entblockieren eines Prozesses aus der Warteschlange */

Gruß Torsten --Chiefluz 22:48, 28. Jun. 2007 (CEST)


Nein, dass darf es nicht. Ist der Zähler größer 0, so gibt sein Wert an, wie viele Prozesse noch ohne Blockierung die P-Operation aufrufen können. Ist der Zähler negativ, so gibt sein Absolutwert an, wie viele Prozesse die P-Operation aufgerufen haben und dabei blockiert wurden. Im Fall des Schutzes eines kritischen Abschnitts wird der Semaphor mit 1 initialisiert (= ein Prozess darf in den k.A.). Ein zweiter, dritter, vierter usw. Prozess, der anschließend in den k.A. will, ruft die P-Operation auf und wird blockiert. Der Zähler nimmt dann die Werte -1, -2, -3 usw. an. Verlässt ein Prozess den k.A. und ruft die V-Operation auf, so muss bei negativem Zählerstand ein Prozess entblockiert werden. Bei positivem Zählerstand gibt es keine blockierten Prozesse.

-- AHagerer 14:44, 6. Jul. 2007 (CEST)


^^Richtig! Daher habe ich nun das if (s.zaehler >= 0) entfernt da es einfach falsch war. Es muss immer ein Prozess aufgeweckt werden(ausser es ist keiner zum aufwecken in der Schlange). Ich denke an die vielen armen Mitmenschen die hier das Falsche gelesen haben und es dadurch nicht oder falsch verstanden haben. :-(

[Bearbeiten] mit Atombomben auf Spatzen geschossen !?

Ihr Lieben (diese Anrede an Euch soll meine wirklich tiefe Wertschätzung bezeugen),

mit allerhöchstem Respekt an Eure dozierenden - und gleichwohl ganz sicher richtigen - Statements:

Hinsichtlich WP:OMA bitte ich indes um etwas Mäßigung zu diesem Thema.

Ich bin IT-Berater. Unsereiner hat oftmals die Aufgabe, Nichtwissenden bestimmte Themen nahe zu bringen. Wenn ich meinen Kunden dieses Thema - oder schlicht den Begriff - näherbringen würde mit der Empfehlung, sich auf dieser Seite kundig zu machen (dies ist eine Enzyklopädie und kein Informatik-Lehrbuch, oder?), würden sie mir wohl meine armen entzündeten Augen auskratzen.

Ich - bei aller Demut nur ein Dipl.-Ing. TH - mit 20 Jahren Berufserfahrung im IT-Bereich, muss den Artikel schon 20 Mal lesen, um ein Viertel zu verstehen. Da kann also was nicht stimmen: in meinem Kopf oder womöglich auch im Artikel. Mmmmh....

In erster Näherung ist es doch ganz einfach, oder? Meine ich.

VORSCHLAG:

Ein Semaphor dient dazu, zwei voneinander unabhängig ablaufende Prozesse derart zu steuern, dass der zweite Prozess erst dann mit seiner Arbeit beginnt, wenn der erste Prozess seine Aufgaben erledigt hat.

Ich tendiere stark dazu, dies MIT GEWALT - Wikipedia:Sei mutig - in den Einführungssatz zu schieben.

Indes überlege ich noch ein wenig... Ich bin kein Hooligan.

Seit MUTIG und gebt mir ein GO (oder no-GO, wenn Ihr das meint).

Liebe Grüße von -Wolfgang- --195.4.187.242 00:42, 23. Aug. 2007 (CEST)

toll. dein beitrag hier beweist nur, dass ein informatikstudium offensichtlich gar nichts bringt, wenn man programmierer werden möchte.ich bin während meiner arbeit auf semaphore gestossen und mir hat der artikel weitergeholfen. ich musste ihn auch nur einmal lesen. fachwissen muss sich einem laien nicht sofort und in vollem umfang erschließen - wenn man da ganz konsequent sein wollte, wäre der artikel gar nicht in der wikipedia. --217.84.43.214 12:02, 21. Apr. 2008 (CEST)

Lieber Wolfgang,

Ich stimme Dir zu, dass der Text den WP:OMA-Test wohl nicht besteht. Gegen eine Erweiterung um eine mehr allgemein gehaltene Erläuterung ist daher nichts einzuwenden. Allerdings habe ich bei Deinem Vorschlag Bedenken. Er spricht nur an, dass ein Semaphor in Situationen der Form "Prozess A vor Prozess B" (die Kooperationssituation) genutzt wird. Die ursprünglich bedeutendere Situation, in der ein Semaphor verhindert, dass Prozesse gemeinsam genutzte Daten in inkonsistente Zustände bringen, bleibt unerwähnt. Er klingt mir auch zu sehr danach, dass ein Semaphor so etwas ist wie eine Ampel, die auf grün springt, um dem zweite Prozess zu signalisieren, dass er nun beginnen kann. Die Ampel könnte von einem Beobachter/Operateur bedient werden. Wäre der Operateur mit der Ampel dann ein Semaphor? Mir fehlt da, dass die Programmierer der Prozesse selbst den Semaphor einrichten und benutzen müssen. Ferner bin ich der Ansicht, dass der Artikel auch erläutern sollte, was ein Semaphor ist, und nicht nur wozu er verwendet wird. -- AHagerer 10:14, 23. Aug. 2007 (CEST)

[Bearbeiten] Sourcecode für V und P korrekt?

Ich lerne gerade für eine Prüfung. In meinen Unterlagen steht, dass bei der V-Operation der Zähler nur inkrementiert wird, wenn kein anderer Prozesse in der Warteschlange steht. Steht dort jedoch ein Prozess (oder mehrere Prozesse), wird einer von diesen geweckt, ohne dass der Zähler verändert wird. Das bedeutet natürlich, dass der neue, geweckte Prozess den Zähler selbst nicht mehr ändert. Was ist nun korrekt? Im Code im Artikel sieht es ja auch so aus, als würde ein geweckter Prozess nicht noch einmal die P-Methode aufrufen, müsste er aber, wenn vom vorherigen Prozess der Zähler inkrementiert wurde. Oder ist das nur nen Implementationsdetail? --Admiral kay 17:52, 27. Apr. 2008 (CEST)


Generell gilt für Semaphore, dass ein Prozess für eine Synchronisation nur einmal die P-Operation absetzt. Im Rahmen der Ausführung der P-Operation kann es zu einer Blockierung des Prozesses kommen. Für den Prozess, der die Details der P-Operation nicht kennt/sieht, sieht es dann so aus, als ob die Ausführung der P-Operation viel Zeit benötigen würde. Ist die Ressource, die mittels des Semaphors verwaltet wird, verfügbar oder ist der kritische Abschnitt betretbar, so setzt der Prozess mit der Aktion fort, die dem P-Aufruf folgt. Ob nun der Zähler, der zur Implementierung eines Semaphors verwendet wird, bei der V-Operation inkrementiert wird oder nicht, hängt von der konkreten Implementierung der P-Operation ab. Man kann die Operationen z.B. mit einem Zähler implementieren, der niemals negative Werte annimmt (das ist vermutlich bei der von Dir geschilderten Implementierung der Fall): bei P wird geprüft, ob der Zähler gleich 0 ist; wenn ja, wird der Aufrufer ohne Veränderung des Zählers blockiert; wenn nein, wird der Zähler dekrementiert; bei V wird nur dann inkrementiert, wenn kein Prozess blockiert ist. Positiv an der Beispielimplementierung im Artikel ist m.E., dass man am Zählerwert ablesen kann, wie viele Prozesse am Semaphor blockiert sind. --AHagerer 13:02, 13. Mai 2008 (CEST)


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -