Podcast
Questions and Answers
Was ist der Zweck von Mutexen?
Was ist der Zweck von Mutexen?
Gegenseitiger Ausschluss realisieren
Was sind die beiden Operationen für Mutexe?
Was sind die beiden Operationen für Mutexe?
Threads im Benutzeradressraum verwenden preemptive Scheduling.
Threads im Benutzeradressraum verwenden preemptive Scheduling.
False (B)
Was passiert durch die Anweisung mutex_unlock? mutex_unlock gibt den exklusiven Zugriff auf die ___________ zurück oder weckt einen wartenden Prozess auf.
Was passiert durch die Anweisung mutex_unlock? mutex_unlock gibt den exklusiven Zugriff auf die ___________ zurück oder weckt einen wartenden Prozess auf.
Signup and view all the answers
Ordnen Sie die Operationen mit Mutexen den entsprechenden Beschreibungen zu:
Ordnen Sie die Operationen mit Mutexen den entsprechenden Beschreibungen zu:
Signup and view all the answers
Was sind die vier Bedingungen, um den gegenseitigen Ausschluss bereitzustellen?
Was sind die vier Bedingungen, um den gegenseitigen Ausschluss bereitzustellen?
Signup and view all the answers
Wie wird der Zustand bezeichnet, in dem nur ein Prozess zu einem bestimmten Zeitpunkt Zugang zur exklusiv verwendbaren Ressource haben darf?
Wie wird der Zustand bezeichnet, in dem nur ein Prozess zu einem bestimmten Zeitpunkt Zugang zur exklusiv verwendbaren Ressource haben darf?
Signup and view all the answers
Welche spezielle Instruktion erleichtert die Prozesssynchronisation durch Hardware-Unterstützung?
Welche spezielle Instruktion erleichtert die Prozesssynchronisation durch Hardware-Unterstützung?
Signup and view all the answers
Bei Semaphoren wird der Prozess durch die up-Operation blockiert, wenn der Semaphorwert = 0 ist.
Bei Semaphoren wird der Prozess durch die up-Operation blockiert, wenn der Semaphorwert = 0 ist.
Signup and view all the answers
Was passiert, wenn ein Signal auftritt und auf dieses nicht gewartet wird?
Was passiert, wenn ein Signal auftritt und auf dieses nicht gewartet wird?
Signup and view all the answers
Was sind typische Funktionen von Message-Passing? (Wähle alle zutreffenden Antworten)
Was sind typische Funktionen von Message-Passing? (Wähle alle zutreffenden Antworten)
Signup and view all the answers
Was ist die Lösung für das Leser-Schreiber-Problem? Die Leser erhöhen den Referenzzähler rc der gleichzeitigen Leserzugriffe und den Wächter-Fall wenn sie exklusiven Zugriff auf die Datenbank erlangen. Der erste Leser erkennt dass der Referenzzähler ___ ist und esst exklusiven Zugriff auf die Datenbank.
Was ist die Lösung für das Leser-Schreiber-Problem? Die Leser erhöhen den Referenzzähler rc der gleichzeitigen Leserzugriffe und den Wächter-Fall wenn sie exklusiven Zugriff auf die Datenbank erlangen. Der erste Leser erkennt dass der Referenzzähler ___ ist und esst exklusiven Zugriff auf die Datenbank.
Signup and view all the answers
Study Notes
Kritische Regionen
- Vier Bedingungen für den gegenseitigen Ausschluss:
- Kein Prozess darf gleichzeitig in der kritischen Region sein
- Keine Annahmen über Geschwindigkeiten oder Anzahl von CPUs
- Kein Prozess außerhalb seiner kritischen Region darf einen anderen blockieren
- Kein Prozess darf ewig auf den Eintritt in die kritische Region warten
- Kritische Regionen vermeiden Ressourcenkonflikte durch wechselseitigen Ausschluss
- Ein Prozess darf nur dann in die kritische Region eintreten, wenn keine anderen Prozesse darin sind
Mutual Exclusion with Busy Waiting
- Petersons Lösung für den gegenseitigen Ausschluss:
- Jeder Prozess meldet sein Interesse an der kritischen Region an
- Nur wenn der andere Prozess kein Interesse mehr hat, darf der Prozess in die kritische Region eintreten
- Spinlocks sind nur in wenigen Ausnahmefällen sinnvoll
- Hardware-Unterstützung erleichtert den gegenseitigen Ausschluss
Sleep and Wakeup
- Sleep und Wakeup verwenden Prozesse, die ihre kritische Region nicht betreten können
- Sleep blockiert den aufrufenden Prozess, bis auf ihn ein Wakeup-Aufruf erfolgt
- Erzeuger-Verbraucher-Problem:
- Der Erzeuger legt sich schlafen, wenn der Puffer voll ist
- Der Verbraucher legt sich schlafen, wenn der Puffer leer ist
- Wettlaufsituation: Der Zugriff auf den Zähler kann zu Rennen führen
Semaphoren
- Semaphoren verwenden Zähler von Weckrufen, um den gegenseitigen Ausschluss zu ermöglichen
- down-Operation: Prüft, ob der Zähler > 0 ist und reduziert ihn um 1; bei Zähler = 0 blockiert sie den Prozess
- up-Operation: Prüft, ob der Zähler 0 ist und weckt einen wartenden Prozess; bei > 0 wird der Zähler weiter erhöht
- Semaphoren lassen sich für den gegenseitigen Ausschluss und das Produzent-Konsument-Problem verwenden
Mutexes
- Mutexe dienen dem gegenseitigen Ausschluss und zählen nicht wie Semaphoren
- Mutex_lock und Mutex_unlock arbeiten ähnlich wie down und up bei Semaphoren
- Mutex_lock gibt den exklusiven Zugriff auf die kritische Region oder-blockiert
Monitore
- Ein Monitor ist eine Sammlung von Funktionen und nur über diese Funktionen zugängliche interne Variablen
- Ein Monitor zeichnet sich dadurch aus, dass zu jedem Zeitpunkt maximal ein Prozess im Monitor aktiv sein kann
- Wait und signal sind Zusatzoperationen im Monitor:
- Wait wartet auf ein Signal auf die Zustandsvariable und blockiert den Prozess im Monitor
- Signal sendet ein Signal an den auf die entsprechende Zustandsvariable wartenden Prozess### Monitor
- Eine Zustandsvariable zählt die Signal-Aufrufe nicht wie ein Semaphor, sodass Signale, auf die nicht gewartet wird, verloren gehen.
- Ein entsprechender wait-Aufruf kehrt zurück, wenn ein Signal eintrifft, und der Prozess erhält den exklusiven Zugriff auf den Monitor zurück für die Programmfortsetzung.
Producer-Consumer-Problem
- Ein Monitor kann nur einen Prozess gleichzeitig aktiv haben.
- Ein Puffer hat eine bestimmte Anzahl von Slots (N).
- Ein Producer erstellt ein Item und gibt es an den Monitor zur Einfügung in den Puffer.
- Ein Consumer nimmt ein Item aus dem Puffer und verarbeitet es.
Lösung des Producer-Consumer-Problems in Java
- Die Klasse
ProducerConsumer
enthält einen MonitorPCMonitor
und zwei ThreadsProducer
undConsumer
. - Der Producer produziert ein Item und fügt es dem Puffer hinzu, wenn der Puffer nicht voll ist.
- Der Consumer nimmt ein Item aus dem Puffer und verarbeitet es, wenn der Puffer nicht leer ist.
- Wenn der Puffer voll oder leer ist, wird der Producer oder Consumer.sleep() und wird von einem anderen Thread geweckt.
Nachrichtenaustausch (Message Passing)
- Message Passing ist ein Mechanismus zur Interprozesskommunikation zwischen Computersystemen.
- Nachrichten können im Gegensatz zu lokalen Signalen verloren gehen.
- Das Senden einer Nachricht muss wiederholt werden können.
- Empfangene Nachrichten müssen unterschieden werden können um Kopien zu entdecken.
- Zur Abstimmung von Sender und Empfänger sind Bestätigungen nötig.
Leser-Schreiber-Problem
- Beim Leser-Schreiber-Problem ist es akzeptabel, wenn mehrere Prozesse gleichzeitig lesen.
- Wenn jedoch ein Prozess schreibenden Zugriff verlangt, dann darf kein anderer Prozess (nicht einmal lesend) zugreifen.
- Leser und Schreiber erwirken exklusiven Zugriff auf ihre kritische Region durch Aufruf von down.
- Die Leser unterhalten einen Referenzzähler rc der gleichzeitigen Leserzugriffe, den sie entsprechend erhöhen und vermindern.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Dieser Quiz behandelt die vier Bedingungen für mutual exclusion in kritischen Regionen, um sicherzustellen, dass gemeinsam genutzte Ressourcen korrekt verwendet werden.