Literatur. Betriebssysteme WS 2015/16 - Teil 8/Synchronisation I

Größe: px
Ab Seite anzeigen:

Download "Literatur. Betriebssysteme WS 2015/16 - Teil 8/Synchronisation I"

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 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

Mehr

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Betriebssysteme. 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

Mehr

Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)

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

Mehr

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf

Ü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

Mehr

Betriebssysteme. Teil 12: Deadlocks

Betriebssysteme. 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

Mehr

Literatur. VA SS Teil 5/Messages

Literatur. 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

Mehr

Leser-Schreiber-Realisierung mit Semaphoren

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

Mehr

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Test (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 Ü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)

Mehr

Fakultät für Informatik der Technischen Universität München. Nebenläufigkeit. Probleme

Fakultä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

Mehr

Was machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a

Was 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

Mehr

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur 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 =

Mehr

Softwarelösungen: Versuch 4

Softwarelö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]

Mehr

Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden.

Die 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

Mehr

2. Aufgabenblatt Threads

2. 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

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme 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

Mehr

Lösungsvorschlag Serie 7 Parallelität

Lö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

Mehr

Betriebssysteme. Koordination und Synchronisation: Kritische Abschnitte, Sperren, Semaphore und Mutexe. Sommersemester 2014 Prof. Dr.

Betriebssysteme. 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

Mehr

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Betriebssysteme 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

Mehr

Info B VL 17: Deadlocks

Info 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

Mehr

Deadlocks. Christoph Lindemann. Betriebssysteme. Betriebssysteme WS 2004/05. Fahrplan. Inhalt. Das Deadlock Problem

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.

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Automaten 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)

Mehr

Klausur Nichtsequentielle Programmierung

Klausur 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

Mehr

Prioritäten/Zeitstempel-Verfahren

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

Mehr

Prioritäten/Zeitstempel-Verfahren. WAIT-DIE und WOUND-WAIT-Strategien

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

Mehr

H Verklemmungen. 1 Motivation. 1 Motivation (2) H Verklemmungen. Beispiel: die fünf Philosophen am runden Tisch

H 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 Ü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

Mehr

6. Juni VO Prüfung Betriebssysteme. Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

6. 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

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 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

Mehr

Deadlock. Peter Puschner Institut für Technische Informatik

Deadlock. 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

Mehr

Lösung von Übungsblatt 9. (Interprozesskommunikation)

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?

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme 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

Mehr

Pthreads. David Klaftenegger. Seminar: Multicore Programmierung Sommersemester

Pthreads. 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

Mehr

Mutual Exclusion. Annika Külzer Florian Störkle Dennis Herzner

Mutual 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

Mehr

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File

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.

Mehr

Anwendung (2. Versuch:-) Entkopplung der Locks

Anwendung (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()

Mehr

Memory Models Frederik Zipp

Memory 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

Mehr

3.5 Synchronisation ohne Sperren

3.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

Mehr

9. Vorlesung Betriebssysteme

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 wolkenrechnen@gmail.com Dr. Christian

Mehr

C-Code-Fragment Bankautomat. Vorlesung Betriebssysteme I II. Möglicher (typischer) Ablauf. Begriff der Race Condition

C-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

Mehr

Wegweiser. Das Erzeuger-/Verbraucher-Problem. Semaphore. Transaktionen. Botschaften

Wegweiser. 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

Mehr

Arten der Synchronisation. Koordination nebenläufiger Prozesse. Koordinierung. Reihenschaltung. Einseitige Synchronisation

Arten 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

Mehr

Klausur zur Vorlesung Grundlagen der Betriebssysteme

Klausur 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.

Mehr

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften

Abschlusseigenschaften. 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

Mehr

Kapitel 6. Verklemmungen (Deadlocks)

Kapitel 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

( 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

(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

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/ Übung Abgabe bis , 16:00 Uhr

Parallele 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

Mehr

Nicht-blockierende Synchronisation für Echtzeitsysteme

Nicht-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

Mehr

Multiprozessoren. 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 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

Mehr

Computer-Systeme. Teil 13: Konzept der Threads

Computer-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

Mehr

Betriebssysteme G: Parallele Prozesse ( Teil C: SpinLock, Semaphore, Monitore)

Betriebssysteme 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

Ü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:

Mehr

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Sequentielle 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

Mehr

9. Foliensatz Betriebssysteme

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

Mehr

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Arrays. 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

Mehr

Nebenläufigkeit mit Java

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

Mehr

Nebenläufigkeit und Asynchronizität in eingebetteten Systemen. Klaus Kusche, September 2012

Nebenlä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

Mehr

Verklemmungen - Deadlocks

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

Mehr

Betriebssysteme Teil 7: Konzept der Threads

Betriebssysteme 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

Mehr

Betriebssysteme Teil 11: Interprozess-Kommunikation

Betriebssysteme 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

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen 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

Mehr

JJ Prozesse und Nebenläufigkeit

JJ 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 Ü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

Mehr

6.1.2 Sequentielle Konsistenz (Lamport 1979)

6.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

Mehr

Info B VL 16: Monitore und Semaphoren

Info 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

Mehr

Aufgabenblatt 7 Musterlösung

Aufgabenblatt 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

Mehr

Prozesszustände (1a)

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 &

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation mit Semphoren (30)

Bitte 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

Mehr

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Verteilte Systeme, Sommersemester 1999 Folie 7.2

Vorlesung 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

Mehr

Schreiben 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). 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

Mehr

RTOS Einführung. Version: Datum: Autor: Werner Dichler

RTOS 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...

Mehr

Wie groß ist die Page Table?

Wie 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

Mehr

Programmieren II. Nebenläufigkeit. Vorlesung 9. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester Threads. Kritische Bereiche

Programmieren 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

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme 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

Mehr

Single- und Multitasking

Single- 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"

Mehr

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

Versuchsziele 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

Mehr

Technische Informatik II

Technische 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)

Mehr

Systeme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss. Maren Bennewitz

Systeme 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,

Mehr

Greedy Algorithms - Gierige Algorithmen

Greedy 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

Ü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

Mehr

5.3.2 Sequentielle Konsistenz. Def.: Sequentielle Konsistenz (sequential consistency):

5.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

Mehr

Softwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm

Softwaresysteme 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

Mehr

Klausur WS 2009/2010

Klausur 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.

Mehr

Abschnitt 11: Korrektheit von imperativen Programmen

Abschnitt 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

Mehr

Betriebssysteme (BS)

Betriebssysteme (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/

Mehr

Vorlesung Informatik II

Vorlesung 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

Mehr

Aufgaben zum Thema Threads (Prozesse)

Aufgaben 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)

Mehr

Threads Einführung. Zustände von Threads

Threads 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)

Mehr

Literatur. Betriebssysteme - WS 2015/16 - Teil 13/Scheduling 2

Literatur. 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:

Mehr

Java als erste Programmiersprache

Java 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

Mehr

Wintersemester 2009/10 Helmut Seidl Institut für Informatik TU München

Wintersemester 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

Mehr

OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009

OpenMP - 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

Mehr

Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen. Özden Urganci Ulf Sigmund Ömer Ekinci

Wechselseitiger 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

Ü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

Mehr

WS Parallele Prozesse. Prof. Hannelore Frank. Parallele Prozesse. PetriNetze. Synchronisation UNIX. Wettbewerb PC Krit.Abschnitt Spinlocks

WS 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

Mehr

Erstes Leser-Schreiber-Problem

Erstes 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