Informatik Betriebssysteme – Nebenläufigkeit und Synchronisation
Karteikarten zum Thema „Informatik“ · 15 Karten · von atrio. Beispiele: Was ist der Unterschied zwischen Prozess und Thread bezüglich Adressraum? · Was defin…
Karten
15 KartenWas ist der Unterschied zwischen Prozess und Thread bezüglich Adressraum?
Rückseite
Prozesse haben getrennte virtuelle Adressräume, Threads desselben Prozesses teilen sich Code-, Daten- und Heap-Segment, besitzen aber eigene Stacks und Register.
Was definiert eine Race Condition (Wettlaufsituation)?
Rückseite
Mehrere Threads greifen gleichzeitig auf gemeinsame Daten zu, mindestens einer schreibt, und das Ergebnis hängt von der Ausführungsreihenfolge ab.
Welche drei Bedingungen muss eine kritische Sektion erfüllen?
Rückseite
Gegenseitiger Ausschluss (Mutual Exclusion), Fortschritt (Progress) und beschränktes Warten (Bounded Waiting).
Wie funktioniert ein Mutex (Mutual Exclusion Lock) prinzipiell?
Rückseite
Ein Mutex bietet lock()- und unlock()-Operationen; nur der Thread, der lock() erfolgreich aufruft, hält den Lock und darf die kritische Sektion betreten.
Was unterscheidet einen binären Semaphor von einem Mutex?
Rückseite
Ein Mutex hat Owner-Semantik (nur lockernder Thread darf unlocken), ein binärer Semaphor nicht; Semaphoren eignen sich auch für Signalisierung zwischen Threads.
Welche zwei atomaren Operationen definiert ein Zählsemaphor?
Rückseite
wait() (P/Down) dekrementiert und blockiert bei negativem Wert; signal() (V/Up) inkrementiert und weckt einen wartenden Thread auf.
Was ist ein Monitor und wie gewährleistet er gegenseitigen Ausschluss?
Rückseite
Ein Monitor kapselt gemeinsame Daten und Operationen; nur ein Thread darf gleichzeitig eine Monitor-Prozedur ausführen, mutual exclusion ist implizit.
Wozu dienen Condition Variables in Monitoren?
Rückseite
Sie erlauben Threads, innerhalb des Monitors auf eine Bedingung zu warten (wait) und andere Threads zu benachrichtigen (signal/broadcast), ohne den Lock dauerhaft zu halten.
Nenne die vier notwendigen Bedingungen für einen Deadlock (Coffman-Bedingungen).
Rückseite
Gegenseitiger Ausschluss, Hold-and-Wait, No Preemption, Circular Wait – alle vier müssen gleichzeitig vorliegen.
Wie verhindert die Bankier-Algorithmus-Strategie Deadlocks?
Rückseite
Er simuliert Ressourcenzuweisung vorab und gewährt Anfragen nur, wenn das System danach in einem sicheren Zustand bleibt (existiert sichere Sequenz).
Was ist der Unterschied zwischen Deadlock und Starvation?
Rückseite
Deadlock: Kein beteiligter Thread kommt weiter (zirkuläres Warten). Starvation: Ein Thread wird unendlich lange übergangen, während andere Fortschritt machen.
Wie löst man das Producer-Consumer-Problem mit Semaphoren?
Rückseite
Drei Semaphoren: mutex für Pufferzugriff, empty (Initialwert Puffergröße) für freie Slots, full (Initialwert 0) für gefüllte Slots.
Was charakterisiert das Readers-Writers-Problem und eine typische Lösung?
Rückseite
Mehrere Leser dürfen gleichzeitig lesen, Schreiber benötigen exklusiven Zugriff; Lösung via Read-Counter und Mutex oder Read-Write-Locks.
Was bewirkt eine Memory Barrier (Speicherbarriere) in nebenläufiger Programmierung?
Rückseite
Sie erzwingt Reihenfolge von Speicheroperationen: Vor der Barrier abgeschriebene Werte sind nach der Barrier für andere Threads sichtbar (Verhindert Reordering).
Wann spricht man von einem Spinlock und wann ist er sinnvoll?
Rückseite
Ein Spinlock wartet aktiv (busy-wait) auf Freigabe; sinnvoll bei sehr kurzen kritischen Sektionen im Kernel-Modus, um Kontextwechsel-Kosten zu vermeiden.