4.5.4 Aufgaben zu Deadlocks

[unmarkierte Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Aufgaben zu Deadlocks=
<br />
== Aufgabe 1 ==
== Aufgabe 1 ==
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="Deadlock">
<loop_task title="Deadlock" id="5fa9784209613">
<p>
<p>
Erläutere: Was versteht man unter einem Deadlock?
Erläutere: Was versteht man unter einem Deadlock?
Zeile 17: Zeile 14:
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="">
<loop_task title="Deadlock-Beispiel" id="5fa978420961c">
<p>
<p>
Erläutern Sie anhand eines selbstgewählten Beispiels, wie ein Deadlock zwischen zwei (oder mehr) Prozessen entstehen kann.
Erläutere anhand eines selbstgewählten Beispiels, wie ein Deadlock zwischen zwei (oder mehr) Prozessen entstehen kann.
</p>
</p>
</loop_task>
</loop_task>
Zeile 26: Zeile 23:


<br />
<br />
== Aufgabe 3 ==
== Aufgabe 3 ==
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="Betriebsmittelgraph">
<loop_task title="Betriebsmittelgraph" id="5fa9784209621">
<p>
<p>
Gegeben seien die Prozesse P1 bis P5 und die Ressourcen A bis G. Jede Ressource sei genau einmal vorhanden, sie kann auch nur exklusiv genutzt werden, d.h. von maximal einem Prozess zur Zeit.
Gegeben seien die Prozesse P1 bis P5 und die Ressourcen A bis G. Jede Ressource sei genau einmal vorhanden, sie kann auch nur exklusiv genutzt werden, d.h. von maximal einem Prozess zur Zeit.
Zeile 42: Zeile 40:
</p>
</p>
<p>
<p>
Zeichnen Sie den Betriebsmittelgraphen!
Zeichne den Betriebsmittelgraphen!
</p>
</p>
<p>
<p>
Woran können Sie am Graphen allgemein erkennen, ob ein Deadlock vorliegt?
Woran kannst du am Graphen allgemein erkennen, ob ein Deadlock vorliegt?
</p>
</p>
<p>
<p>
Zeile 59: Zeile 57:
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="Bedingungen nach Coffman">
<loop_task title="Bedingungen nach Coffman" id="5fa9784209626">
<p>
<p>
In Zusammenhang mit Deadlocks wurden von Coffman et al. vier Bedingungen identifiziert, die allesamt eingetreten sein müssen, damit ein Deadlock entsteht.
In Zusammenhang mit Deadlocks wurden von Coffman et al. vier Bedingungen identifiziert, die allesamt eingetreten sein müssen, damit ein Deadlock entsteht.
Zeile 74: Zeile 72:
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="">
<loop_task title="Auszahlung mit Limit" id="5fa978420962b">
<p>
In einer Bank gibt es verschiedenen Konten, die jeweils einen positiven oder negativen Kontostand aufweisen können. Das Limit zu einem Konto gibt an, um wieviel ein Kontostand überzogen sein darf. <small>(Ein Limit von "-500,00" bedeutet also, der Kontostand darf -500,00 nicht unterschreiten.)</small>
</p>
<p>
<p>
Gegeben sei das folgende "Programmstück", das eine Auszahlung von einem Konto prüft und bucht:
Gegeben sei das folgende "Programmstück", das eine Auszahlung von einem Konto prüft und bucht:
Zeile 81: Zeile 82:
(1) Lese Kontostand des zu belastenden Kontos.<br />
(1) Lese Kontostand des zu belastenden Kontos.<br />
(2) Prüfe ob (Kontostand – Auszahlungsbetrag) < Limit.<br />
(2) Prüfe ob (Kontostand – Auszahlungsbetrag) < Limit.<br />
(3a) Falls ja: Gebe eine Fehlermeldung aus.<br />
(2a) Falls ja: Gebe eine Fehlermeldung aus.<br />
(3b) Falls nein: Überschreibe den Kontostand mit (Kontostand – Auszahlungsbetrag).
(2b) Falls nein: Überschreibe den Kontostand mit (Kontostand – Auszahlungsbetrag).
</p>
</p>
<p>
<p>
Erläutern Sie, warum mehrere Auszahlungen nicht beliebig parallel durchgeführt werden dürfen. Was könnte passieren?
Erläutere warum mehrere Auszahlungen nicht beliebig parallel durchgeführt werden dürfen. Was könnte passieren?
</p>
</p>
<p>
<p>
Erläutern Sie ferner wie das Programmstück abgesichert werden könnte.
Erläutere ferner wie das Programmstück abgesichert werden kann.
</p>
</p>
</loop_task>
</loop_task>
</loop_area>
</loop_area>
</p>
</p>


<div class="autoit_do_not_print">
<div class="autoit_do_not_print">

Aktuelle Version vom 10. November 2020, 14:07 Uhr

Aufgabe 1

Aufgabe

Erläutere: Was versteht man unter einem Deadlock?


Aufgabe 2

Aufgabe

Erläutere anhand eines selbstgewählten Beispiels, wie ein Deadlock zwischen zwei (oder mehr) Prozessen entstehen kann.


Aufgabe 3

Aufgabe

Gegeben seien die Prozesse P1 bis P5 und die Ressourcen A bis G. Jede Ressource sei genau einmal vorhanden, sie kann auch nur exklusiv genutzt werden, d.h. von maximal einem Prozess zur Zeit.

Aktuell besteht folgende Ressourcenzuteilung und -anforderung:

  • P1 belegt D und fordert C und G an.
  • P2 belegt E und fordert B an.
  • P3 belegt B und fordert D an.
  • P4 belegt G und fordert A an.
  • P5 belegt C und fordert E an.

Zeichne den Betriebsmittelgraphen!

Woran kannst du am Graphen allgemein erkennen, ob ein Deadlock vorliegt?

Liegt bei der o.a. Ressourcenzuteilung und -anforderung ein Deadlock vor? Falls ja: Welche Prozesse sind daran beteiligt?


Aufgabe 4

Aufgabe

In Zusammenhang mit Deadlocks wurden von Coffman et al. vier Bedingungen identifiziert, die allesamt eingetreten sein müssen, damit ein Deadlock entsteht.

Nenne und erläutere diese vier Bedingungen in jeweils einem Satz!


Aufgabe 5

Aufgabe

In einer Bank gibt es verschiedenen Konten, die jeweils einen positiven oder negativen Kontostand aufweisen können. Das Limit zu einem Konto gibt an, um wieviel ein Kontostand überzogen sein darf. (Ein Limit von "-500,00" bedeutet also, der Kontostand darf -500,00 nicht unterschreiten.)

Gegeben sei das folgende "Programmstück", das eine Auszahlung von einem Konto prüft und bucht:

(1) Lese Kontostand des zu belastenden Kontos.
(2) Prüfe ob (Kontostand – Auszahlungsbetrag) < Limit.
(2a) Falls ja: Gebe eine Fehlermeldung aus.
(2b) Falls nein: Überschreibe den Kontostand mit (Kontostand – Auszahlungsbetrag).

Erläutere warum mehrere Auszahlungen nicht beliebig parallel durchgeführt werden dürfen. Was könnte passieren?

Erläutere ferner wie das Programmstück abgesichert werden kann.