Ich hatte 56 von 60. Studier die Sache eben auch.
Was eine Semaphore ist, weiss ich.
Man setzt sie normalerweise im Zusammenhang mit mehreren Threads ein, die über einen Monitor auf eine Ressource zugreifen.
Der Monitor überwacht, dass nur eine vorher angegebene Zahl von Threads gleichzeitig zugreifen kann.
Dazu kann er zum Beispiel eine Semaphore benutzen. Man initialisiert die Semaphore mit einer Zahl.
Greift ein Thread dann über den Monitor auf die Ressource zu, wird die 'P' Funktion (abkürzung für was holländisches, glaube ich) aufgerufen. Dadurch erniedrigt sich der Wert der Semaphore (der am Anfang eingestellt wurde). Wenn der Thread fertig ist, wird im Monitor die v (wie verlassen) Funktion der Semaphore aufgerufen. Dadurch wird der Wert wieder erhöht.
Sinkt der Wert mal auf null, dann blockieren alle Threads, die versuchen die p- Funktion aufzurufen. Die kommen in eine Warteschlange und werden erst wieder geweckt, wenn der Wert wieder über 0 liegt.
Ich hoffe, ich habe mich einigermassen verständlich ausgedrückt.
Herbert
