Beruflich Dokumente
Kultur Dokumente
2023
Vorbemerkung: Das Übungsblatt dient der Vertiefung und Anwendung des Stoffes im Kurs Verteilte Syste-
me und Systemsicherheit. Wir erwarten, dass Sie die Aufgaben eigenständig bearbeiten. Im Übungsbetrieb
werden die Aufgaben, deren Lösungen sowie die zugrundeliegenden Inhalte besprochen. Die Übungster-
mine für dieses Blatt finden am 06., 07. und 08.06.2023 statt. Der Inhalt aller Aufgaben ist klausurrelevant.
Der Besuch der Vorlesung ist für das Verständnis der Inhalte und die erfolgreiche Teilnahme an der Klausur
essenziell. Die Termine finden Sie im Moodle-Kurs Verteilte Systeme und Systemsicherheit.
Die Abgabe für dieses Blatt erfolgt unter: https://svs.informatik.uni-hamburg.de/abgabe/vss-ss23/8/. Einrei-
chungen können bis zur Abgabefrist beliebig oft aktualisiert werden.
T1 T2
BOT
lockS(A)
read(A)
BOT
lockX(B)
read(B)
* lockX(B) *
..
.
Zur Deadlockvermeidung soll die Strategie wound-wait eingesetzt werden. Beschreiben Sie, welche
Aktion demnach an der mit * gekennzeichneten Stelle zu ergreifen ist.
1
Aufgabe 4 Parallelität in verteilten Systemen
Betrachten Sie das folgende Codebeispiel:
1 funktionA () {
2 solange nicht Lock1 : fordere Lock1 an , warte 100 ms
3 solange nicht Lock2 : fordere Lock2 an , warte 100 ms
4
5 schreibe file (" Ausgabe aus Thread " + ThreadID )
6 unlock Lock1
7 unlock Lock2
8 }
9
10 funktionB () {
11 solange nicht Lock2 : fordere Lock2 an , warte 100 ms
12 solange nicht Lock1 : fordere Lock1 an , warte 100 ms
13
14 schreibe file (" Hallo aus Thread " + ThreadID )
15 unlock Lock2
16 unlock Lock1
17 }
18
19 MAIN () {
20 for ( i = 0; i <= 10; i ++) {
21 erzeuge Thread t
22 if ( i ist gerade ) {
23 starte t mit funktionA ()
24 } else {
25 starte t mit funktionB ()
26 }
27 }
28 }
a) Welche den Programmfluss störende Situation kann hier durch eine Bearbeitung mit mehreren gleich-
zeitigen Threads auftreten?
b) Stellen Sie den Code so um, dass diese Situation nicht mehr auftreten kann. Geben Sie dazu an, welche
Zeilen Sie wohin verschieben würden.