Multicore und Synchronisation

Welche Verwendung eines Semaphors mit Zähler ist am treffendsten?

  1. ADen Wert einer Variablen stets zu verdoppeln
  2. BDie Programmausführung vollständig auf einem Thread zu bündeln
  3. CEine Ressource mit festgelegter Zahl gleichzeitiger Nutzungen (z. B. bis zu 4 Verbindungen) von bis zu vier Threads gleichzeitig nutzen zu lassen
Antwort und Erläuterung anzeigen

Antwort: C. Eine Ressource mit festgelegter Zahl gleichzeitiger Nutzungen (z. B. bis zu 4 Verbindungen) von bis zu vier Threads gleichzeitig nutzen zu lassen

Ein Semaphor besitzt einen Zähler für die verbleibende Anzahl, den man vor der Nutzung um 1 verringert (bei 0 wird gewartet, bis er größer wird) und nach der Nutzung um 1 erhöht. Mit dem Anfangswert 4 können bis zu vier Threads gleichzeitig die Ressource nutzen. Mit dem Anfangswert 1 lässt er sich wie eine Sperre für den gegenseitigen Ausschluss verwenden. Wartende Threads werden üblicherweise schlafen gelegt und vom Betriebssystem geweckt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Multicore und Synchronisation

  1. Welcher Unterschied zwischen Cache-Kohärenz und Speicherkonsistenzmodell ist richtig?
  2. Welche Idee steckt hinter Hardware Transactional Memory?
  3. Warum wird beim Warten mit einer Bedingungsvariable auf „Warteschlange nicht mehr leer“ die Bedingung nach dem Aufwachen mit einer while-Schleife statt mit if erneut geprüft?
  4. Zwei Kerne besitzen jeweils in ihrem eigenen Cache eine Kopie der Variablen x. Welches Problem kann auftreten, wenn Kern 1 x liest, nachdem Kern 0 x geschrieben hat, und es keinen Cache-Kohärenz-Mechanismus gibt?
  5. Welche Kombination der vier Zustände des Cache-Kohärenz-Protokolls MESI ist richtig?

Vergleiche zu diesem Thema