Multicore und Synchronisation
Welche Aussage im Vergleich von Mutex (schlafend wartende Sperre) und Spinlock ist richtig?
- AEin Mutex gibt beim Warten die CPU ab und eignet sich daher für langes Warten, doch Schlafen und Aufwachen verursachen Aufwand im Betriebssystem
- BEin Mutex verbraucht auch beim Warten CPU-Zeit und kann daher nur für kurzes Warten verwendet werden
- CMutex und Spinlock sind dasselbe und unterscheiden sich nur im Namen
Antwort und Erläuterung anzeigen
Antwort: A. Ein Mutex gibt beim Warten die CPU ab und eignet sich daher für langes Warten, doch Schlafen und Aufwachen verursachen Aufwand im Betriebssystem
Kann ein Mutex die Sperre nicht erhalten, versetzt er den Thread in den Wartezustand und überlässt die CPU anderen Threads; wird die Sperre freigegeben, weckt das Betriebssystem ihn. Da beim Warten keine CPU-Zeit verschwendet wird, eignet er sich für langes Warten, doch Schlaf-/Aufweckvorgang und Kontextwechsel kosten einige Mikrosekunden. Mutexe realer Bibliotheken kombinieren die Vorteile beider, etwa indem sie kurz spinnen und dann schlafen.