Grundlagen der Programmierung 1 - Teil 3. synchronisation. 500 einzahlen 100 abheben. B := read(a) B := B + 500
|
|
- Waldemar Holzmann
- vor 6 Jahren
- Abrufe
Transkript
1 Modul: Programmierung (B-PRG) Grundlagen der Programmierung 1 Teil 3 Prozess-synchronisation synchronisation Prof. Dr. R. Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Race conditions Beispiel: Kontoführung Paralleler Zugriff auf globale Variable Parallele Prozesse von vielen Benutzern arbeiten gleichzeitig auf den Daten. Falls gleichzeitig zwei Benutzer auf das gleiche Konto einzahlen möchten, so kann es sein, dass der Kontostand hinterher nicht stimmt. Ein solcher Fehler wird von keinem Kunden toleriert! 15:00 Uhr Konto A= einzahlen 100 abheben B := read(a) 15:01 C := read(a) B := B :02 C := C -100 B write(a) 15:03 15:04 C write(a) Konto A = 200 Eine Fehlbuchung tritt nur auf, wenn Prozess den Prozess überholt ( race condition ) Zeit Folie 2 1
2 Race conditions Beispiel: Warteschlangeneintrag eines PCB Anker B C PointToB PointToC A PointToA PCB(B) PCB(C) PCB(A) Einhängen A Aushängen B (1) Lesen des Ankers: PointToB (1) Lesen des Ankers: PointToB (2) Setzen des NextZeigers:=PointToB (2) Lesen des NextZeigers:PointToC (3) Setzen des Ankers:=PointToA (3) Setzen des Ankers:=PointToC Problem: ( Race conditions : kontextbedingt, nicht-wiederholbare Effekte durch überholende Prozesse) z.b. a) Unterbrechung beim Aushängen von B durch Einhängen von A Prozeß A ist weg! b) Unterbrechung beim Einhängen von A durch Aushängen von B Prozeß B bleibt erhalten! Folie 3 Lösung: Signale und Semaphoren Peterson: Synchronisierung durch Signale (Interesse) Allgemein: Das Semaphor (Signalbarken, Dijkstra 1965) Passieren P(s) waitfor (signal) Aufruf vor krit. Abschnitt, Warten falls besetzt Verlassen V(s) send (signal) Aufruf nach krit. Abschnitt, Aktivieren eines wart. Prozesses Beispiel: paralleles Hochzählen z = 1, 2, 3,... z global Prozeß 1 Prozeß warten P(s) z :=z+1; WriteInteger(z) V(s) freigeben P(s) z :=z+1; WriteInteger(z) V(s) Folie 4 2
3 Implementierung busy wait Software Pseudo-Code initial s=1 def P(s): while s<=0 : Ununterbrechbar! krit. NoOp; Abschnitt s = s-1; Semaphor = Zähler, Problem: def spin locks V(s): können fairness verletzen: Prozesse s = s+1; hoher Prio im spin lock vs. niedr. Prio im krit. Abschnitt Grundlagen der Programmierung Ununterbrechbar 1 - Teil 3! Ununterbrechbar Folie 5 Implementierung Schlafen Software Pseudo-Code Initial: s.value = 1 Datenstruktur def P(s): s.value = s.value-1; if s.value < 0 : einhängen(myid,s.list); sleep; def V(s): if s.value < 0 : PID = aushängen(s.list); wakeup(pid); s.value = s.value +1; class Semaphor : value; list; Problem: Ununterbrechbarer Code nötig! Folie 6 3
4 Lösung: Atomare Aktionen Beispiel: Geldtransaktion Sie überweisen Computerabsturz! Abbuchung 2000 Empfänger-Gutbuchung 2000 Wo ist das Geld? Keine oder erneute Überweisung = Verlust! Forderung: Atomare Aktion Entweder vollständige Transaktion oder gar keine! (bei Abbruch roll back auf vorher definierten Zustand) Folie 7 HW-Implementierung: Atomare Aktionen Interrupts ausschalten (Probleme: timer, power failure, I/O) Atomare Instruktionsfolge z.b. Fetch And Add (fetch and add value) Abfrage der akt. Anzahl def fetchandadd(s, value) : tmp = s; s = tmp + value; return tmp; Test And Set (test and set lock) Abfrage: bin ich erster? def TestAndSet(s) : tmp = s; s = true; return tmp; wird unkritisch nur von einem Prozess zurückgesetzt Folie 8 4
5 Semaphoren: Unix lockf Sperren Dateizugriff P(s) lock file msem_init Semaphorinit. zumspeicherzugriff msem_lock memory Sperren eines Semaphors P(s) msem_unlock Entsperren eines Semaphors V(s) msem_remove Entfernen eines Semaphors semctl semget semop Semaphorkontrolloperationen Prozesse hole Semaphorwert Semaphoroperation Folie 9 Semaphoren: Windows NT Prozesse CreateSemaphore() Erzeugen OpenSemaphore() Initialisieren WaitForSingleObject(Sema,TimeOutVal) P(s) ReleaseSemaphore() V(s) Threads Semaphore = Type CRITICAL_SECTION InitializeCriticalSection(S) EnterCriticalSection(S) LeaveCriticalSection(S) P(s) V(s) Kernprozesse Spin locks: keine Referenzen zu Disk-Speicher, keine traps & syscalls Folie 10 5
6 Semaphoren: Python Class mutex() Methoden test() Datenstruktur mit binärem Semaphor s + Warteschlange Ist s gesetzt? testandset() Setze s atomar. RET: War s ungesetzt? lock(kritab,arg) Setze s und führe KritAb(arg) aus. s gesetzt: KritAb Warteschlange unlock() Setze s zurück. Wenn Warteschlange 0, führe stattdessen ersten KritAb aus und rücke Wartschlange auf. Folie 11 Semaphoren: Java Konstrukt synchronized (<expression>) <statement> Thread wartet, bis <expression> frei ist. Innerhalb eines synchronized-bereichs kann man zusätzlich mit den Methoden wait() auf ein Signal warten, das mit notify() gesendet wird. Folie 12 6
7 Synchronisation von Prozessen Präzedenzgraph A b c B e E d1 C d2 D Implementierung mit Semaphoren PROCESS A: TaskBodyA; V(b); V(c); PROCESS B: P(b); TaskBodyB; V(d1);V(e); PROCESS C: P(c); TaskBodyC; V(d2); PROCESS D: P(d1); P(d2); TaskBodyD; PROCESS E: P(e); TaskBodyE; Globale Variable b, c, d1, d2, e mit 0 initialisieren. Folie 13 Synchronisation von Prozessen Rendez-vous-Konzept (Ada) Warten ohne Pufferung aufeinander Senderprogramm... send(empfänger,msg );... Empfängerprogramm... receive(sender,msg)... Folie 14 7
8 Synchronisation Erzeuger-Verbraucher Naiver Ansatz Initial: used = 0 Erzeuger LOOP produce(item) IF used=n THEN sleep(); putinbuffer(item); used := used+1; IF used=1 THEN wakeup(verbraucher); END LOOP Verbraucher Umschaltung LOOP IF used=0 THEN sleep(); getfrombuffer(item); used := used-1 IF used = N-1 THEN wakeup(erzeuger); consume(item); END LOOP Problem: race condition innerhalb der Flusskontrolle: Bei Umschaltung nach used=0 auf Erzeuger erfolgt wakeup + Pufferfüllung, dann ewiges Schlafen vom Erzeuger und dann auch vom Verbraucher. Folie 15 Synchronisation Erzeuger-Verbraucher Lösung Signal speichern. Aber: unbekannte Prozesszahl...? Semaphore einführen: belegteplätze:=0, freieplätze:=n, mutex:=1 Erzeuger LOOP produce(item) P(freiePlätze); P(mutex); putinbuffer( item); V(mutex); V(belegtePlätze); END LOOP Verbraucher LOOP P(belegtePlätze); P(mutex); getfrombuffer(item); V(mutex); V(freiePlätze); consume(item); END LOOP krit. Abschnittskontrolle + Flusskontrolle durch Semaphore Folie 16 8
9 Prozess- kommunikation Prozeßkommunikation Verbindungsanzahl unicast multicast broadcast jede Art kann jede andere Art ersetzen! Folie 18 9
10 Prozeßkommunikation Verbindungsorientierte Kommunikation openconnection (Adresse) send(message)/ receive(message) closeconnection Feststellen, ob der Empfänger existiert und bereit ist: Aufbau der Verbindung Nachrichtenaustausch; Leeren der Nachrichtenpuffer, Beenden der Verbindung Verbindungslose Kommunikation send (Adresse, Message) / receive(adresse, Message) Folie 19 Prozeßkommunikation: Adressierung Eindeutige Adressierung: Qualifizierter ID mit IP Adresse = Prozeß-ID.RechnerName.Firma.Land Problem: Lösung: z.b hera.rbi.uni-frankfurt.de Prozeß wechselt ID bei Neustart, Aufgabe bleibt logische ID, nicht physische. Beispiel: Drucker Prädikatsadresse: Spezifikationen als Adresse (IF 386-CPU AND Java_installiert AND Drucker) = True: fühle dich angesprochen, sonst nicht. Arbeitsverteilung! Mailbox = Nachrichtenpuffer mit Namen, unabh. vom Prozess Folie 20 10
11 Prozeßkommunikation: Pipes Unix pipe() unidirektionale Kommunikation Programm1 Programm2.. Programm N write() Programm 1 read() Programm 2 Windows NT CreatePipe() Bidirektionale pipes Beliebige Prozesse: named pipes Name den Prozessen vorher bekannt Folie 21 Prozeßkommunikation : Named Pipes Globales Konzept: Named pipe ( Netzwerk/Pfadname ) => LAN-Interprozeß-Kommunikation Unix Named pipe = special device nur IPC auf selbem Rechner, nicht NFS Named pipe = SystemV: STREAM socket pair() / bind() Windows NT CreateNamedPipe() : Objekt im globalen Namensraum, auch NetzPfad IPC = ReadFile() / WriteFile() UNC-Name = \\ComputerName\PIPE\PipeName Lokale pipe: \\.\PIPE\PipeName Kommunikation zu Unix möglich, wenn LAN-Manager für Unix LM/U installiert. Folie 22 11
12 Prozeßkommunikation: Signale Problem: Synchrones Warten blockiert Prozesse Abhilfe: Benachrichtigung durch asynchrone Signale (Software-Interrupts) Aufsetzen der Reaktion auf ein Signal, z.b. in UNIX mit sigaction(isr) Abarbeiten des Hauptprogramms Bei Signaleintritt: Abarbeiten der angegebenen ISR Weiterarbeiten im Hauptprogramm Folie 23 12
Prozess-synchronisationsynchronisation
Race conditions Modul: Programmierung (B-PRG) Grundlagen der Programmierung 1 Teil 3 Prozess-synchronisationsynchronisation Prof. Dr. R. Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich
MehrModul B-PRG Grundlagen der Programmierung 1
Modul B-PRG Grundlagen der Programmierung 1 Teil 3: Betriebssysteme,Dateisysteme,Sicherheit V21: Prozesssynchronisation Prof. Dr. R. Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich
MehrProzesssynchronisation. Inhalt. Vorlesung
Vorlesung 20 Prozesssynchronisation Inhalt 1. Race conditions und kritische Abschnitte 1 2. Signale, Semaphore und atomare Aktionen 3 2.1 Atomare Aktionen 4 2.2 Beispiel UNIX 6 2.3 Beispiel Windows NT
MehrProzess- synchro- nisation
Kap. 3 Prozess- synchro- nisation Version vom 06.05.2007 Kap. 3 - Inhalt Kritische Abschnitte Software-Lösungen Semaphore Hardware-Lösungen Synchronisationsprobleme Prozeßkommunikation Verklemmungen Vorgriff
MehrProzess- synchro- nisation
Kap. 3 Prozess- synchro- nisation Version vom 05.10.2009 Kap. 3 - Inhalt Kritische Abschnitte Software-Lösungen Semaphore Hardware-Lösungen Synchronisationsprobleme Prozeßkommunikation Verklemmungen Folie
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)
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
MehrHans-Georg Eßer, Hochschule München Betriebssysteme I, SS Synchronisation (1) Folie 3
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
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
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
MehrInhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:
Inhaltsverzeichnis Carsten Vogt Nebenläufige Programmierung Ein Arbeitsbuch mit UNIX/Linux und Java ISBN: 978-3-446-42755-6 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42755-6
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
MehrProzeßverwaltung. die Prozeßtabelle enthält die Prozeßleitblöcke
Prozeßverwaltung Komponente eines Betriebssystems, die für die Zuteilung von Betriebsmitteln an wartende Prozesse zuständig ist alle für die Prozeßverwaltung ( process management ) wichtigen Informationen
MehrClient - Server Architektur
Client - Server Architektur The Client-Server Model Literatur: R. Brause Silberschatz et al. SS2001 Prof. H. D. Clausen - unisal 1 Prozess-Kommunikation Kommunikation zwischen Prozessen Prozesse benutzen
MehrHans-Georg Eßer, FH München Betriebssysteme I, WS 2006/07, 2007/01/24 Zusammenfassung (2/2) Folie 2
/home/esser/daten/dozent/folien/bs-esser-24.odp Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep
MehrThreads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
MehrBetriebssysteme. Kommunikation von Prozessen und Threads. Sommersemester Prof. Dr. Peter Mandl. Seite 1. Prof. Dr. Peter Mandl.
Kommunikation von Prozessen und Threads Sommersemester 2014 Seite 1 Gesamtüberblick 1. Einführung in 2. Betriebssystemarchitekturen und Betriebsarten 3. Interruptverarbeitung in n 4. Prozesse und Threads
MehrKommunikationsmodelle
Kommunikationsmodelle Dr. Victor Pankratius David J. Meder IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Grundlegende
MehrA Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...
1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................
MehrAufgabenblatt 8 Musterlösung
Prof. Dr. rer. nat. Roland Wismüller Aufgabenblatt 8 Musterlösung Vorlesung Betriebssysteme I Wintersemester 2017/18 Aufgabe 1: Erzeuger-Verbraucher Synchronisation (Bearbeitung in der Übungsstunde) Erzeuger-Verbraucher-Problem:
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
MehrBetriebssysteme 1 BS1-E SS Prof. Dr.-Ing. Hans-Georg Eßer Fachhochschule Südwestfalen. Foliensatz E: Synchronisation Deadlocks. v1.
BS1-E Betriebssysteme 1 SS 2016 Prof. Dr.-Ing. Hans-Georg Eßer Fachhochschule Südwestfalen Foliensatz E: Synchronisation Deadlocks v1.0, 2016/06/05 05.06.2016 Betriebssysteme 1, SS 2016, Hans-Georg Eßer
Mehrleave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
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:
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
MehrBetriebssysteme 1. Einführung (2) Synchronisation: Probleme mit gleichzeitigem Zugriff auf Datenstrukturen Beispiel: Zwei Threads erhöhen einen Zähler
BS1-E Einführung (2) Betriebssysteme 1 SS 2018 Synchronisation: Probleme mit gleichzeitigem Zugriff auf Datenstrukturen Beispiel: Zwei Threads erhöhen einen Zähler Prof. Dr.-Ing. Hans-Georg Eßer Fachhochschule
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
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
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
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
MehrModul B-PRG Grundlagen der Programmierung 1
Modul B-PRG Grundlagen der Programmierung 1 Teil 3: Betriebssysteme, Dateisysteme,Sicherheit V20: Prozesse Prof. Dr. R. Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik
MehrBetriebssysteme Grundlagen und Konzepte
Rüdiger Brause Betriebssysteme Grundlagen und Konzepte Mit 157 Abbildungen Inhaltsverzeichnis 1 Übersicht 1 1.1 Einleitung: Was ist ein Betriebssystem? 1 1.2 Betriebssystemschichten 2 1.3 Schnittstellen
MehrProzeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen
Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von
MehrKommunikation von Prozessen und Threads
Kommunikation von Prozessen und Threads Sommersemester 2015 Prof. Dr. Peter Mandl Prof. Dr. Peter Mandl Seite 1 Gesamtüberblick 1. Einführung in Computersysteme 2. Entwicklung von Betriebssystemen 3. Architekturansätze
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
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
MehrBetriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1
/home/esser/daten/dozent/hs-muenchen-2008/folien/bs-ss2008-esser-14.odp Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]:
Mehr#define N 5 // Anzahl der Philosophen. while (TRUE) { // Der Philosoph denkt
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
MehrInstitut fu r Informatik
Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2014/15 Aufgabenblatt 11 19.01.2015
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(
MehrInteraktionsarten. Zusammenhang. Arten der Interaktion. 7. Kapitel Prozesse im Zusammenspiel: Prozessinteraktion
Wintersemester 2016/2017 7. Kapitel Prozesse im Zusammenspiel: Prozessinteraktion Interaktionsarten Prozesse als Teile komplexer Programmsysteme müssen Daten austauschen: sich aufrufen (bzw. beauftragen)
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
MehrBetriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen
Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux
MehrSysteme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss. Wolfram Burgard
Systeme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss Wolfram Burgard Version 09.11.2016 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern!
MehrRainer Oechsle. Parallele und verteilte. Anwendungen in Java. 4., neu bearbeitete Auflage. Mit 165 Listings, 5 Tabellen und 71 HANSER
Rainer Oechsle Parallele und verteilte Anwendungen in Java 4., neu bearbeitete Auflage Mit 165 Listings, 5 Tabellen und 71 Bildern HANSER Inhalt 1 Einleitung 15 1.1 Parallelität, Nebenläufigkeit und Verteilung
MehrBetriebssysteme - OS. Betriebssysteme
Betriebssysteme - OS Prozesskommunikation IPC - Inter Process Communication Prozesssynchronisation Process Synchronization Literatur: R Brause Silberschatz et al SS2001 Prof H D Clausen - unisal 1 Prozess
MehrBetriebssysteme Theorie
Betriebssysteme Theorie SS 2011 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz D (05.05.2011) Synchronisation 05.05.2011 Betriebssysteme-Theorie, Hans-Georg Eßer Folie D-1 Einführung (1) Es gibt
MehrKlausur am
Vorlesung Betriebssysteme I Wintersemester 2004/2005 Fachbereich 12, Elektrotechnik und Informatik Betriebssysteme / verteilte Systeme Prof. Roland Wismüller Klausur am 04.04.2005 Name: Vorname: Matrikelnummer:
MehrGrundkurs Betriebssysteme
Grundkurs Betriebssysteme Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation von Peter Mandl 3., akt. und erw. Aufl. 2013 Springer Vieweg Wiesbaden 2012 Verlag C.H. Beck im
MehrPROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker
Multithreading PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik 10. Juni 2013 Übersicht Rückblick: Producer-Consumer-Problem
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
Mehr^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,
Peter Mandl Grundkurs Betriebssysteme Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation, Virtualisierung 4. Auflage ^ Springer Vi eweg 1 Einführung 1 1.1 Computersysteme 1
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
MehrProzesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads
Threads Prozesse, Parallelität, Nebenläufigkeit, Threads, Erzeugung, Ausführung, Kommunikation, Interferenz, Kritischer Bereich, Deadlock, Synchronisation. Prozesse Prozesse sind Programme mehrere Prozesse
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,
Mehr2.3 Prozessverwaltung
Realisierung eines Semaphors: Einem Semaphor liegt genau genommen die Datenstruktur Tupel zugrunde Speziell speichert ein Semaphor zwei Informationen: Der Wert des Semaphors (0 oder 1 bei einem binären
MehrDomänenmodell: Fadenkommunikation und -synchronisation
Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4
MehrVorlesung Betriebssysteme II
1 / 15 Vorlesung Betriebssysteme II Thema 3: IPC Robert Baumgartl 20. April 2015 2 / 15 Message Passing (Nachrichtenaustausch) Prinzip 2 grundlegende Operationen: send(), receive() notwendig, wenn kein
MehrNebenläufige Programme mit Python
Nebenläufige Programme mit Python PyCon DE 2012 Stefan Schwarzer, SSchwarzer.com info@sschwarzer.com Leipzig, Deutschland, 2012-10-30 Nebenläufige Programme mit Python Stefan Schwarzer, info@sschwarzer.com
MehrTafelübung zu BSRvS 1 2. Prozesssynchronisation
Tafelübung zu BSRvS 1 2. Prozesssynchronisation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/
MehrVerteilte Systeme. Nebenläufigkeit. Prof. Dr. Oliver Haase
Verteilte Systeme Nebenläufigkeit Prof. Dr. Oliver Haase 1 Arten der Nebenläufigkeit 1-Prozessor(kern)-System quasiparallele Ausführung erhöht Interaktivität durch Umschalten zwischen Threads kann Parallelitätsgrad
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"
MehrBetriebssysteme (BTS)
13.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 31.5.2007 Wiederholung vom letzten Mal Deadlocks und Verhungern
MehrSpeicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren (P)
Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 26.11. Foliensatz 5 Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren
MehrThreads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger
Netzwerk - Programmierung Threads Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Jan Krüger jkrueger@cebitec.uni-bielefeld.de Übersicht Probleme mit fork Threads Perl threads API Shared Data Mutexes
MehrInhaltsverzeichnis Übersicht Prozesse
1 Übersicht... 1 1.1 Einleitung: Was ist ein Betriebssystem?... 1 1.2 Betriebssystemschichten... 2 1.3 Schnittstellen und virtuelle Maschinen... 3 1.4 Betriebssystemaufbau... 5 1.4.1 Systemaufrufe... 6
MehrLösung von Übungsblatt 10. (Kommunikation von Prozessen)
Lösung von Übungsblatt 10 Aufgabe 1 (Kommunikation von Prozessen) 1. Was ist bei Interprozesskommunikation über gemeinsame Speichersegmente (Shared Memory) zu beachten? Die Prozesse müssen die Zugriffe
MehrMonitore. Klicken bearbeiten
Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition
Mehrparallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher.
Threads parallele Prozesse auf sequenziellen Prozessoren Prozesse und Threads Es gibt zwei unterschiedliche Programme: Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher. Ein Thread
MehrThread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen
Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von
MehrInhaltsverzeichnis XII
1 Einführung... 1 1.1 Computersysteme... 1 1.1.1 Einführung... 2 1.1.2 Aufgabe von Betriebssystemen... 3 1.1.3 Grundlegende Hardwaremodelle... 3 1.1.4 CPU-Registersatz... 7 1.1.5 Multicore-Prozessoren
MehrSynchronisation und Kommunikation über Nachrichten
Synchronisation und Kommunikation über Nachrichten meist bei verteiltem Speicher, kein gemeinsamer Speicher -> keine globalen Variablen keine zu schützenden Datenbereiche Kommunikation über Kanäle und
MehrArchitektur Verteilter Systeme Teil 6: Interprozess-Kommunikation
Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation 09.05.15 1 Literatur [6-1] http://php.net/manual/de/book.sockets.php [6-2] http://de.wikipedia.org/wiki/socket_(software) [6-3] http://php.net/manual/de/book.network.php
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrErzeuger-Verbraucher-Problem
Erzeuger-Verbraucher-Problem Hier: Puffer der Größe 1, Erzeuger, Verbraucher Zwei Semaphore werden eingesetzt, um zwischen Threads "Ereignisse zu melden" Man kann Semaphore auch verwenden, um Ereignisse
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
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 &
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
MehrSpezifikation von Kommunikationssystemen
1 / 22 Spezifikation von Kommunikationssystemen 6. Basiskonstrukte von SDL Prof. Jochen Seitz Fachgebiet Kommunikationsnetze 3. Mai 2018 2 / 22 Übersicht 1 Darstellung eines Prozesses 2 Zeit in SDL 3 Variablen
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.
MehrRüdiger Brause. Betriebssysteme. Grundlagen und Konzepte. Dritte, überarbeitete Auflage Mit 170 Abbildungen. Springer
Rüdiger Brause Betriebssysteme Grundlagen und Konzepte Dritte, überarbeitete Auflage Mit 170 Abbildungen Springer In hal tsverzei c h n is 1 Übersicht...... 1 1.1 Einleitung: Was ist ein Betriebssystem?...
MehrRechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance
Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance 5. November 2013 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel Repetition
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Ausnahmebehandlung und Nebenläufigkeit 9. Vorlesung am 15. Dezember 2010 Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A
MehrJava Concurrency Utilities
Java Concurrency Utilities Java unterstützt seit Java 1.0 Multithreading Java unterstützt das Monitorkonzept mittels der Schlüsselworte synchronized und volatile sowie den java.lang.object Methoden wait(),
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
MehrMusterlösung zur KLAUSUR
Johann Wolfgang Goethe-Universität Frankfurt am Main FB 15 Institut für Informatik Praktische Informatik PD Dr. R. Brause Musterlösung zur KLAUSUR zur Vorlesung Betriebssysteme I WS 2003/04 Name Vorname
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äufige Programmierung in Java: Threads
Nebenläufige Programmierung in Java: Threads Wahlpflicht: Fortgeschrittene Programmierung in Java Jan Henke HAW Hamburg 10. Juni 2011 J. Henke (HAW) Threads 10. Juni 2011 1 / 18 Gliederung 1 Grundlagen
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
MehrBetriebssysteme BS-H WS 2014/15. Hans-Georg Eßer. Foliensatz H: Zusammenfassung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/01/10
BS-H Betriebssysteme WS 2014/15 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz H: Zusammenfassung v1.0, 2015/01/10 10.01.2015 Betriebssysteme, WS 2014/15, Hans-Georg Eßer Folie H-1 Übersicht: BS
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)
MehrVerbessertes Konzept: Monitore
Verbessertes Konzept: Monitore Ein Nachteil von Semaphoren ist die Notwendigkeit zur expliziten Anforderung P und Freigabe V des kritischen Bereiches durch den Programmierer Vergißt der Entwickler z.b.
MehrParallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
MehrHomogene Multi-Core-Prozessor-Architekturen
Homogene Multi-Core-Prozessor-Architekturen Praktikum Parallele Rechnerarchitekturen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009
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
MehrTafelübung zu BSRvS 1 3. Kreuzung
Tafelübung zu BSRvS 1 3. Kreuzung Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2009/bsrvs1/
MehrAufbau eines modernen Betriebssystems (Windows NT 5.0)
Aufbau eines modernen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 Proseminar KVBK Gliederung 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung 2. Umsetzung
Mehr