52 - 11.2: Einführung [ID:26443]
50 von 57 angezeigt

Hier nun kurz eine Einführung in den Vorlegungsstoff von heute.

Ja, es geht also um den Stillstand gekoppelter Prozesse, wo eine Betriebsmittelzuteilung

vorgenommen worden ist, die in irgendeiner Form vielleicht fehlkonstruiert ist oder

die eben fehlgeleitet ist.

Man wird sehen, dass es zum Beispiel um solche sogenannten überkreuzen Anforderungen von

Betriebsmitteln geht, die die Prozesse gemeinsam benutzen werden.

Dafür werden wir Beispiele sehen.

Es kann aber eben auch ganz einfach darum gehen, dass bestimmte Freigaben von Betriebsmitteln

einfach verloren gehen.

Aus irgendwelchen Gründen, dass eine bestimmte Release-Operation von einem Prozess nicht

mehr durchgeführt wird.

Oder es geht eben auch um im Voraus erworbene Ressourcen, die einfach nicht freigegeben

werden, aufgrund von Fehlzuständen vielleicht die Prozesse innerhalb ihrer Programme denn

erfahren würden, wenn die Programme dann eben zur Ausführung kommen.

Der Dijkstra nannte das Deadly Embrace, also die tödliche Umarbung solcher Prozesse, die

dann direkt oder indirekt voneinander abhängig sind, weil sie über gemeinsame Ressourcen

und sei es nur eine gemeinsame Variable, miteinander gekoppelt sind.

Typischerweise würde man sagen können, ja, das sind Entwurfsfehler in den Programmen.

Tatsächlich ist es der Fall, dass eben dieses nicht zirkelsfehlende Programm, was solchen

Situationen zugrunde liegt, einfach einen Fehler enthält und eine Behebung dieser tödlichen

Umarbung bedeuten würde, dass man Entwurfsänderungen oder Programmieränderungen denn wirklich

vornehmen müsste, so man denn diesen Fehler erkannt hat.

Man kann hier analytisch oder konstruktiv rangehen.

Wir werden beide Dinge in der Vorlesung behandeln, aber der Schwerpunkt wird eben eher auf diese

konstruktiven Maßnahmen liegen.

Das heißt also programmiertechnische Maßnahmen, davon werde ich so kleine Beispiele bringen,

die man ergreifen kann, um letztendlich solche Verklemmungssituationen vorzubeugen.

Es gibt verschiedene Aspekte von solchen Verklenkungen der Prozesse und das hat dann damit zu tun,

wie die eigentlich warten, also was denn wirklich eine Wartesituation technisch gesehen bedeutet.

Wir reden hier einmal von der Totsperre, das wäre der Deadlock oder die Lebenssperre, das

wäre der Livelock.

Nun ist es bezeichnenderweise so, dass die Totsperre das kleinere Übel ist, weil wir

sie erkennen können.

Dazu werde ich dann später konkret noch mehr sagen.

Wohingegen die Lebenssperre einfach nicht erkennbar ist, ist dennoch den gleichen Effekt

halt, hat die Prozesse laufen, also irgendwie noch, aber das Gesamtsystem kommt überhaupt

nicht voran.

Wir können es nicht erkennen und damit ist es eigentlich das größere Übel in dem Fall.

Ideal wäre natürlich ein System, wo man vollständig von solchen Stillstandssituationen

befreit ist.

Gegenmaßnahmen sind jetzt hier Verbeugung von Verklemmung, Vermeidung von Verklemmung

oder eben die Erkennung und dann eben auch Erholung von solchen Situationen.

Die Verbeugung ist eine typische, die Vorbeugung ist eine typische konstruktive Maßnahme, die

ist verbreitet.

Die wird in vielen Systemen denn realisiert.

Man hat zum Teil eben auch noch analytische Maßnahmen, die man versucht zu ergreifen,

die dann aber aufgrund ihrer Komplexität, auch Berechnungskomplexität, die dahintersteckt,

um herauszufinden, wer jetzt mit wem, warum möglicherweise in einer Verklemmungssituation

steckt, ist eben sehr hoch, weshalb man solche analytischen Maßnahmen für gewöhnlich nicht

vorfindet, sondern eben die vorbeugenden Maßnahmen im Vordergrund stehen.

Teil eines Kapitels:
10.4 Kreiseln

Zugänglich über

Offener Zugang

Dauer

00:04:54 Min

Aufnahmedatum

2020-12-14

Hochgeladen am

2020-12-14 10:50:11

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen