💾
Betriebssysteme
  • Kursinformationen
    • Termine
  • Einheit 1: Git
    • Einheit 1: Hausaufgabe
  • Einheit 2: C Programmierung
    • Einheit 2: Hausaufgabe
  • Virtualization
    • Exercise: Process Creation
  • Speicher
    • Exercise: Memory
    • Lab 01: Stack
  • Scheduler
    • Exercise: Scheduler
  • Fortgeschrittene Scheduler
  • Fortgeschrittene Speicherverwaltung
    • Exkurs: Free List
    • Lab 02: Free List
  • Threads
    • Exkurs: Bugs durch Nebenläufigkeit
    • Exercise: Deadlock
  • Einheit 9: Semaphore
  • Einheit 10: Input / Ouput
  • Einheit 11: Harddisks & Dateisysteme
  • Einheit 12: Virtualisierung & Container Technologien
  • Einheit 13:
  • Lab 03: Semaphore
  • Lab 04: Canonical Treiber Implementierung
  • Page 1
Powered by GitBook
On this page
Edit on GitHub
  1. Threads

Exercise: Deadlock

Aufgabe

Erstellen Sie ein Java Programm, das einen Deadlock provoziert:

  • Implementieren Sie eine Klasse für einen Sende-Empfänger.

  • Starten Sie für zwei Sende-Empfänger jeweils einen Thread.

  • Empfange wird, indem die Sende-Methode in eine entsprechende Variable des anderen Empfängers schreibt (Hinweis: Threads haben auf den gleichen Heap innerhalb des Prozesses Zugriff)

  • Provozieren Sie nun einen Deadlock aufgrund folgenden Verhaltens: Ein Sender kann keine Nachricht empfangen, solange er senden möchte, bzw. empfängt ein Sender eine Nachricht, kann er keine Nachricht versenden.

  • Tipp: Nutzen Sie das synchronized Keyword in Java, um das gewünschte Verhalten zu provozieren.

Checken Sie das Code-File in Ihrer Gruppe unter dem Ordner sender_receiver in Ihrem Repository ein.

PreviousExkurs: Bugs durch NebenläufigkeitNextEinheit 9: Semaphore

Last updated 4 months ago