Literatur. Betriebssysteme WS 2015/16 - Teil 8/Synchronisation I
|
|
- Carl Abel
- vor 5 Jahren
- Abrufe
Transkript
1 Literatur [8-1] Werner, Dieter: Theorie der Betriebssysteme. Hanser, 1992 [8-2] Dannegger, Christian; Geugelin-Dannegger, Patricia: Parallele Prozesse unter UNIX. Hanser, 1991 [8-3] Siegert, Hans-Jürgen; Baumgarten, Uwe: Betriebssysteme. 5. Auflage, Oldenbourg, 2001 [8-4] Tanenbaum, Andrew: Moderne Betriebssysteme. 2. Auflage, Hanser, 1995 [8-5] 2
2 Übersicht Grundbegriffe enter und leave Dekker's Algorithmus lock und unlock 3 Hinführung I In diesem Teil werden grundsätzliche Prinzipien bzw. Probleme von Parallelität von Operationen auf gemeinsam benutzte Betriebsmittel, insbesondere RAM betrachtet. Bisher gingen wir von folgender Struktur aus: CPU IO 1 IO 2 IO n Bus RAM Alle Geräte (IO N ) können per DMA auf den RAM zugreifen und Interrupts senden. 4
3 Hinführung II Nun verallgemeinern wir auf beliebig viele CPUs: CPU 1 CPU 2 CPU n IO 1 IO 2 IO n Bus RAM Der RAM zusammen mit dem Bus bietet atomare, also unteilbare Lese/Schreib-Operationen an, die nur sequentiell ablaufen. D.h. zu einem Zeitpunkt kann immer nur eine CPU/Gerät auf den RAM zugreifen. Alle anderen Geräte/CPUs müssen auf die Zuteilung des Busses warten. 5 Annahmen I - CPU Keine Instruktion der CPUs ist durch Interrupts unterbrechbar, d.h. wenn eine CPU einen Interrupt feststellt, so führt sie die aktuelle Instruktion vollständig zu Ende aus bevor sie mit der Behandlung des Interrupts beginnt. Während der Ausführung einer Instruktion mit Speicherzugriff hat die CPU als einzige die volle Kontrolle über den Bus und damit auf den RAM, d.h. niemand kann den Bus einer CPU wegnehmen noch ihn parallel benutzen. Dass heißt: Für 1-CPU-Maschinen: Nur zwischen den Instruktionen kann ein Threadwechsel stattfinden, keine Parallelität. Für N-CPU-Maschinen: Bei jeder CPU einzeln kann nur zwischen den Instruktionen ein Threadwechsel stattfinden, also für jede CPU ist alles sequentiell, aber untereinander haben alle CPUs volle Parallelität. Hinweis: Per Timer-Interrupt kann ein Thread seine CPU verlieren. 6
4 Annahmen II - Geräte Für DMA-fähige Geräte gilt folgendes: Der Vorgang des Kopierens von Blöcken in oder aus dem RAM wird in Teile zerlegt. Nach dem Kopieren eines Blocks wird der Bus abgegeben. Aber für jeden Teil erhält das Gerät wie die CPUs den Bus atomar. Grund: Wenn der vollständige DMA-Vorgang den Bus belegen würde, würden die Wartezeiten der anderen Geräte/CPUs auf den Bus zu lange dauern. Nicht-DMA-fähige Geräte brauchen wir hier nicht zu betrachten, denn diese greifen nicht auf den RAM zu. Aus Gründen der Vereinfachung betrachten wir in diesem Teil nur die Zugriffe auf den RAM. Dieselben Probleme treten aber auch beim Zugriff auf Plattenblöcke etc. auf: Mehrere Threads können in Wettlaufsituationen Blöcke auf die Platte schreiben. 7 Hinführung III Thread A a:= 1; IF a!= 0 THEN b:= c/a; FI. Kritische Abschnitte Falls vorher a = 1 war... Zugriff Thread B. b:= a; b:= b-1; a:= b;. Variable a 8
5 Bemerkungen Um Probleme erkennen zu können, sollte folgendes angenommen werden: Threads können aufgrund von Pausen andere überholen. Threads können unterschiedliche Geschwindigkeiten haben. Zur Prüfung auf Korrektheit müssen auch pathologische Abläufe ausgedacht werden. Gibt es einen einzigen möglichen Ablauf, der zu einem Fehler führt, dann ist die Software fehlerhaft, auch dann, wenn die Wahrscheinlichkeit dafür minimal ist. Kritischer Abschnitt = Bereich im Code, bei dessen Ausführung Probleme mit anderen Threads auftreten können Allgemein: Immer wenn Prozesse/Threads/Tasks auf gemeinsame Betriebsmittel schreibend zugreifen, gibt es Abstimmungsprobleme. 9 Das Problem a:= 1; Thread A IF a!= 0 THEN b:= c/a; FI b:= a; b:= b-1; a:= b; Thread B Bedeutet "Pause" Das kann bei einer wie auch bei mehreren CPUs passieren. 10
6 Kritische Abschnitte II Kritische Abschnitte sind Codebereiche, die (fast) nie gleich sind. Kritische Abschnitte beziehen sich immer auf Betriebsmittel, die einen (Speicher-)Zustand haben: Variablen, Platten etc. Alle kritischen Abschnitte, die sich auf dieselbe Menge von Betriebsmitteln beziehen, werden zu einer Klasse zusammen gefasst. Mit anderen Worten: Wenn an mehreren Stellen auf dieselben Variablen aus verschiedenen Threads zugegriffen wird, so bilden alle diese Stellen jeweils kritische Abschnitte derselben Klasse. Alle kritischen Abschnitte einer Klasse müssen untereinander abgestimmt werden. Kritische Abschnitte verschiedener Klassen brauchen nicht koordiniert zu werden. Threads/Prozesse, die gleichzeitig kritische Abschnitte derselben Klasse betreten könnten, müssen untereinander koordiniert werden. 11 Begriffe - Ganz allgemein Koordination = Abstimmung zwischen Threads, um Datenkonsistenz bei gleichzeitigem Zugriff zu erhalten Datenkonsistenz = Erfüllen der für die Problemlösung notwendigen Bedingungen an Datenwerte die Assertions Synchronisation = Zeitliche Abstimmung hinsichtlich der Benutzung von Ressourcen Herstellen von "Gleichzeitigkeit", von Gleichtakt Ressource = Betriebsmittel = Hier: Adressierbarer Speicher Allgemein: Etwas, was beschrieben oder benutzt werden kann, z.b. CPU, Netz, Platte, Drucker, Ethernet, Video-RAM 12
7 Wechselseitiger Ausschluss Wechselseitiger Ausschluss = Mutual Exclusion = Ergebnis der Koordinierung zur Verhinderung von Problemen bei der gemeinsamen Benutzung von Variablen in kritischen Abschnitten Beim wechselseitigen Ausschluss werden Threads daran gehindert, eine Ressource zu benutzen, wenn diese durch einen anderen Thread benutzt wird. Erst nach Freigabe kann ein anderer Thread die Ressource belegen. Ziel der Synchronisation: Durch Realisierung von wechselseitigen Ausschlüssen wird der Zugriff auf gemeinsam benutzte Betriebsmittel so auf einander abgestimmt, dass die Konsistenz der Daten und damit die Korrektheit der Implementierung sichergestellt wird. 13 Deadlock und Starvation I Deadlock = Warten auf ein Ereignis, das nicht eintreten kann, da die das Ereignis signalisierenden Vorgänge auf eine Aktivität eines Threads warten, der selbst auf das Ereignis wartet. Deadlock ist ein strukturell bzw. logisches Problem, das durch ein zyklenhaftes Warten entsteht: Beispiele: A wartet darauf, dass B etwas tut, während B darauf wartet, dass A etwas tut Beide warten unendlich lange: Dead You-after-you-Problem Verkehrskreuzung mit vier Autos Starvation = Zu langes Warten auf ein mögliches Ereignis als Folge übermäßiger "Ungerechtigkeit" zwischen Prozessen/Threads Starvation ist ein Scheduling-Problem, d.h. ein Problem der Zuweisung von Ressourcen an Threads. 14
8 Deadlock und Starvation II Dining Philosophers I Gabel 3 Philosoph 3 Gabel 2 Philosoph 4 Spaghetti Philosoph 2 Gabel 4 Philosoph 1 Gabel 1 Ein Philosoph isst entweder Spaghetti oder er denkt. Essen und Denken müssen sich abwechseln und nicht zu lange dauern (in beiden Fällen drohen sonst gesundheitliche Schäden). Philosophen benötigen zum Essen zwei Gabeln (Erziehung). Bestimmte Algorithmen der Philosophen führen zu Deadlocks, andere zu Starvation. 15 Demonstrationsbeispiel Dining Philosophers II Alle Philosophen benutzen denselben Algorithmus. Folgendes Verfahren führt zum Deadlock: Jeder nimmt die Gabel rechts Jeder wartet auf die Gabel links Folgendes Verfahren führt zum Verhungern (Starvation): Jeder nimmt die Gabel rechts Wenn die fehlende Gabel nicht verfügbar ist, legt er die rechte Gabel zurück. Es beginnt von vorn. Hinweise Das Beispiel stammt von Edsger Dijkstra (1965) Siehe Ursprünglich war es ein chinesisches Gericht und die Gabeln waren Stäbchen. 16
9 Zeitpunkte der Synchronisation I Eine Wettlauf-Bedingung (Race Condition) liegt dann vor, wenn es Serialisierungen paralleler Abläufe mit unterschiedlichen Wirkungen auf die Ressource gibt. Mindestens eine dieser Wirkungen ist dabei nicht erlaubt. Dies ist eine analoge Formulierung für das oben beschriebene "Ausdenken" aller möglichen, also auch pathologischen Abläufe. Wettläufe werden durch Verbieten der Serialisierungen mit den unerwünschten Effekten verhindert. Dafür gibt es zwei Strategien der Synchronisation: (A) Anhalten von Threads vor kritischen Abschnitten (pessimistische Strategien) (B) Rücknahme von Effekten im Falle von Konflikten bzw. Kollisionen (optimistische Strategien) 17 Zeitpunkte der Synchronisation II Vor dem kritischen Abschnitt ("pessimistische" Strategie) Vor dem Betreten wird sichergestellt, dass später keine Probleme auftreten können. Beispiele: Semaphoren, Lock/Unlock Im kritischen Abschnitt ("optimistische" Strategie) Während der Aktivitäten innerhalb des kritischen Abschnittes wird auf Probleme geprüft. Gibt es sie, werden Verfahren durchgeführt, die den alten Zustand vor dem Konflikt wieder herstellen, und alles beginnt von vorn. Beispiele: Ethernet, Transaktionen (Datenbanken) Wir beschäftigen uns hier nur mit der ersten Gruppe. 18
10 Ebenen der Implementierungen Zusammengesetzte Mechanismen Komplexe Mechanismen Einfache Mechanismen Wir beginnen mit den einfachen Mechanismen und schreiten dann weiter in Richtung Komplexität voran. Einfach sind: Algorithmus nach Dekker Test-and-Set-Instruktionen zusammen mit Busy Waiting 19 Kritischer Abschnitt I Allgemeines Modell Code enter(klassenname);... Code Code... leave(klassenname); Code Prolog Verfahren zur Koordinierung Kritischer Abschnitt (grau) Epilog Verfahren zur Freigabe enter(klassenname): Betreten eines kritischen Abschnitts leave(klassenname): Verlassen eines kritischen Abschnitts 20
11 Kritischer Abschnitt II In den beiden Routinen enter() und leave() ist jeweils ein Verfahren implementert, das die Synchronisation realisiert. Die Parameter (Klassenname) von enter() und leave() beziehen sich auf die Klasse der kritischen Abschnitte. Implementierung (Ideen): Es gibt ein Modul/Klasse, das die beiden Operationen implementiert. Über den Parameter werden Variablen angesprochen, die für eine bestimmte Klasse stehen. Oder: Für jeden Abschnitt wird eine Klasse instanziiert, wobei dem Konstruktor der Name der Klasse übergeben wird. 21 Implementierungen von enter() und leave() Es gibt verschiedene Versionen für die Realisierungen, die jeweils Stärken und Schwächen haben. Es werden im folgenden zwei betrachtet: Algorithmus von Dekker Arbeiten mit speziellen Instruktionen Dies beginnt mit einer schrittweisen Entwicklung des Algorithmus von Dekker In den ersten Versionen sind Fehler, die in den späteren bereinigt werden. (siehe Bei diesen Algorithmen wird von zwei Threads und nur einem kritischen Abschnitt ausgegangen, so dass die Parameter für enter() und leave() wegfallen können, d.h. es gibt nur eine Klasse. In der Praxis muss für jede Klasse ein abstrakter Datentyp mit eigenen lokalen Variablen etc. benutzt werden. 22
12 Dekker's Algorithmus I 1. Versuch Thread A enter() { WHILE turn = B DO leave() { turn:= B; Thread B enter() { WHILE turn = A DO leave() { turn:= A; turn ist eine globale Variable, die initial auf A gesetzt ist. Jeder Thread gibt seinem Partner nach seiner Arbeit das Recht, den Abschnitt zu betreten echt fair. 23 Dekker's Algorithmus II - Beurteilung Sieht eigentlich ganz gut aus, aber... Problem 1: Wenn ein Thread außerhalb des kritischen Abschnittes terminiert wird, entstehen Deadlocks. Warum? Wenn die Variable turn den Wert A hat und der Thread A nicht mehr existiert, dann kann B nie wieder in den kritischen Abschnitt, denn B wartet auf etwas, was nie eintreten wird, nämlich dass A etwas tut. Die Idee des 2. Versuchs besteht darin, nicht mehr festzulegen, wer als nächstes eintreten kann, sondern wer eingetreten möchte. 24
13 Dekker's Algorithmus III - 2. Versuch Thread A enter() { A-will:= true; WHILE B-will DO leave() { A-will:= false; Thread B enter() { B-will:= true; WHILE A-will DO leave() { B-will:= false; Die beiden boole'schen Variablen A-will und B-will sind die Variablen der betrachteten Klasse; initial sind beide false. Sie können atomar gelesen und geschrieben werden. 25 Dekker's Algorithmus IV - Beurteilung Funktioniert ganz gut, aber... Problem 2: Es entstehen durch exakte Parallelität Deadlocks. A-will:= true; WHILE B-will DO parallel B-will:= true; WHILE A-will DO Idee: Die Deadlocks lassen sich durch zeitweises Zurücknehmen der Willenserklärung auflösen... 26
14 Dekker's Algorithmus V - 3. Versuch Thread A Thread B enter() { A-will:= true; WHILE B-will DO A-will:= false; // Chance für B A-will:= true; leave() { A-will:= false; enter() { B-will:= true; WHILE A-will DO B-will:= false; // Chance für A B-will:= true; leave() { B-will:= false; Wenn beide Threads aufgrund von Parallelität wie im vorherigen Fall - in enter() sind, dann können sie nur dann das Warten beenden, wenn einer von beiden sich im roten Bereich befindet und der andere zur WHILE-Abfrage kommt. 27 Dekker's Algorithmus VI - Beurteilung Bisher beste Lösung, aber... Problem 3: Es kann Verhungern auftreten. Warum? Wenn A viel schneller als B ist, dann nutzt A seine Chance nach der Freigabe durch B aus B muss dann warten. Wenn dann A den Abschnitt verlässt und dann gleich wieder betritt, kann nun auch wieder A sich aufgrund der höheren Geschwindigkeit gegenüber B durchsetzen Starvation für B. Idee: Das bisherige durch die Priorisierung aus dem 1. Versuch kombinieren, d.h. derjenige, der warten muss, hat beim nächsten Mal Priorität 28
15 Dekker's Algorithmus - Die beste Lösung Thread A enter() { A-will:= true; WHILE B-will DO IF turn = B THEN A-will:= false; WHILE turn = B DO A-will:= true; FI; leave() { turn:= B; A-will:= false; Thread B enter() { B-will:= true; WHILE A-will DO IF turn = A THEN B-will:= false; WHILE turn = A DO B-will:= true; FI; leave() { turn:= A; B-will:= false; 29 Bemerkungen Der vorgestellte Algorithmus hat die Eigenschaft, dass er bei N-CPUs funktioniert, d.h. immer jedenfalls unter den oben aufgeführten Annahmen (atomarer RAM-Zugriff etc.) dass der wartende Thread Zeit in einer Schleife vertrödelt dies wird auch hier Busy Waiting genannt. Busy Waiting = Aktives Warten = Vorgang, bei dem eine CPU auf das Eintreten eines Ereignisses dadurch wartet, dass sie in einer Endlos- Schleife abfragt, ob es eingetreten ist. (das gibt es auch bei I/O) Dijkstra hat diesen Algorithmus auf n Prozesse bzw. CPUs verallgemeinert. 30
16 Bemerkungen enter(obj) { lock(obj); leave(obj) { unlock(obj); Die Realisierung von enter() und leave() mit Implementierungen, die mit Busy Waiting arbeiten, werden auch lock() und unlock() genannt, manchmal auch spinlock genannt. Lock-Operation = spinlock = Realisierungen des Eintritts (Prolog) in einen kritischen Abschnitt mit Hilfe von Busy Waiting Neben dem Algorithmus von Dekker gibt es noch weitere Algorithmen, z. B. Bäckerei-Algorithmus von Lamport Peterson-Algorithmus Holländisch-Bier-Algorithmus von Lamport 31 Ununterbrechbare swap-instruktion In der Praxis wird mit speziellen Instruktionen gearbeitet, z.b.: Eine Swap-Operation tauscht den Inhalt zweier Speicherplätze ununterbrechbar durch andere CPUs/Geräte. Instruction Swap(a,b) { temp:= a; a:= b; b:= temp; enter(class) { crit:= true; WHILE crit DO Swap(crit,class); OD leave(class) { class:= false; 32
17 enter()/leave() auf einem 1-CPU-System I Bei 1-CPU-Maschinen kann ein Wechsel der CPU zu einem anderen Thread innerhalb des kritischen Abschnitts nur nach einen Interrupt erfolgen. Zur Erinnerung: Ein Interrupt-Handler kann den Scheduler aufrufen, der dann die CPU einem anderen Thread zuweist. Daher gibt es eine Nahe liegende, aber problematische Implementierung: enter(class) { disable_interrupts(); leave(class) { enable_interrupts(); Durch das Ausschalten der Unterbrechungen behält der aktuell laufende Thread in jedem Falle seine CPU und kann daher ungestört den kritischen Abschnitt durchlaufen. 33 enter()/leave() auf einem 1-CPU-System II Da das Ausschalten von Unterbrechungen zu Problemen aufgrund von Verlust von Interrupts führt, werden gezielt bestimmte Interrupt-Level (Prioritäten) verwendet: Die CPU erhält einen Level. Ein Interrupt kommt nur dann durch, wenn sein Level höher als der der CPU ist. Normalerweise ist der CPU-Level auf 0. Es wird dann nur soviel, wie unbedingt nötig gesperrt. Das Abschalten der Interrupts ist eigentlich falsch, denn es muss ja nur ein Threadwechsel sowie das Ändern von Daten in den kritischen Abschnitten verhindert werden. Und das kann auch durch globale Variablen bzw. Klassen-Variablen realisiert werden. 34
18 Alternative Implementierungen von enter/leave() enter()/leave() Busy Waiting 1..N CPUs Interrupts erlaubt Busy Waiting 1..N CPUs Spezialinstruktionen Interrupts erlaubt Kein Busy Waiting 1 CPU Interrupts verboten Dekker Spezialinstruktionen Disable Interrupts Wenn enter() und leave() mit einer dieser Methoden implementiert werden, so sollen diese Methoden lock() und unlock() genannt werden. 35 Nach dieser Anstrengung etwas Entspannung... 36
Verteilte Anwendungen. Teil 3: Synchronisation
Verteilte Anwendungen Teil 3: Synchronisation 08.04.18 1 Literatur [3-1] Werner, Dieter: Theorie der Betriebssysteme. Hanser, 1992 [3-2] Dannegger, Christian; Geugelin-Dannegger, Patricia: Parallele Prozesse
MehrBetriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion
Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung
MehrBetriebssysteme. 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
MehrÜbersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf
Übersicht Komplexitätsresultate Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (4) Drei Komplexitätsresultate Eine genaue Schranke für den Platzbedarf
MehrBetriebssysteme. Teil 12: Deadlocks
Betriebssysteme Teil 12: Deadlocks 07.01.16 1 Literatur [12-1] Coffman, E. C.; Elphick, Michael John; Shoshani,A.: System Deadlocks. In: Computing Surveys. 3, Nr. 2, 1971, S. 67 78. Einsehbar in http://de.wikipedia.org/wiki/deadlock
MehrLiteratur. VA SS Teil 5/Messages
Literatur [5-1] https://en.wikipedia.org/wiki/message-oriented_middleware [5-2] https://en.wikipedia.org/wiki/advanced_message_queuing_protocol http://www.amqp.org/specification/0-10/amqp-org-download
MehrLeser-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
MehrTest (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme
Seite 1 Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme 1 11.07.2007 Hinweise: Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre
MehrÜ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)
MehrFakultät für Informatik der Technischen Universität München. Nebenläufigkeit. Probleme
Nebenläufigkeit Probleme 175 Race Conditions: Probleme Situationen, in denen zwei oder mehrere Threads/Prozesse, die gleichen geteilten Daten lesen oder schreiben und das Resultat davon abhängt, wann genau
MehrWas machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a
Was machen wir heute? Betriebssysteme Tutorium 3 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1
MehrArchitektur Verteilter Systeme Teil 2: Prozesse und Threads
Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =
MehrSoftwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
MehrDie Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden.
7 Parallelität und Nebenläufigkeit Mehrere Prozessen oder Threads Parallelität Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit
Mehr2. Aufgabenblatt Threads
Fakultät Informatik Institut für Systemarchitektur, Professur für Betriebssysteme Betriebssysteme und Sicherheit, WS 2016/17 2. Aufgabenblatt Threads Geplante Bearbeitungszeit: drei Wochen TEIL A THREADS
MehrSysteme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard
Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen
MehrLösungsvorschlag Serie 7 Parallelität
7 (1/6) Lösungsvorschlag Serie 7 Parallelität 1. Es sei die folgende Situation vorgegeben: 4 D 3 C 2 E 5 1 B A Im Folgenden sind vier Methoden zur Lösung des Problems dargestellt: (a) Intelligente Kontrolleinheit
MehrBetriebssysteme. Koordination und Synchronisation: Kritische Abschnitte, Sperren, Semaphore und Mutexe. Sommersemester 2014 Prof. Dr.
Koordination und Synchronisation: Kritische Abschnitte, Sperren, Semaphore und Mutexe Sommersemester 2014 Prof. Dr. Peter Mandl Prof. Dr. Peter Mandl Seite 1 Gesamtüberblick 1. Einführung in 2. Betriebssystemarchitekturen
MehrBetriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis
Einführung Einführung in in Betriebssysteme Betriebssysteme und und Theorie und Praxis Theorie und Praxis Oktober 2006 Oktober 2006 Prof. Dr. G. Hellberg Prof. Dr. G. Hellberg Email: hellberg@drhellberg.de
MehrInfo B VL 17: Deadlocks
Info B VL 17: Deadlocks Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 17: Deadlocks p.327 Conditional
MehrDeadlocks. 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.
MehrAutomaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Abgeschlossenheit (Definition)
MehrKlausur Nichtsequentielle Programmierung
Klausur Nichtsequentielle Programmierung Prof. Dr. Marcel Kyas 22. Juli 2009 Nachname: Bachelor Magister Vorname: Master Lehramt Diplom Hinweise zur Klausur Bitte überprüfen Sie, dass Sie alle Seiten dieser
MehrPrioritä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
MehrPrioritä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
MehrH Verklemmungen. 1 Motivation. 1 Motivation (2) H Verklemmungen. Beispiel: die fünf Philosophen am runden Tisch
1 Motivation Beispiel: die fünf Philosophen am runden Tisch Verklemmungen Philosophen denken oder essen "The life of a philosopher consists of an alternation of thinking and eating." (Dijkstra, 1971) zum
MehrÜbung Betriebssysteme 11
Übung Betriebssysteme 11 Christian Motika Christian-Albrechts-Universität zu Kiel Institut für Informatik AG Echtzeitsysteme / Eingebettete Systeme Kiel, Germany 29-JAN-2013 CAU - WS 2012/13 Übung Betriebssysteme
Mehr6. Juni VO Prüfung Betriebssysteme. Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!
VO 8. Prüfung Betriebssysteme. Juni KNr. MNr. Zuname, Vorname Ges.)().)().)().)() Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! Synchronisation mit Semaphoren () Eine Parkgarage
MehrSysteme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
MehrDeadlock. Peter Puschner Institut für Technische Informatik
Deadlock Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Deadlock Permanentes Blockieren einer Menge von Prozessen, die um Ressourcen konkurrieren oder miteinander kommunizieren
MehrLö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?
MehrSysteme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch
MehrPthreads. David Klaftenegger. Seminar: Multicore Programmierung Sommersemester
Seminar: Multicore Programmierung Sommersemester 2009 16.07.2009 Inhaltsverzeichnis 1 Speichermodell 2 3 Implementierungsvielfalt Prioritätsinversion 4 Threads Speichermodell Was sind Threads innerhalb
MehrMutual Exclusion. Annika Külzer Florian Störkle Dennis Herzner
Mutual Exclusion Annika Külzer Florian Störkle Dennis Herzner Gliederung 1 Mutual Exclusion allgemein 2 Lock-Algorithmen 2.1 LockOne 2.2 LockTwo + Beweis 2.3 Peterson Lock 2.4 Lamport's Bakery Lock-Algorithmus
MehrDeadlocks. 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.
MehrAnwendung (2. Versuch:-) Entkopplung der Locks
Gut gemeint aber leider fehlerhaft... Jeder Producer benötigt zwei Locks gleichzeitig, um zu produzieren: 1. dasjenige für den Puffer; 2. dasjenige für einen Semaphor. Musser fürden Semaphor einwait()
MehrMemory Models Frederik Zipp
Memory Models Frederik Zipp Seminar: Programmiersprachen für Parallele Programmierung (SS 2010) Fakultät für Informatik - IPD SNELTING LEHRSTUHL PROGRAMMIERPARADIGMEN 1
Mehr3.5 Synchronisation ohne Sperren
Überblick Nachteil von Sperren: Einschränkung der Parallelität Deadlocks 1. Lösungsversuch: Weiterhin pessimistisches Verfahren, aber statt Sperren, Zeitstempel (nicht zur Verklemmungsvermeidung sondern
Mehr9. 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 wolkenrechnen@gmail.com Dr. Christian
MehrC-Code-Fragment Bankautomat. Vorlesung Betriebssysteme I II. Möglicher (typischer) Ablauf. Begriff der Race Condition
C-Code-Fragment Bankautomat Vorlesung Betriebssysteme I II Thema 0: Synchronisation Robert Baumgartl 6. März 05 Unterbrechung /* gemeinsam genutzte Variable */ int guthaben = 3000; /* Dublonen */ int abheben
MehrWegweiser. Das Erzeuger-/Verbraucher-Problem. Semaphore. Transaktionen. Botschaften
Wegweiser Das Erzeuger-/Verbraucher-Problem Semaphore Transaktionen Botschaften Betriebssysteme WS 2013, Threads 75 Beispiele Erzeuger-/Verbraucher-Probleme Betriebsmittelverwaltung Warten auf eine Eingabe
MehrArten der Synchronisation. Koordination nebenläufiger Prozesse. Koordinierung. Reihenschaltung. Einseitige Synchronisation
Koordination nebenläufiger Prozesse Arten der Synchronisation Systemaufrufe Programmverwaltung Zugriffskontrolle Dateiverwaltung Ein /Auslagerung Vernetzung Ein /Ausgabe Fadenverwaltung Koordination Prozesseinplanung
MehrKlausur zur Vorlesung Grundlagen der Betriebssysteme
Prof. Dr. L. Wegner Dipl.-Math. K. Schweinsberg Klausur zur Vorlesung Grundlagen der Betriebssysteme 19.2.2004 Name:... Vorname:... Matrikelnr.:... Studiengang:... Hinweise: Bearbeitungszeit 2 Stunden.
MehrAbschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Abgeschlossenheit (Definition) Gegeben sei eine Menge M und ein n-ärer
MehrKapitel 6. Verklemmungen (Deadlocks)
Seite 1 Kapitel 6 Verklemmungen (Deadlocks) Prof. Dr. Rolf Hennicker 16.06.2016 6.1 Charakterisierung von Deadlocks Seite 2 Eine Verklemmung entsteht, wenn alle Prozesse in einem System blockiert (d.h.
Mehr( Faire ) Zuteilung eines Prozesses an den Prozessor (Entscheidung über Swapping) Wartende Prozesse in einer (FIFO-) Warteschlange organisieren
22 2.2 Prozesse Prozess-Scheduling Scheduler: ( Faire ) Zuteilung eines Prozesses an den Prozessor (Entscheidung über Swapping) Scheduling-Verfahren Round Robin (einfach und häufig verwendet) Wartende
Mehr(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl
Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112
MehrParallele und funktionale Programmierung Wintersemester 2013/ Übung Abgabe bis , 16:00 Uhr
3. Übung Abgabe bis 15.11.2013, 16:00 Uhr Aufgabe 3.1: Sichtbarkeiten a) Aus welchen Gründen ist Sichtbarkeitssynchronisation bei parallelen Programmen wichtig? b) Welche Rollen spielen hierbei das Schlüsselwort
MehrNicht-blockierende Synchronisation für Echtzeitsysteme
Nicht-blockierende Synchronisation für Echtzeitsysteme Seminar Mobile Systeme Florian Schricker 15. März 2005 Seminarleiter: Prof. Dr. Dieter Zöbel 1 INHALTSVERZEICHNIS INHALTSVERZEICHNIS Inhaltsverzeichnis
MehrMultiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011
Multiprozessoren Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Multiprozessoren 1/29 2011-06-16 Multiprozessoren Leistungsfähigkeit
MehrComputer-Systeme. Teil 13: Konzept der Threads
Computer-Systeme Teil 13: Konzept der Threads Computer-Systeme WS 12/13 - Teil 13/Threads 02.01.2013 1 Übersicht I/O als langsamster Vorgang Threadwechsel mit der Resume-Operation Verfeinerung der Systemaufrufe
MehrBetriebssysteme G: Parallele Prozesse ( Teil C: SpinLock, Semaphore, Monitore)
Betriebssysteme G: Parallele Prozesse ( Teil C: SpinLock, Semaphore, Monitore) 1 Hardwareunterstützung Uniprozessor-System Verbiete Interrupts während des Aufenthalts in einer CR disable interrupt CR(bzw:
MehrÜbungsblatt 2: Betriebssysteme, Prozesse
Ludwig-Maximilians-Universität München München, 13.05.2009 Institut für Informatik Priv.-Doz. Dr. Peer Kröger Thomas Bernecker Einführung in die Informatik: Systeme und Anwungen SS 2009 Übungsblatt 2:
MehrSequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )
Threads Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Ein thread bearbeitet eine sequentielle Teilaufgabe innerhalb eines Prozesses Mehrere nebenläufige
Mehr9. 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
MehrArrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss
Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei
MehrNebenlä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
MehrNebenläufigkeit und Asynchronizität in eingebetteten Systemen. Klaus Kusche, September 2012
Nebenläufigkeit und Asynchronizität in eingebetteten Systemen Klaus Kusche, September 2012 Inhalt Definitionen und Begriffe Strategien zur Parallelisierung Kommunikation & Synchronisation Hardware-Voraussetzungen
MehrVerklemmungen - 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
MehrBetriebssysteme Teil 7: Konzept der Threads
Betriebssysteme Teil 7: Konzept der Threads 06.11.15 1 Übersicht I/O als langsamster Vorgang Threadwechsel mit der Resume-Operation Interrupts Scheduler Time Sharing 2 Motivation Die Geschwindigkeit der
MehrBetriebssysteme Teil 11: Interprozess-Kommunikation
Betriebssysteme Teil 11: Interprozess-Kommunikation 19.12.15 1 Übersicht Grundbegriffe Shared Memory Pipelines Messages Ports Sockets 2 Grundbegriffe Interprocess-Kommunikation = Austausch von Daten über
MehrDatenstrukturen und Algorithmen
1 Datenstrukturen und Algorithmen Übung 13 FS 2018 Programm von heute 2 1 Feedback letzte Übung 2 Wiederholung Theorie 3 Nächste Übung 1. Feedback letzte Übung 3 Aufgabe 12.3: Summe eines Vektors void
MehrJJ Prozesse und Nebenläufigkeit
1 Wiederholung: Algorithmus von Peterson boolean ready0=false, ready1=false; int turn=0; JJ Prozesse und Nebenläufigkeit (Auszug aus der Vorlesung) while( 1 ) Prozess 0 ready0 = true; turn = 1; while(
MehrÜ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
Mehr6.1.2 Sequentielle Konsistenz (Lamport 1979)
6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistenc): Effekt/Ergebnisse einer verteilten Programmausführung auf repliziertem Objekt = Effekt/Ergebnisse einer
MehrInfo B VL 16: Monitore und Semaphoren
Info B VL 16: Monitore und Semaphoren Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 16: Monitore und
MehrAufgabenblatt 7 Musterlösung
Prof. Dr. rer. nat. Roland Wismüller Aufgabenblatt 7 Musterlösung Vorlesung Betriebssysteme I Wintersemester 2017/18 Aufgabe 1: Steuerung eines Warenautomaten (Bearbeitung zu Hause) Anleitung wie man solche
MehrProzesszustä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 &
MehrBitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation mit Semphoren (30)
VO 8. Prüfung Betriebssysteme. Oktober KNr. MNr. Zuname, Vorname Ges.)().)().)().)() Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! Synchronisation mit Semphoren () In einem Fitnesscenter
MehrVorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Verteilte Systeme, Sommersemester 1999 Folie 7.2
Verteilte Systeme 7. Verteilter wechselseitiger Ausschluß Inhalt I. Was ist wechselseitiger Ausschluß II. Wechselseitiger Ausschluß mit State-Variablen III. Wechselseitiger Ausschluß mit Nachrichten Verteilte
MehrSchreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).
Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle
MehrRTOS Einführung. Version: Datum: Autor: Werner Dichler
RTOS Einführung Version: 0.0.1 Datum: 20.07.2013 Autor: Werner Dichler Inhalt Inhalt... 2 RTOS... 3 Definition... 3 Anforderungen... 3 Aufgaben... 3 Eigenschaften... 4 Einteilung der Betriebssysteme...
MehrWie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
MehrProgrammieren II. Nebenläufigkeit. Vorlesung 9. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester Threads. Kritische Bereiche
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 24 Threads Kritische Bereiche Reales Beispiel 2 / 24 Nebenläufigkeit Moderne Betriebssysteme unterstützen das Prinzip der
MehrSysteme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 13.11.2013 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen
MehrSingle- und Multitasking
Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de Peter B. Ladkin Command Interpreter (ComInt) läuft wartet auf Tastatur-Eingabe "liest" (parst) die Eingabe (für Prog-Name) Macht "Lookup"
MehrVersuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.
Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung
MehrTechnische Informatik II
Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Rechnerarchitektur und Betriebssysteme Peter B. Ladkin Rechnerarchitektur Hardware Architektur Von Neumann (stored program)
MehrSysteme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss Maren Bennewitz Version 18.12.2013 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung,
MehrGreedy Algorithms - Gierige Algorithmen
Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2
MehrÜbungen zur Vorlesung. Datenbanken I. WS 2002/2003 Blatt 4 MUSTERLÖSUNG
Prof. Dr. S. Böttcher Adelhard Türling Übungen zur Vorlesung Datenbanken I WS 2002/2003 Blatt 4 MUSTERLÖSUNG Aufgabe 4.1: Bestimmen Sie zu den folgenden Transaktions-Schedules, ob diese (konflikt-) serialisierbar
Mehr5.3.2 Sequentielle Konsistenz. Def.: Sequentielle Konsistenz (sequential consistency):
5.3.2 Sequentielle Konsistenz Sequentielle Konsistenz (sequential consistency): Effekt einer Programmausführung auf repliziertem Objekt = Effekt einer äquivalenten sequentiellen Ausführung auf nichtrepliziertem
MehrSoftwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm
U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 U9-2 Motivation von Threads U9-2 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller
MehrKlausur WS 2009/2010
Betriebssysteme und Systemsoftware Klausur WS 2009/2010 02.02.2010 Name: Vorname: Studiengang: Hinweise: (Bitte sorgfältig durchlesen!) Schreiben Sie auf jedes Blatt Ihren Namen und Ihre Matrikelnummer.
MehrAbschnitt 11: Korrektheit von imperativen Programmen
Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Probeklausur Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund http://ess.cs.uni-dortmund.de/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 17. JAVA Kommunikation von Threads 1 Motivation
MehrAufgaben zum Thema Threads (Prozesse)
Aufgaben zum Thema Threads (Prozesse) T1. Erläutern Sie zwei Methoden, mit denen ein Prozeß seinen kritischen Abschnitt schützen kann! Geben Sie jeweils eine Implementationsmöglichkeit (in Pseudocode)
MehrThreads Einführung. Zustände von Threads
Threads Einführung Parallelität : Zerlegung von Problemstellungen in Teilaufgaben, die parallelel ausgeführt werden können (einfachere Strukturen, eventuell schneller, Voraussetzung für Mehrprozessorarchitekturen)
MehrLiteratur. Betriebssysteme - WS 2015/16 - Teil 13/Scheduling 2
Literatur [13-1] Quade, Jürgen; Mächtel, Michael: Moderne Realzeitsysteme kompakt. dpunkt, 2012 [13-2] Quade, Jürgen: Embedded Linux lernen mit dem Raspberry Pi. dpunkt, 2014 [13-3] Eißenlöffel, Thomas:
MehrJava als erste Programmiersprache
Joachim Göll Cornelia Heinisch Java als erste Programmiersprache Grundkurs für Hochschulen 8., überarbeitete Auflage Springer Vi eweg Inhaltsverzeichnis 1 Grundlagen der Programmierung 1 1.1 Das erste
MehrWintersemester 2009/10 Helmut Seidl Institut für Informatik TU München
Informatik2 Wintersemester 2009/10 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Nebenläufigkeit in Java; Funktionales Programmieren mit OCaml :-) 2 1 Threads
MehrOpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009
- Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009 Grundlagen der Parallelen Programmierung Hardware Threads vs. Prozesse Kritische Abschnitte Lange
MehrWechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen. Özden Urganci Ulf Sigmund Ömer Ekinci
Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen Özden Urganci Ulf Sigmund Ömer Ekinci Inhaltsangabe 1 Einleitung 2 Prinzipien des verteilten wechselseitigen Ausschlusses 2.1 Anforderungen
MehrÜbersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (5) Bisher. Jetzt. Aktuelle Themen zu Informatik der Systeme: WS 2011/12
Stand der Folien: 15. November 2011 Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (5) 1 Übersicht über die Operationen Mutual-Exclusion
MehrWS Parallele Prozesse. Prof. Hannelore Frank. Parallele Prozesse. PetriNetze. Synchronisation UNIX. Wettbewerb PC Krit.Abschnitt Spinlocks
WS 2007 Überblick 1 2 Petri-Netze als Entwurfshilfsmittel 3 nebenläufiger 4 -Systemfunktionen Literatur Eduard Glatz: Betriebssysteme. Grundlagen, Konzepte, Systemprogrammierung dpunkt.verlag, 2006, ISBN
MehrErstes Leser-Schreiber-Problem
Erstes Leser-Schreiber-Problem Szenario: mehrere Leser und mehrere Schreiber gemeinsamer Datenbereich Schreiber haben exklusiven Zugriff Leser können parallel zugreifen (natürlich nur, wenn kein Schreiber
Mehr