Betriebssysteme - Deadlocks
|
|
|
- Ulrich Stein
- vor 9 Jahren
- Abrufe
Transkript
1 Betriebssysteme - Deadlocks [email protected] Version: (8c45d65) ARSnova Alois Schütte 23. März / 41
2 Inhaltsverzeichnis Dieser Teil erörtert das Problem von Deadlocks (Verklemmungen): Situationen, bei denen sich Prozesse gegenseitig sperren, weil sie auf Ereignisse warten, die von einem anderen wartenden Prozess nicht freigegeben werden können. 1 Überblick 2 Ignorieren des Problems 3 Deadlock-Erkennung und -Behebung Ein Betriebsmittel je Klasse Mehrere Betriebsmittel je Klasse 4 Deadlock-Verhinderung Betriebsmittelflugbahnen Sichere und unsichere Zustände Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus für mehrere Betriebsmittelklassen 5 Deadlock-Vermeidung 2 / 41
3 Überblick Problemstellung Eine Verklemmung (Deadlock) kann wie folgt definiert werden: Eine Menge von Prozessen sperren sich gegenseitig, wenn jeder Prozess der Menge auf ein Ereignis wartet, das nur durch einen anderen Prozess der Menge ausgelöst werden kann. Da alle am Deadlock beteiligten Prozesse warten, kann keiner ein Ereignis auslösen, so dass ein anderer geweckt wird. Also warten alle beteiligten Prozesse ewig. Kennen Sie Beispiele? 3 / 41
4 Überblick Problemstellung Eine Verklemmung (Deadlock) kann wie folgt definiert werden: Eine Menge von Prozessen sperren sich gegenseitig, wenn jeder Prozess der Menge auf ein Ereignis wartet, das nur durch einen anderen Prozess der Menge ausgelöst werden kann. Da alle am Deadlock beteiligten Prozesse warten, kann keiner ein Ereignis auslösen, so dass ein anderer geweckt wird. Also warten alle beteiligten Prozesse ewig. Kennen Sie Beispiele? 3 / 41
5 Überblick Beispiel aus der realen Welt Abbildung: 4 Autos an Kreuzung ohne Verkehrsschilder Welche Beispiele für Deadlocks kennen Sie? 4 / 41
6 Überblick Beispiel aus der Programmierung: zwei Java Threads Deadlock01.java 1 public static void main ( String [] args ) { 2 // resource objects to locks on 3 final Object resource1 = " Jennie "; 4 final Object resource2 = " Hannah "; 6 // first thread - it tries to lock Jennie then Hannah 7 Thread as = new Thread () { 8 public void run () { 9 // lock resource1 10 synchronized ( resource1 ) { 11 System. out. println (" as: habe Jennie "); 13 // pause try { Thread. sleep (50); } 15 catch ( InterruptedException e) {} 17 // attempt to lock resource2 18 System. out. println (" as: möchte noch Hannah "); 19 synchronized ( resource2 ) { 20 System. out. println (" as: habe Hannah "); 21 } 22 } 23 } 24 }; 5 / 41
7 Überblick 1 // second thread - it tries to lock Hannah then Jennie 2 Thread bp = new Thread () { 3 public void run () { 4 // lock resource2 5 synchronized ( resource2 ) { 6 System. out. println (" bp: habe Hannah "); 8 // pause... 9 try { Thread. sleep (50); } 10 catch ( InterruptedException e) {} 12 System. out. println (" bp: möchte noch Jennie "); 13 synchronized ( resource1 ) { 14 System. out. println (" bp: habe Jennie "); 15 } 16 } 17 } 18 }; 20 // start threads - should deadlock and program will never exit 21 as. start (); 22 bp. start (); 23 } 24 } 6 / 41
8 Überblick Bedingungen für Deadlocks Damit ein Deadlock entsteht, müssen alle vier folgenden Bedingungen erfüllt sein: 1 Wechselseitiger Ausschluss: Jedes Betriebsmittel wird entweder von genau einem Prozess belegt oder es ist verfügbar. 7 / 41
9 Überblick Bedingungen für Deadlocks Damit ein Deadlock entsteht, müssen alle vier folgenden Bedingungen erfüllt sein: 1 Wechselseitiger Ausschluss: Jedes Betriebsmittel wird entweder von genau einem Prozess belegt oder es ist verfügbar. 2 Anforderung weitere Betriebsmittel: Ein Prozess, der bereits Betriebsmittel belegt hat, kann weitere Betriebsmittel anfordern. 7 / 41
10 Überblick Bedingungen für Deadlocks Damit ein Deadlock entsteht, müssen alle vier folgenden Bedingungen erfüllt sein: 1 Wechselseitiger Ausschluss: Jedes Betriebsmittel wird entweder von genau einem Prozess belegt oder es ist verfügbar. 2 Anforderung weitere Betriebsmittel: Ein Prozess, der bereits Betriebsmittel belegt hat, kann weitere Betriebsmittel anfordern. 3 Ununterbrechbarkeit: Die von einem Prozess belegten Betriebsmittel können nicht von außen entzogen werden; der Prozess selbst muss sie explizit freigeben. 7 / 41
11 Überblick Bedingungen für Deadlocks Damit ein Deadlock entsteht, müssen alle vier folgenden Bedingungen erfüllt sein: 1 Wechselseitiger Ausschluss: Jedes Betriebsmittel wird entweder von genau einem Prozess belegt oder es ist verfügbar. 2 Anforderung weitere Betriebsmittel: Ein Prozess, der bereits Betriebsmittel belegt hat, kann weitere Betriebsmittel anfordern. 3 Ununterbrechbarkeit: Die von einem Prozess belegten Betriebsmittel können nicht von außen entzogen werden; der Prozess selbst muss sie explizit freigeben. 4 Zyklische Wartebedingung: Es muss eine zyklische Kette von Prozessen geben, so dass jeder Prozess ein Betriebsmittel anfordert, dass vom nächsten Prozess der Kette belegt ist. 7 / 41
12 Überblick Bedingungen für Deadlocks Damit ein Deadlock entsteht, müssen alle vier folgenden Bedingungen erfüllt sein: 1 Wechselseitiger Ausschluss: Jedes Betriebsmittel wird entweder von genau einem Prozess belegt oder es ist verfügbar. 2 Anforderung weitere Betriebsmittel: Ein Prozess, der bereits Betriebsmittel belegt hat, kann weitere Betriebsmittel anfordern. 3 Ununterbrechbarkeit: Die von einem Prozess belegten Betriebsmittel können nicht von außen entzogen werden; der Prozess selbst muss sie explizit freigeben. 4 Zyklische Wartebedingung: Es muss eine zyklische Kette von Prozessen geben, so dass jeder Prozess ein Betriebsmittel anfordert, dass vom nächsten Prozess der Kette belegt ist. 7 / 41
13 Überblick Betriebsmittel-Graphen Man kann die Beziehung von Betriebsmitteln und Prozessen durch bipartite gerichtete Graphen darstellen Die Knoten des Graphen sind unterteilt in: 8 / 41
14 Überblick Betriebsmittel-Graphen Man kann die Beziehung von Betriebsmitteln und Prozessen durch bipartite gerichtete Graphen darstellen Die Knoten des Graphen sind unterteilt in: Prozesse sind als Kreise dargestellt 8 / 41
15 Überblick Betriebsmittel-Graphen Man kann die Beziehung von Betriebsmitteln und Prozessen durch bipartite gerichtete Graphen darstellen Die Knoten des Graphen sind unterteilt in: Prozesse sind als Kreise dargestellt Betriebsmittel werden durch Rechtecke dargestellt 8 / 41
16 Überblick Betriebsmittel-Graphen Man kann die Beziehung von Betriebsmitteln und Prozessen durch bipartite gerichtete Graphen darstellen Die Knoten des Graphen sind unterteilt in: Prozesse sind als Kreise dargestellt Betriebsmittel werden durch Rechtecke dargestellt Eine Kanten von einem Betriebsmittel zu einem Prozess bedeutet, dass der Prozess das Betriebsmittel belegt hat. 8 / 41
17 Überblick Betriebsmittel-Graphen Man kann die Beziehung von Betriebsmitteln und Prozessen durch bipartite gerichtete Graphen darstellen Die Knoten des Graphen sind unterteilt in: Prozesse sind als Kreise dargestellt Betriebsmittel werden durch Rechtecke dargestellt Eine Kanten von einem Betriebsmittel zu einem Prozess bedeutet, dass der Prozess das Betriebsmittel belegt hat. Eine Kante von einem Prozess zu einem Betriebsmittel sagt aus, dass der Prozess blockiert ist, weil er auf das Betriebsmittel wartet. 8 / 41
18 Überblick Betriebsmittel-Graphen Man kann die Beziehung von Betriebsmitteln und Prozessen durch bipartite gerichtete Graphen darstellen Die Knoten des Graphen sind unterteilt in: Prozesse sind als Kreise dargestellt Betriebsmittel werden durch Rechtecke dargestellt Eine Kanten von einem Betriebsmittel zu einem Prozess bedeutet, dass der Prozess das Betriebsmittel belegt hat. Eine Kante von einem Prozess zu einem Betriebsmittel sagt aus, dass der Prozess blockiert ist, weil er auf das Betriebsmittel wartet. 8 / 41
19 Überblick Beispiel für Betriebsmittelgraph P1 B1 P1 B1 Prozess P1 belegt Betriebsmittel B1 B2 P2 P2 wartet auf Zuteilung von B2 B1 P1 B2 Deadlock, Zyklus P1-B2-P2-P1 P2 9 / 41
20 Überblick Betriebsmittel-Graphen sind Hilfsmittel für das Betriebssystem, um Abfolgen von Anforderungen und Freigaben von Betriebsmitteln durch Prozesse verwalten zu können, so dass Deadlocks nicht entstehen. Gehen wir von folgender Situation aus: Es gibt drei Prozesse P1, P2 und P3 Jeder Prozess fordert zwei Betriebsmittel an: P1 benötigt B1 und B2 P2 benötigt B2 und B3 P3 benötigt B3 und B1 Welche Situationen (Reihenfolge der Betriebsmittelzuteilung) führen zu Deadlocks? 10 / 41
21 Überblick Keine Nebenläufigkeit, d.h. Betriebssystem wählt zuerst P1, dann P2 und am Schluss P3, wobei jeder Prozess vollständig abgearbeitet wird: 11 / 41
22 Überblick Keine Nebenläufigkeit, d.h. Betriebssystem wählt zuerst P1, dann P2 und am Schluss P3, wobei jeder Prozess vollständig abgearbeitet wird: 12 / 41
23 Überblick Keine Nebenläufigkeit, d.h. Betriebssystem wählt zuerst P1, dann P2 und am Schluss P3, wobei jeder Prozess vollständig abgearbeitet wird: 13 / 41
24 Überblick Nebenläufigkeit mit schlechter Reihenfolge: P1 P2 P3 P1 fordert B1 an P2 fordert B2 an P3 fordert B3 an P1 fordert B2 an P2 fordert B3 an B1 B2 B3 P1 P2 P3 B1 B2 B3 P3 fordert B1 an P1 P2 P3 Deadlock B1 B2 B3 14 / 41
25 Überblick Nebenläufigkeit mit geschickter Reihenfolge: Betriebsmittelgraph an Tafel 1 P1 fordert B1 an 2 P3 fordert B3 an 3 P1 fordert B2 an 4 P3 fordert B1 an 5 P1 gibt B1 frei 6 P1 gibt B2 frei 7 P3 gibt B1 frei 8 P3 gibt B3 frei 9 P2 fordert B2 an 10 P2 fordert B3 an 11 P2 gibt B2 frei 12 P2 gibt B3 frei 15 / 41
26 Überblick Strategien der Deadlock-Behandlung Durch geschickte Auswahl der Prozesse können also Deadlock-Situationen behandelt werden. Man kann grundsätzlich vier Strategien unterscheiden: 1 Ignorieren des Problems (Strategie von Unix Systemen) 2 Erkennen und Beheben von Deadlocks 3 dynamische Verhinderung durch vorsichtige Betriebsmittelzuteilung 4 Vermeidung durch Verbieten einer der 4 notwendigen Bedingungen Im Folgenden werden diese Arten des Umgangs mit Deadlocks verdeutlicht. 16 / 41
27 Überblick Strategien der Deadlock-Behandlung Durch geschickte Auswahl der Prozesse können also Deadlock-Situationen behandelt werden. Man kann grundsätzlich vier Strategien unterscheiden: 1 Ignorieren des Problems (Strategie von Unix Systemen) 2 Erkennen und Beheben von Deadlocks 3 dynamische Verhinderung durch vorsichtige Betriebsmittelzuteilung 4 Vermeidung durch Verbieten einer der 4 notwendigen Bedingungen Im Folgenden werden diese Arten des Umgangs mit Deadlocks verdeutlicht. 16 / 41
28 Ignorieren des Problems Vogel Strauß Algorithmus Der Vogel-Strauß Algorithmus (Stecke Kopf in den Sand und verhalte dich so, als gäbe es kein Problem) geht davon aus, dass Deadlocks eher selten auftreten, Systeme häufiger gebootet werden (wg. Fehlern, Wartung), Einbußen an Komfort durch Deadlock-Erkennung oder -Verhinderung nicht akzeptabel sind. Performance (Prozesse schreiten langsam voran, wenn Betriebsmittel angefragt wird) oder Bequemlichkeit (z.b. nur eine geöffnete Datei oder nur ein Prozess je Programm erlaubt) In Unix ist diese Strategie gewählt. 17 / 41
29 Deadlock-Erkennung und -Behebung Deadlock-Erkennung und -Behebung Hier werden Deadlocks nicht verhindert, sondern erkannt und behoben. Die Betriebsmittel werden in Klassen aufgeteilt, z.b.: Drucker Plotter, Bandlaufwerke, Netzwerkkarten. Wir unterscheiden Verfahren, je nachdem ob ein oder mehrere Betriebsmittel je Klasse im System verfügbar sind. 18 / 41
30 Deadlock-Erkennung und -Behebung Deadlock-Erkennung und -Behebung Hier werden Deadlocks nicht verhindert, sondern erkannt und behoben. Die Betriebsmittel werden in Klassen aufgeteilt, z.b.: Drucker Plotter, Bandlaufwerke, Netzwerkkarten. Wir unterscheiden Verfahren, je nachdem ob ein oder mehrere Betriebsmittel je Klasse im System verfügbar sind. 18 / 41
31 Deadlock-Erkennung und -Behebung Ein Betriebsmittel je Klasse Ein Betriebsmittel je Klasse Gehen wir von einem System mit 7 Prozessen (A-G) und 6 Betriebsmitteln (a-f) aus. Die Betriebsmittelbelegungen und -anforderungen seien geben durch: 1 A belegt a und fordert b an 2 B belegt nichts und fordert c an 3 C belegt nichts und fordert b an 4 D belegt d und fordert b und c an 5 E belegt c und fordert e an 6 F belegt f und fordert b an 7 G belegt e und fordert d an Frage / Problemstellung: Befindet sich das System in einem Deadlock-Zustand, wenn ja, welche Prozesse sind daran beteiligt? 19 / 41
32 Deadlock-Erkennung und -Behebung Ein Betriebsmittel je Klasse Lösung Ermittle Betriebsmittel-Graph, Teste auf Zykel 1 A belegt a und fordert b an 2 B belegt nichts und fordert c an 3 C belegt nichts und fordert b an 4 D belegt d und fordert b und c an 5 E belegt c und fordert e an 6 F belegt f und fordert b an 7 G belegt e und fordert d an a A B C b D c E F d e f G 20 / 41
33 Deadlock-Erkennung und -Behebung Ein Betriebsmittel je Klasse Verfahren 1 : Topologisches Sortieren von gerichteten Graphen 1 bool IsZyclic ( Digraph <TV, maxnodes > g) { // Testet, ob g Zykel hat 2 queue <int > q; // Schlange für Auswahlkandidaten 3 int * indegree = new int [g. GetMaxNodes ()]; 4 int v = g. FirstVertex (); 5 while (v!= -1) { 6 indegree [v] = g. GetIndegree (v); // Eingangsgrade initialisieren 7 if ( indegree [v] == 0) q. push (v); // Knoten mit idegree =0 8 v = g. NextVertex (v); // aufnehmen 9 } 10 while (! q. empty ()) { // Solange bis Schlange leer 11 v = q. front (); // nächster Knoten aus Schlange lesen 12 q. pop (); // und aus Schlange entfernen 13 int w = g. FirstArc (v); // erste von v ausgehende Kante (v,w) 14 while (w!= -1) { // für alle Nachfolger von v 15 indegree [w]--; // Eingangsgrad von w dekrementieren 16 if ( indegree [w] == 0) q. push (w); // Knoten mit idegree =0 17 w = g. NextArc (v,w); // nächste Kante (v,w) 18 } 19 } 20 v = g. FirstVertex (); 21 while (v!= -1) { // g hat Zykel, wenn es noch Knoten 22 if ( indegree [v]!= 0) return true ;// mit Eingangsgrad!= 0 gibt 23 v = g. NextVertex (v); 24 } 25 return false ; 26 } 1 vgl. PG2, a.schuette 21 / 41
34 Deadlock-Erkennung und -Behebung Ein Betriebsmittel je Klasse Hörsaalübung Verwenden Sie den Algorithmus Typologische Sortieren der letzten Folie auf die u.a. Situation. a A B C b D c E F d e f G 22 / 41
35 Deadlock-Erkennung und -Behebung Ein Betriebsmittel je Klasse g hat Zykel : 1 Knoten : 0 : A, 1 : B, 2 : C, 3 : D, 4 : E, 5 : F, 6 : G, 7 : a, 8 : b, 9 : c, 1 0 : d, 1 1 : e, 1 2 : f 0 Adjazenz Matrix : a A B C b D c E F d e f G Am Ende des Tests ist die Schlange leer und es gibt noch Knoten (roten), die einen Eingangsgrad > 0 haben, sie bilden die Deadlock-Prozesse. Der Aufwand ist recht groß: O( Knoten + Kanten ). Deshalb wird nicht bei jeder Anforderung eines Betriebsmittels auf Zykelfreiheit geprüft, sondern etwa nur: alle k Minuten oder wenn die Prozessorlast unter festgesetzte Schwelle fällt. 23 / 41
36 Deadlock-Erkennung und -Behebung Ein Betriebsmittel je Klasse g hat Zykel : 1 Knoten : 0 : A, 1 : B, 2 : C, 3 : D, 4 : E, 5 : F, 6 : G, 7 : a, 8 : b, 9 : c, 1 0 : d, 1 1 : e, 1 2 : f 0 Adjazenz Matrix : a A B C b D c E F d e f G Am Ende des Tests ist die Schlange leer und es gibt noch Knoten (roten), die einen Eingangsgrad > 0 haben, sie bilden die Deadlock-Prozesse. Der Aufwand ist recht groß: O( Knoten + Kanten ). Deshalb wird nicht bei jeder Anforderung eines Betriebsmittels auf Zykelfreiheit geprüft, sondern etwa nur: alle k Minuten oder wenn die Prozessorlast unter festgesetzte Schwelle fällt. 23 / 41
37 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Mehrere Betriebsmittel je Klasse Wenn mehrere Instanzen einer Betriebsmittelklasse existieren, kann folgender Matrix-basierter Ansatz gewählt werden. Sei V = (V 1, V 2,... V m ) der Betriebsmittelvektor, wobei V i die Anzahl der vorhandenen Mittel der Klasse i angibt. Zu jedem Zeitpunkt sei R = (R 1, R 2,... R m ) der Betriebsmittelrestevektor der die nicht belegten Betriebsmittel definiert. 24 / 41
38 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Mehrere Betriebsmittel je Klasse Wenn mehrere Instanzen einer Betriebsmittelklasse existieren, kann folgender Matrix-basierter Ansatz gewählt werden. Sei V = (V 1, V 2,... V m ) der Betriebsmittelvektor, wobei V i die Anzahl der vorhandenen Mittel der Klasse i angibt. Zu jedem Zeitpunkt sei R = (R 1, R 2,... R m ) der Betriebsmittelrestevektor der die nicht belegten Betriebsmittel definiert. Die beiden Matrizen B und A beschreiben die insgesamt belegten und angeforderten Betriebsmittel der n Prozesse. B ij seien die vom Prozess i belegten Betriebsmittel der Klasse j, A ij die von ihm angeforderten. 24 / 41
39 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Mehrere Betriebsmittel je Klasse Wenn mehrere Instanzen einer Betriebsmittelklasse existieren, kann folgender Matrix-basierter Ansatz gewählt werden. Sei V = (V 1, V 2,... V m ) der Betriebsmittelvektor, wobei V i die Anzahl der vorhandenen Mittel der Klasse i angibt. Zu jedem Zeitpunkt sei R = (R 1, R 2,... R m ) der Betriebsmittelrestevektor der die nicht belegten Betriebsmittel definiert. Die beiden Matrizen B und A beschreiben die insgesamt belegten und angeforderten Betriebsmittel der n Prozesse. B ij seien die vom Prozess i belegten Betriebsmittel der Klasse j, A ij die von ihm angeforderten. Da jedes Betriebsmittel entweder belegt oder verfügbar ist, gilt: n B ij + R j = V j 1=1 d.h. Anzahl der Mittel der Klasse j, die belegt sind und die noch freien Mittel der Klasse j ergeben die insgesamt verfügbaren Mittel der Klasse j. 24 / 41
40 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Mehrere Betriebsmittel je Klasse Wenn mehrere Instanzen einer Betriebsmittelklasse existieren, kann folgender Matrix-basierter Ansatz gewählt werden. Sei V = (V 1, V 2,... V m ) der Betriebsmittelvektor, wobei V i die Anzahl der vorhandenen Mittel der Klasse i angibt. Zu jedem Zeitpunkt sei R = (R 1, R 2,... R m ) der Betriebsmittelrestevektor der die nicht belegten Betriebsmittel definiert. Die beiden Matrizen B und A beschreiben die insgesamt belegten und angeforderten Betriebsmittel der n Prozesse. B ij seien die vom Prozess i belegten Betriebsmittel der Klasse j, A ij die von ihm angeforderten. Da jedes Betriebsmittel entweder belegt oder verfügbar ist, gilt: n B ij + R j = V j 1=1 d.h. Anzahl der Mittel der Klasse j, die belegt sind und die noch freien Mittel der Klasse j ergeben die insgesamt verfügbaren Mittel der Klasse j. 24 / 41
41 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Beispiel Bandgerät Plotter Drucker CD-ROM Betriebsmittelvektor V = ( ) Betriebsmittelrestevektor R = ( ) B = A = Also belegt der Prozess 2 z.b. 2 Bandgeräte und ein CD-Rom Laufwerk und möchte weiterhin ein weiteres Bandgerät und einen Drucker haben. 25 / 41
42 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Der Deadlockerkennungsalgorithmus basiert auf dem Vergleich von Vektoren. Die Relation für 2 Vektoren A und B sei definiert als: A B gdw. für alle 0 i m gilt: A i B i Also müssen alle Elemente von A kleiner oder gleich dem korrespondierenden Element von B sein. 26 / 41
43 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Deadlockerkennungsalgorithmus Voraussetzung: Jeder Prozess fordert alle Betriebsmittel auf einmal an. Eine Markierung eines Prozesses bedeutet, dass er alle Ressourcen hat und seine Ausführung beenden kann. 1 Anfänglich ist kein Prozess markiert. 27 / 41
44 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Deadlockerkennungsalgorithmus Voraussetzung: Jeder Prozess fordert alle Betriebsmittel auf einmal an. Eine Markierung eines Prozesses bedeutet, dass er alle Ressourcen hat und seine Ausführung beenden kann. 1 Anfänglich ist kein Prozess markiert. 2 Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 27 / 41
45 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Deadlockerkennungsalgorithmus Voraussetzung: Jeder Prozess fordert alle Betriebsmittel auf einmal an. Eine Markierung eines Prozesses bedeutet, dass er alle Ressourcen hat und seine Ausführung beenden kann. 1 Anfänglich ist kein Prozess markiert. 2 Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 27 / 41
46 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Deadlockerkennungsalgorithmus Voraussetzung: Jeder Prozess fordert alle Betriebsmittel auf einmal an. Eine Markierung eines Prozesses bedeutet, dass er alle Ressourcen hat und seine Ausführung beenden kann. 1 Anfänglich ist kein Prozess markiert. 2 Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 27 / 41
47 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Deadlockerkennungsalgorithmus Voraussetzung: Jeder Prozess fordert alle Betriebsmittel auf einmal an. Eine Markierung eines Prozesses bedeutet, dass er alle Ressourcen hat und seine Ausführung beenden kann. 1 Anfänglich ist kein Prozess markiert. 2 Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 27 / 41
48 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Deadlockerkennungsalgorithmus Voraussetzung: Jeder Prozess fordert alle Betriebsmittel auf einmal an. Eine Markierung eines Prozesses bedeutet, dass er alle Ressourcen hat und seine Ausführung beenden kann. 1 Anfänglich ist kein Prozess markiert. 2 Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. 27 / 41
49 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Deadlockerkennungsalgorithmus Voraussetzung: Jeder Prozess fordert alle Betriebsmittel auf einmal an. Eine Markierung eines Prozesses bedeutet, dass er alle Ressourcen hat und seine Ausführung beenden kann. 1 Anfänglich ist kein Prozess markiert. 2 Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. 27 / 41
50 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Deadlockerkennungsalgorithmus Voraussetzung: Jeder Prozess fordert alle Betriebsmittel auf einmal an. Eine Markierung eines Prozesses bedeutet, dass er alle Ressourcen hat und seine Ausführung beenden kann. 1 Anfänglich ist kein Prozess markiert. 2 Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. Terminiert das Verfahren und es existieren nicht markierte Prozesse, so sind diese in einem Deadlock-Zustand. 27 / 41
51 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Deadlockerkennungsalgorithmus Voraussetzung: Jeder Prozess fordert alle Betriebsmittel auf einmal an. Eine Markierung eines Prozesses bedeutet, dass er alle Ressourcen hat und seine Ausführung beenden kann. 1 Anfänglich ist kein Prozess markiert. 2 Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. Terminiert das Verfahren und es existieren nicht markierte Prozesse, so sind diese in einem Deadlock-Zustand. 27 / 41
52 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Beispiel Ausgangssituation Algorithmus 1 Anfänglich ist kein Prozess markiert. Betriebsmittelvektor V = ( ) Betriebsmittelrestevektor R = ( ) B = Bandgerät A = Plotter Drucker CD-ROM Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. 1 markierte Prozesse: {} 28 / 41
53 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Beispiel Ausgangssituation Algorithmus 1 Anfänglich ist kein Prozess markiert. Betriebsmittelvektor V = ( ) Betriebsmittelrestevektor R = ( ) B = Bandgerät A = Plotter Drucker CD-ROM Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. 1 markierte Prozesse: {} 2 nur P 3 kann gewählt werden, denn A 1 R nicht erfüllt erfüllt (CD Rom fehlt), A 2 R auch nicht erfüllt 28 / 41
54 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Beispiel Ausgangssituation Algorithmus 1 Anfänglich ist kein Prozess markiert. Betriebsmittelvektor V = ( ) Betriebsmittelrestevektor R = ( ) B = Bandgerät A = Plotter Drucker CD-ROM Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. 1 markierte Prozesse: {} 2 nur P 3 kann gewählt werden, denn A 1 R nicht erfüllt erfüllt (CD Rom fehlt), A 2 R auch nicht erfüllt 28 / 41
55 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Beispiel Ausgangssituation Algorithmus 1 Anfänglich ist kein Prozess markiert. Betriebsmittelvektor V = ( ) Betriebsmittelrestevektor R = ( ) B = Bandgerät A = Plotter Drucker CD-ROM Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. 1 markierte Prozesse: {} 2 nur P 3 kann gewählt werden, denn A 1 R nicht erfüllt erfüllt (CD Rom fehlt), A 2 R auch nicht erfüllt 3 P 3 arbeitet, d.h. R = (0000) markierte Prozesse: {P3}, P 3 terminiert, d.h. alle Ressourcen von P 3 werden freigegeben, damit ist R = (2220) 28 / 41
56 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Beispiel Ausgangssituation Algorithmus 1 Anfänglich ist kein Prozess markiert. Betriebsmittelvektor V = ( ) Betriebsmittelrestevektor R = ( ) B = Bandgerät A = Plotter Drucker CD-ROM Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. 1 markierte Prozesse: {} 2 nur P 3 kann gewählt werden, denn A 1 R nicht erfüllt erfüllt (CD Rom fehlt), A 2 R auch nicht erfüllt 3 P 3 arbeitet, d.h. R = (0000) markierte Prozesse: {P3}, P 3 terminiert, d.h. alle Ressourcen von P 3 werden freigegeben, damit ist R = (2220) 28 / 41
57 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Beispiel Ausgangssituation Algorithmus 1 Anfänglich ist kein Prozess markiert. Betriebsmittelvektor V = ( ) Betriebsmittelrestevektor R = ( ) B = Bandgerät A = Plotter Drucker CD-ROM Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. 1 markierte Prozesse: {} 2 nur P 3 kann gewählt werden, denn A 1 R nicht erfüllt erfüllt (CD Rom fehlt), A 2 R auch nicht erfüllt 3 P 3 arbeitet, d.h. R = (0000) markierte Prozesse: {P3}, P 3 terminiert, d.h. alle Ressourcen von P 3 werden freigegeben, damit ist R = (2220) 4 nun wird P 2 ausgeführt, danach ist R = (4221) und P 1 kann arbeiten, markierte Prozesse: {P1, P2, P3} also kein Deadlock. 28 / 41
58 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Beispiel Ausgangssituation Algorithmus 1 Anfänglich ist kein Prozess markiert. Betriebsmittelvektor V = ( ) Betriebsmittelrestevektor R = ( ) B = Bandgerät A = Plotter Drucker CD-ROM Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. 1 markierte Prozesse: {} 2 nur P 3 kann gewählt werden, denn A 1 R nicht erfüllt erfüllt (CD Rom fehlt), A 2 R auch nicht erfüllt 3 P 3 arbeitet, d.h. R = (0000) markierte Prozesse: {P3}, P 3 terminiert, d.h. alle Ressourcen von P 3 werden freigegeben, damit ist R = (2220) 4 nun wird P 2 ausgeführt, danach ist R = (4221) und P 1 kann arbeiten, markierte Prozesse: {P1, P2, P3} also kein Deadlock. 28 / 41
59 Deadlock-Erkennung und -Behebung Mehrere Betriebsmittel je Klasse Hörsaalübung Was passiert in der u.a. Situation? (Prozess 3 fordert zusätzlich noch ein CD-Rom Laufwerk an) Ausgangssituation Algorithmus 1 Anfänglich ist kein Prozess markiert. Betriebsmittelvektor V = ( ) Betriebsmittelrestevektor R = ( ) B = Bandgerät A = Plotter Drucker CD-ROM Wähle einen beliebigen unmarkierten Prozess P i aus, für den gilt A i R (also alle Anforderungen von P i können befriedigt werden) 3 Falls ein solcher Prozess existiert, so bilde R = R + B i (er gibt ja alle Ressourcen wieder frei, wenn er terminiert), markiere den Prozess und gehe zu Schritt 2 4 Andernfalls terminiere das Verfahren. Tafel 29 / 41
60 Deadlock-Verhinderung Deadlock-Verhinderung Die Voraussetzung bei der Deadlock-Erkennung war, dass ein Prozess seine Betriebsmittel auf einen Schlag anfordert und zugeteilt bekommt. Dies ist nicht realistisch, Betriebsmittel werden i.a. nacheinander angefordert und freigegeben. Das Betriebssystem muss dann entscheiden, 1 ob ein Betriebsmittel-Zuteilung sicher ist oder nicht 2 und nur im sicheren Fall die Zuteilung erlauben. Deadlock-Verhinderungsalgorithmen basieren auf dem Konzept der sicheren Zustände. 30 / 41
61 Deadlock-Verhinderung Betriebsmittelflugbahnen Betriebsmittelflugbahnen 2 Prozesse A und B, die je einen Drucker und einen Plotter benötigen. Jeder Punkt repräsentiert einen gemeinsamen Zustand von A und B. Bevor A und B starten, sind wir im Punkt p. Der Scheduler wählt A, wir gelangen zu Punkt q; der Scheduler wählt B und wir sind in r. Das BS darf keine Flugbahn durch eine unsichere Region erlauben, ansonsten kann ein Deadlock entstehen (z.b. Punkt t). Zum Zeitpunkt t muss also das BS entscheiden, B zu suspendieren bis A beendet ist. Drucker Plotter I8 I7 I6 I5 B p sicher sicher sicher r q unsicher sicher sicher I1 I2 I3 I4 Drucker Plotter Abbildung: Betriebsmittelflugbahn mit 2 Prozessen A und B t s u A 31 / 41
62 Deadlock-Verhinderung Sichere und unsichere Zustände Sichere und unsichere Zustände Der Deadlock-Verhinderungsalgorithmus verwendet die bekannten Betriebsmittelvektoren, um sichere Zustände zu erkennen. Def: sicherer Zustand Ein Zustand ist sicher, wenn er kein Deadlockzustand ist und es ein Möglichkeit gibt, alle Anforderungen zu erfüllen, indem eine geschickte Reihenfolge der Prozesse gewählt wird. 32 / 41
63 Deadlock-Verhinderung Sichere und unsichere Zustände Sichere und unsichere Zustände Beispiel mit einer Betriebsmittelklasse (10 Einheiten insgesamt verfügbar): Prozess A hat aktuell 3 Einheiten, er benötigt insgesamt 9. Prozess B hat aktuell 2 Einheiten, er benötigt insgesamt 4. Ist dies ein sicherer Zustand? akt max A 3 9 B 2 4 C 2 7 frei: 3 33 / 41
64 Deadlock-Verhinderung Sichere und unsichere Zustände Zustand ist sicher Es gibt eine Abfolge von Prozessen: akt max A 3 9 B 2 4 C 2 7 (1) frei: 3 akt max A 3 9 B 4 4 C 2 7 (2) frei: 1 akt max A 3 9 B 0 - C 2 7 (3) frei: 5 akt max A 3 9 B 0 - C 7 7 (4) frei: 0 akt max A 3 9 B 0 - C 0 - (5) frei: 7 1 Ausgangssituation 2 B wird gewählt 34 / 41
65 Deadlock-Verhinderung Sichere und unsichere Zustände Zustand ist sicher Es gibt eine Abfolge von Prozessen: akt max A 3 9 B 2 4 C 2 7 (1) frei: 3 akt max A 3 9 B 4 4 C 2 7 (2) frei: 1 akt max A 3 9 B 0 - C 2 7 (3) frei: 5 akt max A 3 9 B 0 - C 7 7 (4) frei: 0 akt max A 3 9 B 0 - C 0 - (5) frei: 7 1 Ausgangssituation 2 B wird gewählt 3 B ist beendet, gibt Mittel frei 34 / 41
66 Deadlock-Verhinderung Sichere und unsichere Zustände Zustand ist sicher Es gibt eine Abfolge von Prozessen: akt max A 3 9 B 2 4 C 2 7 (1) frei: 3 akt max A 3 9 B 4 4 C 2 7 (2) frei: 1 akt max A 3 9 B 0 - C 2 7 (3) frei: 5 akt max A 3 9 B 0 - C 7 7 (4) frei: 0 akt max A 3 9 B 0 - C 0 - (5) frei: 7 1 Ausgangssituation 2 B wird gewählt 3 B ist beendet, gibt Mittel frei 4 Scheduler wählt C 34 / 41
67 Deadlock-Verhinderung Sichere und unsichere Zustände Zustand ist sicher Es gibt eine Abfolge von Prozessen: akt max A 3 9 B 2 4 C 2 7 (1) frei: 3 akt max A 3 9 B 4 4 C 2 7 (2) frei: 1 akt max A 3 9 B 0 - C 2 7 (3) frei: 5 akt max A 3 9 B 0 - C 7 7 (4) frei: 0 akt max A 3 9 B 0 - C 0 - (5) frei: 7 1 Ausgangssituation 2 B wird gewählt 3 B ist beendet, gibt Mittel frei 4 Scheduler wählt C 5 C ist beendet 34 / 41
68 Deadlock-Verhinderung Sichere und unsichere Zustände Zustand ist sicher Es gibt eine Abfolge von Prozessen: akt max A 3 9 B 2 4 C 2 7 (1) frei: 3 akt max A 3 9 B 4 4 C 2 7 (2) frei: 1 akt max A 3 9 B 0 - C 2 7 (3) frei: 5 akt max A 3 9 B 0 - C 7 7 (4) frei: 0 akt max A 3 9 B 0 - C 0 - (5) frei: 7 1 Ausgangssituation 2 B wird gewählt 3 B ist beendet, gibt Mittel frei 4 Scheduler wählt C 5 C ist beendet 6 nun kann A 6 weitere Einheiten bekommen. Alle Prozesse konnten beendet werden: Ausgangszustand war sicher! 34 / 41
69 Deadlock-Verhinderung Sichere und unsichere Zustände Zustand ist sicher Es gibt eine Abfolge von Prozessen: akt max A 3 9 B 2 4 C 2 7 (1) frei: 3 akt max A 3 9 B 4 4 C 2 7 (2) frei: 1 akt max A 3 9 B 0 - C 2 7 (3) frei: 5 akt max A 3 9 B 0 - C 7 7 (4) frei: 0 akt max A 3 9 B 0 - C 0 - (5) frei: 7 1 Ausgangssituation 2 B wird gewählt 3 B ist beendet, gibt Mittel frei 4 Scheduler wählt C 5 C ist beendet 6 nun kann A 6 weitere Einheiten bekommen. Alle Prozesse konnten beendet werden: Ausgangszustand war sicher! 34 / 41
70 Deadlock-Verhinderung Sichere und unsichere Zustände Beispiel für unsicheren Zustand akt max A 3 9 B 2 4 C 2 7 (1) frei: 3 akt max A 4 9 B 2 4 C 2 7 (2) frei: 2 akt max A 4 9 B 4 4 C 2 7 (3) frei: 0 akt max A 4 9 B 0 - C 2 7 (4) frei: 4 1 Ausgangssituation 2 Prozeß A fordert eine Einheit an, er wird ausgewählt. Gibt es jetzt noch eine Folge? 3 Versuchen wir B: B erhält alle Mittel 4 B gibt sie frei Nur noch 4 Betriebsmittel, aber A und C benötigen 5! Der Schritt 1, (A eine Einheit geben war falsch!) 35 / 41
71 Deadlock-Verhinderung Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus für eine Betriebsmittelklasse Dijkstra hat 1965 den Bankier-Algorithmus vorgestellt. Der Bankier betreut Kunden (Prozesse), die jeweils einen Kreditrahmen (maximale Betriebsmittel-Anforderung) eingeräumt bekommen. 36 / 41
72 Deadlock-Verhinderung Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus für eine Betriebsmittelklasse Dijkstra hat 1965 den Bankier-Algorithmus vorgestellt. Der Bankier betreut Kunden (Prozesse), die jeweils einen Kreditrahmen (maximale Betriebsmittel-Anforderung) eingeräumt bekommen. Von Zeit zu Zeit kommt ein Kunde und beantragt ein Darlehen, das den Kreditrahmen insgesamt über alle seine bereits erhaltenen Zahlungen nicht übersteigt. 36 / 41
73 Deadlock-Verhinderung Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus für eine Betriebsmittelklasse Dijkstra hat 1965 den Bankier-Algorithmus vorgestellt. Der Bankier betreut Kunden (Prozesse), die jeweils einen Kreditrahmen (maximale Betriebsmittel-Anforderung) eingeräumt bekommen. Von Zeit zu Zeit kommt ein Kunde und beantragt ein Darlehen, das den Kreditrahmen insgesamt über alle seine bereits erhaltenen Zahlungen nicht übersteigt. Der Bankier kann einem Kunden den Kreditwunsch verweigern, wenn die Gefahr besteht, dass die Bank unzureichende Reserven für weitere Kunden hat, die es den Kunden ermöglichen, ihre bereits erhaltenen Kredite zurückzahlen zu können. 36 / 41
74 Deadlock-Verhinderung Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus für eine Betriebsmittelklasse Dijkstra hat 1965 den Bankier-Algorithmus vorgestellt. Der Bankier betreut Kunden (Prozesse), die jeweils einen Kreditrahmen (maximale Betriebsmittel-Anforderung) eingeräumt bekommen. Von Zeit zu Zeit kommt ein Kunde und beantragt ein Darlehen, das den Kreditrahmen insgesamt über alle seine bereits erhaltenen Zahlungen nicht übersteigt. Der Bankier kann einem Kunden den Kreditwunsch verweigern, wenn die Gefahr besteht, dass die Bank unzureichende Reserven für weitere Kunden hat, die es den Kunden ermöglichen, ihre bereits erhaltenen Kredite zurückzahlen zu können. Der Bankier prüft bei einem Darlehensantrag, ob die Zuteilung zu einem sicheren Zustand führt. Ist das nicht der Fall, wird die Zuteilung aufgeschoben, ansonsten gezahlt. 36 / 41
75 Deadlock-Verhinderung Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus für eine Betriebsmittelklasse Dijkstra hat 1965 den Bankier-Algorithmus vorgestellt. Der Bankier betreut Kunden (Prozesse), die jeweils einen Kreditrahmen (maximale Betriebsmittel-Anforderung) eingeräumt bekommen. Von Zeit zu Zeit kommt ein Kunde und beantragt ein Darlehen, das den Kreditrahmen insgesamt über alle seine bereits erhaltenen Zahlungen nicht übersteigt. Der Bankier kann einem Kunden den Kreditwunsch verweigern, wenn die Gefahr besteht, dass die Bank unzureichende Reserven für weitere Kunden hat, die es den Kunden ermöglichen, ihre bereits erhaltenen Kredite zurückzahlen zu können. Der Bankier prüft bei einem Darlehensantrag, ob die Zuteilung zu einem sicheren Zustand führt. Ist das nicht der Fall, wird die Zuteilung aufgeschoben, ansonsten gezahlt. 36 / 41
76 Deadlock-Verhinderung Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus: Überprüfung ob Zustand sicher ist Die Überprüfung simuliert die Darlehensvergabe der Kunden. Wenn alle Kunden dabei befriedigt werden können, ist der Zustand sicher und der aktuelle Darlehensantrag wird gewährt. Zunächst wird geprüft, ob noch ausreichende Mittel für einige Kunden zur Verfügung stehen. 37 / 41
77 Deadlock-Verhinderung Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus: Überprüfung ob Zustand sicher ist Die Überprüfung simuliert die Darlehensvergabe der Kunden. Wenn alle Kunden dabei befriedigt werden können, ist der Zustand sicher und der aktuelle Darlehensantrag wird gewährt. Zunächst wird geprüft, ob noch ausreichende Mittel für einige Kunden zur Verfügung stehen. Dann wählt er den Kunden, bei dem der Kreditrahmen am weitesten ausgeschöpft ist und simuliert dessen Zusage. 37 / 41
78 Deadlock-Verhinderung Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus: Überprüfung ob Zustand sicher ist Die Überprüfung simuliert die Darlehensvergabe der Kunden. Wenn alle Kunden dabei befriedigt werden können, ist der Zustand sicher und der aktuelle Darlehensantrag wird gewährt. Zunächst wird geprüft, ob noch ausreichende Mittel für einige Kunden zur Verfügung stehen. Dann wählt er den Kunden, bei dem der Kreditrahmen am weitesten ausgeschöpft ist und simuliert dessen Zusage. Dann wird der nächste Kunde simuliert. 37 / 41
79 Deadlock-Verhinderung Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus: Überprüfung ob Zustand sicher ist Die Überprüfung simuliert die Darlehensvergabe der Kunden. Wenn alle Kunden dabei befriedigt werden können, ist der Zustand sicher und der aktuelle Darlehensantrag wird gewährt. Zunächst wird geprüft, ob noch ausreichende Mittel für einige Kunden zur Verfügung stehen. Dann wählt er den Kunden, bei dem der Kreditrahmen am weitesten ausgeschöpft ist und simuliert dessen Zusage. Dann wird der nächste Kunde simuliert. Wenn letztlich alle Darlehen zurückgezahlt werden können, war der Zustand sicher. 37 / 41
80 Deadlock-Verhinderung Bankier-Algorithmus für eine Betriebsmittelklasse Bankier-Algorithmus: Überprüfung ob Zustand sicher ist Die Überprüfung simuliert die Darlehensvergabe der Kunden. Wenn alle Kunden dabei befriedigt werden können, ist der Zustand sicher und der aktuelle Darlehensantrag wird gewährt. Zunächst wird geprüft, ob noch ausreichende Mittel für einige Kunden zur Verfügung stehen. Dann wählt er den Kunden, bei dem der Kreditrahmen am weitesten ausgeschöpft ist und simuliert dessen Zusage. Dann wird der nächste Kunde simuliert. Wenn letztlich alle Darlehen zurückgezahlt werden können, war der Zustand sicher. 37 / 41
81 Deadlock-Verhinderung Bankier-Algorithmus für mehrere Betriebsmittelklassen Bankier-Algorithmus für mehrere Betriebsmittelklassen Der Bankier-Algorithmus kann auf mehrere Betriebsmittelklassen erweitert werden. Verwendet wird die Belegungsmatrix B, die Anforderungsmatrix A, der Restevektor R. Die Prüfung, ob ein Zustand sicher ist: 1 Suche eine Zeile (Prozess) i in A, für die gilt A i R. Falls es keine solche Zeile gibt, wird das System einen Deadlock-Zustand erreichen, da kein Prozess seine Berechnungen vollständig ausführen kann. 38 / 41
82 Deadlock-Verhinderung Bankier-Algorithmus für mehrere Betriebsmittelklassen Bankier-Algorithmus für mehrere Betriebsmittelklassen Der Bankier-Algorithmus kann auf mehrere Betriebsmittelklassen erweitert werden. Verwendet wird die Belegungsmatrix B, die Anforderungsmatrix A, der Restevektor R. Die Prüfung, ob ein Zustand sicher ist: 1 Suche eine Zeile (Prozess) i in A, für die gilt A i R. Falls es keine solche Zeile gibt, wird das System einen Deadlock-Zustand erreichen, da kein Prozess seine Berechnungen vollständig ausführen kann. 2 Es wird angenommen, Prozess i wird beendet. Markiere i als terminiert und füge seine freigegebenen Mittel zu R hinzu, also R = R + B i 38 / 41
83 Deadlock-Verhinderung Bankier-Algorithmus für mehrere Betriebsmittelklassen Bankier-Algorithmus für mehrere Betriebsmittelklassen Der Bankier-Algorithmus kann auf mehrere Betriebsmittelklassen erweitert werden. Verwendet wird die Belegungsmatrix B, die Anforderungsmatrix A, der Restevektor R. Die Prüfung, ob ein Zustand sicher ist: 1 Suche eine Zeile (Prozess) i in A, für die gilt A i R. Falls es keine solche Zeile gibt, wird das System einen Deadlock-Zustand erreichen, da kein Prozess seine Berechnungen vollständig ausführen kann. 2 Es wird angenommen, Prozess i wird beendet. Markiere i als terminiert und füge seine freigegebenen Mittel zu R hinzu, also R = R + B i 3 Wiederhole 1) und 2) solange, bis entweder alle Prozesse als terminiert markiert sind, und der Anfangszustand sicher ist, oder bis ein Deadlockzustand auftritt und damit der Anfangszustand unsicher ist. 38 / 41
84 Deadlock-Verhinderung Bankier-Algorithmus für mehrere Betriebsmittelklassen Bankier-Algorithmus für mehrere Betriebsmittelklassen Der Bankier-Algorithmus kann auf mehrere Betriebsmittelklassen erweitert werden. Verwendet wird die Belegungsmatrix B, die Anforderungsmatrix A, der Restevektor R. Die Prüfung, ob ein Zustand sicher ist: 1 Suche eine Zeile (Prozess) i in A, für die gilt A i R. Falls es keine solche Zeile gibt, wird das System einen Deadlock-Zustand erreichen, da kein Prozess seine Berechnungen vollständig ausführen kann. 2 Es wird angenommen, Prozess i wird beendet. Markiere i als terminiert und füge seine freigegebenen Mittel zu R hinzu, also R = R + B i 3 Wiederhole 1) und 2) solange, bis entweder alle Prozesse als terminiert markiert sind, und der Anfangszustand sicher ist, oder bis ein Deadlockzustand auftritt und damit der Anfangszustand unsicher ist. 38 / 41
85 Deadlock-Verhinderung Bankier-Algorithmus für mehrere Betriebsmittelklassen Bankier-Algorithmus: Zustand sicher prüfen Prozess gefunden Prozess mit erfüllbaren Anforderungen suchen Prozess markieren angeforderte Betriebsmittel zuteilen Prozess kann terminieren, gibt Betriebsmittel frei noch unmarkierte Prozesse alle Prozesse markiert: Zustand ist sicher 39 / 41
86 Deadlock-Verhinderung Bankier-Algorithmus für mehrere Betriebsmittelklassen Beurteilung Bankier-Algorithmus Der Bankier-Algorithmus ist sehr gut untersucht. Die Voraussetzung für die Simulation (jeder Prozess kann alle seine Betriebsmittel-Anforderungen beim Start bekannt machen), sind in der Praxis nicht gegeben. wieso eigentlich nicht? Die Betriebsmittel können dynamisch in ihrer Anzahl variieren (ein Drucker fällt aus). Insgesamt wird der Algorithmus (und die Verhinderung insgesamt) in aktuellen Betriebssystemen nicht eingesetzt. 40 / 41
87 Deadlock-Verhinderung Bankier-Algorithmus für mehrere Betriebsmittelklassen Beurteilung Bankier-Algorithmus Der Bankier-Algorithmus ist sehr gut untersucht. Die Voraussetzung für die Simulation (jeder Prozess kann alle seine Betriebsmittel-Anforderungen beim Start bekannt machen), sind in der Praxis nicht gegeben. wieso eigentlich nicht? Die Betriebsmittel können dynamisch in ihrer Anzahl variieren (ein Drucker fällt aus). Insgesamt wird der Algorithmus (und die Verhinderung insgesamt) in aktuellen Betriebssystemen nicht eingesetzt. 40 / 41
88 Deadlock-Vermeidung Deadlock-Vermeidung Wenn sichergestellt werden könnten, dass nicht alle vier u.a. Bedingungen gleichzeitig eintreten könnten, wäre Deadlocks nicht möglich (strukturelle Vermeidung). 1 Wechselseitiger Ausschluss 41 / 41
89 Deadlock-Vermeidung Deadlock-Vermeidung Wenn sichergestellt werden könnten, dass nicht alle vier u.a. Bedingungen gleichzeitig eintreten könnten, wäre Deadlocks nicht möglich (strukturelle Vermeidung). 1 Wechselseitiger Ausschluss 2 Anforderung weitere Betriebsmittel 41 / 41
90 Deadlock-Vermeidung Deadlock-Vermeidung Wenn sichergestellt werden könnten, dass nicht alle vier u.a. Bedingungen gleichzeitig eintreten könnten, wäre Deadlocks nicht möglich (strukturelle Vermeidung). 1 Wechselseitiger Ausschluss 2 Anforderung weitere Betriebsmittel 3 Ununterbrechbarkeit 41 / 41
91 Deadlock-Vermeidung Deadlock-Vermeidung Wenn sichergestellt werden könnten, dass nicht alle vier u.a. Bedingungen gleichzeitig eintreten könnten, wäre Deadlocks nicht möglich (strukturelle Vermeidung). 1 Wechselseitiger Ausschluss 2 Anforderung weitere Betriebsmittel 3 Ununterbrechbarkeit 4 Zyklische Wartebedingung Dies ist aber in der Praxis nicht möglich, also ist dies kein gangbarer Weg. 41 / 41
92 Deadlock-Vermeidung Deadlock-Vermeidung Wenn sichergestellt werden könnten, dass nicht alle vier u.a. Bedingungen gleichzeitig eintreten könnten, wäre Deadlocks nicht möglich (strukturelle Vermeidung). 1 Wechselseitiger Ausschluss 2 Anforderung weitere Betriebsmittel 3 Ununterbrechbarkeit 4 Zyklische Wartebedingung Dies ist aber in der Praxis nicht möglich, also ist dies kein gangbarer Weg. 41 / 41
Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404
Betriebssysteme I WS 2013/2014 Betriebssysteme / verteilte Systeme [email protected] Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 19. Dezember 2013 Betriebssysteme / verteilte Systeme
Inhaltsverzeichnis. 4.1 Systemmodell und notwendige Bedingungen. 4.2 Gegenmaßnahmen
Inhaltsverzeichnis 4.1 Systemmodell und notwendige Bedingungen Was sind Deadlocks? Darstellungsarten von Prozessabhängigkeiten Notwendige Bedingungen für Deadlocks 4.2 Gegenmaßnahmen Deadlock-Prevention
Systeme I: Betriebssysteme Kapitel 6 Deadlocks. Wolfram Burgard
Systeme I: Betriebssysteme Kapitel 6 Deadlocks Wolfram Burgard Version 13.12.2017 1 Inhalt Vorlesung Verschiedene Komponenten / Konzepte von Betriebssystemen Dateisysteme Prozesse Nebenläufigkeit und wechselseitiger
Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme
Vorname: Nachname: Matrikelnummer: Klausur Betriebssysteme 12.02.2013 Hinweise: 1. Beschriften Sie als erstes diese Seite mit Ihrem Namen, Vornamen und Ihrer Matrikelnummer (deutlich in Druckbuchstaben).
Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File
Kapitel V Deadlocks (Verklemmungen) 1 Deadlocks System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File Prozesse benötigen Genehmigung vor der Benutzung von Ressourcen.
Verklemmungen - Deadlocks
Verklemmungen - Deadlocks Betriebsmittel Verklemmung Vogelstrauss Algorithmus Erkennung und Auflösung Vermeidung SS2001 Prof. H.D. Clausen - unisal 1 Kritische Betriebsmittel Beispiele Drucker Magnetbandgeräte
Deadlocks. Christoph Lindemann. Betriebssysteme. Betriebssysteme WS 2004/05. Fahrplan. Inhalt. Das Deadlock Problem
Betriebssysteme WS 2004/05 Deadlocks Christoph Lindemann Fahrplan 14.10. Organisation der Vorlesung, Einführung in Betriebssysteme 21.10. Strukturen von Betriebssystemen 28.10. Prozesse und Threads 4.11.
9. Vorlesung Betriebssysteme
Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/39 9. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik [email protected] Dr. Christian
Aufgaben zum Thema Verklemmungen
Aufgaben zum Thema Verklemmungen V1. Untersuchen Sie das folgende Prozeßsystem auf das Auftreten von Deadlocks (s1, s2, s3: binäre Semaphore, mit true initialisiert): 95/5 Prozeß 1 Prozeß 2 Prozeß 3 P(s1);
Parallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
Deadlock. Peter Puschner Institut für Technische Informatik
Deadlock Peter Puschner Institut für Technische Informatik [email protected] Deadlock Permanentes Blockieren einer Menge von Prozessen, die um Ressourcen konkurrieren oder miteinander kommunizieren
Betriebssysteme. Wintersemester Kapitel 2 Prozess und Threads. Patrick Kendzo
Betriebssysteme Wintersemester 2015 Kapitel 2 Prozess und Threads Patrick Kendzo [email protected] Programm Inhalt Einleitung Prozesse und Threads Speicherverwaltung Ein- / Ausgabe und Dateisysteme Zusammenfassung
Lösung von Übungsblatt 9. (Interprozesskommunikation)
Lösung von Übungsblatt 9 Aufgabe 1 (Interprozesskommunikation) 1. Was ist ein kritischer Abschnitt? Mehrere Prozesse greifen lesend und schreibend auf gemeinsame Daten zu. 2. Was ist eine Race Condition?
1 Prozesse und Scheduling (12 Punkte)
1 Prozesse und Scheduling (12 Punkte) a) UNIX Shell-Operatoren (insgesamt 4 Punkte) 1. Operator (1,5 Punkte) Beschreiben Sie die Funktionsweise des Operators. 2. Operator Beispiel (1 Punkt) Geben Sie für
Leser-Schreiber-Realisierung mit Semaphoren
Leser-Schreiber-Realisierung mit Semaphoren Reader: down(semwriter); down(semcounter); rcounter++; up(semwriter); read(); down(semcounter); rcounter--; Writer: Problem: down(semwriter); Busy Waiting siehe
9. Foliensatz Betriebssysteme
Prof. Dr. Christian Baun 9. Foliensatz Betriebssysteme Frankfurt University of Applied Sciences SS2016 1/32 9. Foliensatz Betriebssysteme Prof. Dr. Christian Baun Frankfurt University of Applied Sciences
Anfragen werden als Ganzes erfüllt und erst nach Ablauf der Zeit der
Universität Paderborn Fachgebiet Rechnernetze Sommersemester 011 Konzepte und Methoden der Systemsoftware Präsenzübung 08 vom 30.05.011 bis 03.0.011 Aufgabe 1: Auswahlstrategien Sie haben in der Vorlesung
Graphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg [email protected] Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
Aufgaben zum Thema Verklemmungen
Aufgaben zum Thema Verklemmungen V1. Untersuchen Sie das folgende Prozeßsystem auf das Auftreten von Deadlocks (s1, s2, s3: binäre Semaphore, mit true initialisiert): 95/5 Prozeß 1 Prozeß 2 Prozeß 3 P(s1);
Prozesszustände (1a)
Prozesszustände (1a) NOT EXISTING DELETED CREATED Meta-Zustand (Theoretische Bedeutung) Prozesszustände Multiuser Umfeld (1c) Hintergrund-Prozess - der Prozess startet im Hintergrund - my-commandbin &
Prozessor (CPU, Central Processing Unit)
G Verklemmungen G Verklemmungen Einordnung: Prozessor (CPU, Central Processing Unit) Hauptspeicher (Memory) Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices) externe Schnittstellen (Interfaces) Hintergrundspeicher
Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen
Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von
Graphen. Inhaltsverzeichnis. In diesem Kapitel behandeln wir Algorithmen auf Graphen.
Graphen In diesem Kapitel behandeln wir Algorithmen auf Graphen. Inhaltsverzeichnis 1.Grundlagen... 2 1.Repräsentation von Graphen...8 2.Der ADT Graph... 12 1.Durchlaufen von Graphen... 16 1.Zyklentest
EINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 [email protected] 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert
7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle
In Anwendungen ist es oft interessant zu wissen, ob man überhaupt von einem Knoten v zu einem Knoten w gelangen kann, ganz gleich wie lang der Weg auch ist. Gegeben sei dabei ein gerichteter Graph G =
Kapitel 5 Verklemmungsprobleme. Verklemmungsprobleme
Kapitel 5 Verklemmungsprobleme 221 Verklemmungsprobleme Betriebsmittel A 1 Betriebsmittel E 4 Betriebsmittel B Betriebsmittel D 5 2 Betriebsmittel C 3 Beispiel: A P(MBand) P(Drucker) B : : V(Drucker) V(MBand)
Teil 2: Graphenalgorithmen
Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Problemstellung Ungewichtete Graphen Distanzgraphen Gewichtete
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)
Datenbanken und Informationssysteme
Datenbanken und Informationssysteme Serialisierbarkeit Burkhardt Renz Fachbereich MNI TH Mittelhessen Wintersemester 2015/16 Übersicht Serialisierbarkeit 2-Phasen-Sperrprotokoll (2PL) Verklemmungen Modell
Übung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012
Übung zu Grundlagen der Betriebssysteme 10. Übung 18.12.2012 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)
Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)
Betriebssysteme G: Parallele Prozesse (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) 1 Allgemeine Synchronisationsprobleme Wir verstehen ein BS als eine Menge von parallel
Anhang: Ungarische Methode
Ungarische Methode 107 Anhang: Ungarische Methode Zum Schluss des Kurses soll noch der Algorithmus der Ungarischen Methode beschrieben werden. Wir lehnen uns hierbei eng an der Darstellung von DOMSCHKE
Prioritäten/Zeitstempel-Verfahren
Prioritäten/Zeitstempel-Verfahren Grundlegende Idee: Falls einer Transaktion T k eine Sperre nicht gewährt wird, weil eine andere Transaktion T i sie hält, besteht Deadlockgefahr. Also bekommt jede Transaktion
Prioritäten/Zeitstempel-Verfahren. WAIT-DIE und WOUND-WAIT-Strategien
Prioritäten/Zeitstempel-Verfahren Grundlegende Idee: Falls einer Transaktion T k eine Sperre nicht gewährt wird, weil eine andere Transaktion T i sie hält, besteht Deadlockgefahr. Also bekommt jede Transaktion
Dr. Monika Meiler. Inhalt
Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer
Kürzeste (billigste) Wege
Kürzeste (billigste) Wege 1. Kürzeste (billigste) Wege Gerichteter Graph G = (V, E) Kostenfunktion c : E R 1 2 1 3 3 2 4 4 2 6 6 5 3 2 Entfernung zwischen zwei Knoten Kosten eines Wegs P = v 0, v 1,...,
5. Bäume und Minimalgerüste
5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein
Graphenalgorithmen I
Graphenalgorithmen I Vortrag im Seminar Hallo Welt! für Fortgeschrittene 7. Juni 211 Graphenalgorithmen I 1/33 Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket
Übung zu Grundlagen der Betriebssysteme. 11. Übung
Übung zu Grundlagen der Betriebssysteme 11. Übung 08.01.2012 Organisation Anmeldung zur Klausur Klausur Grundlagen der Betriebssysteme Datum: 05.02.2013 Raum F414 (steht aber noch nicht sicher fest) Anmeldung
Ausnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
Einstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung
Programmierung für Mathematik (HS13)
software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 11 1 Aufgabe: Codeverständnis 1.1 Aufgabenstellung Notieren Sie, was der folgende Code ausgeben würde, wenn er so in einer
parallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher.
Threads parallele Prozesse auf sequenziellen Prozessoren Prozesse und Threads Es gibt zwei unterschiedliche Programme: Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher. Ein Thread
Lebenszyklus von Threads
Threads Umgangssprachlich Faden, Diskussionsfaden, Gewinde, Faser, Garn, roter Faden Threads ermöglichen Nebenläufigkeit (parallele Ausführung von Anwendungsteilen). Typisch für Threads ist,dass sie zu
Datenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
8. Übung zu Algorithmen I 15. Juni 2016
8. Übung zu Algorithmen I 15. Juni 2016 Lisa Kohl [email protected] (mit Folien von Julian Arz, Timo Bingmann, Sebastian Schlag, Christian Staudt und Christoph Striecks) Nachtrag: Quicksort, alternative
Informatik II. Semesterklausur
Universität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 5. Juli 2003 Stefan Fischer, Dr. Martin Müller Informatik II Semesterklausur Prüfungsmodul Informatik II (SS 2003)
4. Übung - Rechnerarchitektur/Betriebssysteme
4. Übung - Rechnerarchitektur/Betriebssysteme 1. Aufgabe: Caching Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen a) Was ist ein Cache? Wann kommt Caching zum Einsatz? b) Welchen Vorteil
4. Übung - Rechnerarchitektur/Betriebssysteme
4. Übung - Rechnerarchitektur/Betriebssysteme 1. Aufgabe: Caching Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen a) Was ist ein Cache? Wann kommt Caching zum Einsatz? b) Welchen Vorteil
Lösungen von Übungsblatt 12
Lösungen von Übungsblatt 12 Algorithmen (WS 2018, Ulrike von Luxburg) Lösungen zu Aufgabe 1 Eine (kanonische) Möglichkeit, die Branch-Schritte auszuführen ergibt sich wie folgt: Das ursprüngliche Problem
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.
254 12. Graphen Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap. 9.1-9.4,Cormen et al, Kap. 22 Königsberg 1736 255 Königsberg 1736 255 Königsberg 1736 255
Nebenläufigkeit mit Java
Nebenläufigkeit mit Java Einheit 03: Synchronisation Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Synchronisation von Threads Locks Java Monitor-Konzept Lock Freigabe Zusammenspiel
8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.
8.4 Digraphen mit negativen Kantengewichten 8.4.1 Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. k 4 5 1 s 1 3 2 C k 0 k 3 1 1 1 k 1 k 2 v Sollte ein Pfad von s nach C und
Einstieg in die Informatik mit Java
Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere
Datenstrukturen und Algorithmen 2. Klausur SS 2001
UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................
Informatik Abitur Bayern 2017 / II - Lösung
Informatik Abitur Bayern 2017 / II - Lösung Autoren: Wolf (1) Wagner (2) Scharnagl (3-5) 1a 5 1b Diese Methode vergleicht den Namen des Interpreten eines jeden Elements der Liste mit dem gegebenen Namen.
Beispiel für überladene Methode
Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter
Kürzeste-Wege-Algorithmen und Datenstrukturen
Kürzeste-Wege-Algorithmen und Datenstrukturen Institut für Informatik Universität zu Köln SS 2009 Teil 1 Inhaltsverzeichnis 1 Kürzeste Wege 2 1.1 Voraussetzungen................................ 2 1.2
Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
Das Heiratsproblem. Definition Matching
Das Heiratsproblem Szenario: Gegeben: n Frauen und m > n Männer. Bekanntschaftsbeziehungen zwischen allen Männern und Frauen. Fragestellung: Wann gibt es für jede der Frauen einen Heiratspartner? Modellierung
Tafelübung zu BSRvS1. 3. Philosophen. Fortsetzung Grundlagen C-Programmierung
Tafelübung zu BSRvS1 3. Philosophen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund [email protected] http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/
3. Philosophen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund
Tafelübung zu BSRvS1 3. Philosophen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund [email protected] http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/
Softwaretechnik 1 Übung 5
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Übung 5 2.7.29 Aufgabe 1a) Zeichnen Sie die komplette Vererbungshierarchie der Klasse BufferedOutputStream als UML- Klassendiagramm.
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
Interface. So werden Interfaces gemacht
Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.
Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:
Parallele Prozesse SWE-131 Prozeß: Ausführung eines sequentiellen Programmstückes in dem zugeordneten Speicher (Adressraum). Veränderlicher Zustand: Speicherinhalt und Programmposition. Parallele Prozesse:
2 Teil 2: Nassi-Schneiderman
2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der
12. Graphen. Königsberg Zyklen. [Multi]Graph
Königsberg 76. Graphen, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap. 9. - 9.,Cormen et al, Kap. [Multi]Graph Zyklen C Kante Gibt es einen Rundweg durch die Stadt
Martin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration
