03_synchronization_slides_part1_Z Flashcards
Was versteht man unter Prozesssynchronisation?
Prozesssynchronisation bezieht sich auf die Koordinierung des zeitlichen Ablaufs mehrerer nebenläufiger Prozesse oder Threads. Sie ist notwendig, um: - Gemeinsamen Zugriff auf Daten zu regeln und Inkonsistenzen zu vermeiden. - Die gemeinsame Nutzung beschränkter Betriebsmittel sicherzustellen. - Den Austausch von Daten und Nachrichten (Interprozesskommunikation) zu koordinieren. - Die Steuerung von Unterprozessen zu ermöglichen. Zusätzliche Information: In der Informatik ist die Prozesssynchronisation entscheidend, um sicherzustellen, dass mehrere Prozesse nicht in Konflikt geraten, wenn sie auf gemeinsame Ressourcen zugreifen oder miteinander kommunizieren.
Was sind Petri-Netze und woraus bestehen sie?
Petri-Netze sind ein Modellierungswerkzeug zur Darstellung und Analyse von parallelen Systemen. Sie bestehen aus: - Stellen (Places) und Transitionen (Transitions), die durch gerichtete Kanten verbunden sind. - Marken (Tokens), die Datenelemente repräsentieren und in den Stellen gespeichert werden. - Kantengewichte (Arc Weights), die die Bewegungen der Marken beschreiben. Zusätzliche Information: Petri-Netze werden häufig in der Systemmodellierung verwendet, um komplexe Abläufe und Interaktionen in parallel arbeitenden Systemen zu visualisieren und zu analysieren.
Was ist ein Deadlock und welche Kriterien sind dafür notwendig?
Ein Deadlock bezeichnet einen Zustand, bei dem eine Gruppe von Prozessen für immer auf Ereignisse wartet, die nur durch andere Prozesse in der Gruppe ausgelöst werden können. Notwendige Kriterien für einen Deadlock sind: 1. Mutual Exclusion: Exklusiver Zugriff auf Ressourcen. 2. Hold and Wait: Prozesse halten Ressourcen und warten auf zusätzliche. 3. No Preemption: Ressourcen können nicht entzogen werden. 4. Circular Wait: Zirkuläre Abhängigkeit zwischen Prozessen. Zusätzliche Information: Deadlocks können in Computersystemen zu erheblichen Leistungsproblemen führen, da sie die betroffenen Prozesse vollständig blockieren, bis eine externe Intervention erfolgt.
Wie kann man Deadlocks vermeiden oder beheben?
Deadlocks können vermieden oder behoben werden durch: - Deadlock Prevention: Mindestens ein notwendiges Kriterium nicht zutreffen lassen. - Deadlock Avoidance: Nur sichere Zustände zulassen. - Deadlock Recovery: Eingetretene Deadlocks auflösen durch Unterbrechung, Rollback oder Prozessabbruch. Zusätzliche Information: In der Praxis werden oft Deadlock-Prevention-Mechanismen implementiert, um sicherzustellen, dass die Bedingungen für Deadlocks gar nicht erst entstehen können.
Was ist eine Race Condition und wie kann sie vermieden werden?
Eine Race Condition liegt vor, wenn das Ergebnis einer Operation vom nicht-deterministischen zeitlichen Verhalten abhängt. Dies führt zu unvorhersehbarem Verhalten und ist schwer zu debuggen. Vermeidung: - Umfassende Modellierung und sorgfältige Implementierung sind entscheidend. - Nachträgliche Verhinderung ist schwierig, und die Auflösung praktisch unmöglich. Zusätzliche Information: Race Conditions sind besonders in Systemen problematisch, die Parallelität und Nebenläufigkeit unterstützen, wie Betriebssysteme und multithreaded Anwendungen.
Was ist Starvation und wie kann es vermieden werden?
Starvation tritt auf, wenn ein Prozess nie die benötigten Ressourcen erhält, weil andere Prozesse bevorzugt werden. Dies kann durch geeignete Scheduler-Algorithmen und zufällige Wartezeiten vermieden werden. Zusätzliche Information: Scheduler in Betriebssystemen verwenden oft Algorithmen wie Round-Robin oder Fair-Share Scheduling, um sicherzustellen, dass alle Prozesse regelmäßig die CPU-Zeit und andere Ressourcen erhalten.
Was ist das Dining Philosophers Problem und wie kann es gelöst werden?
Das Dining Philosophers Problem ist ein klassisches Synchronisationsproblem, bei dem 5 Philosophen jeweils 2 Gabeln zum Essen benötigen, es aber nur 5 Gabeln gibt. Mögliche Lösung bei Deadlockvermeidung: Philosophen geben eine Gabel ab und warten zufällig, wenn die zweite Gabel nicht verfügbar ist. Starvation Risiko: Ein Philosoph könnte immer Pech haben und endlos warten müssen. Zusätzliche Information: Das Dining Philosophers Problem illustriert die Herausforderungen der Ressourcenallokation und Synchronisation in parallelen Systemen und wird häufig in der theoretischen Informatik und in Lehrbüchern über Betriebssysteme behandelt.