Technische Informatik II (TI II) (7) Synchronisation. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

Größe: px
Ab Seite anzeigen:

Download "Technische Informatik II (TI II) (7) Synchronisation. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems"

Transkript

1 1 Technische Informatik II (TI II) (7) Synchronisation Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

2 2 Fragen an die Veranstaltung Warum bedarf es weitergehender Ansätze als die in der vergangenen Vorlesung beschriebenen Hard- und Softwaremethoden zum Schutz kritischer Abschnitte? Wo liegen die Nachteile des Semaphorkonzepts? Welche Formen des Semaphors sind Ihnen bekannt? Welchen Unterschied sehen Sie zwischen dem Konzept des Semaphors und dem des Monitors? Unter welchen Bedingungen kann ein Deadlock auftreten? Erläutern Sie die 4 Kriterien anhand eines alltäglichen Beispiels! Erläutern Sie das Vorgehen bei der Anwendung des Bankier-Algorithmus. Was beschreiben die verwendeten Matrizen? Welche Varianten werden bei der Deadlockerkennung und Deadlockvermeidung angewandt? Was versteht man unter einem sicheren/unsicheren Zustand? Welcher Idee folgt der Ansatz der Ressourcenspur? Wie lässt sich damit ein möglicher Deadlock erkennen?

3 3 Literatur Bücher Operating Systems Internals and Design Principles, Seventh Edition, William Stallings Modern Operating Systems (3rd Edition), Andrew Tanenbaum Webseiten

4 4 Probleme der bisherigen Lösungen aktives Warten vollständig auf Anwendungsebene konzipierter Mechanismus keine Garantie gegen Verhungern Verklemmungen können auftreten P 0, hohe Priorität P 0 unterbricht P 1 P 0 möchte KA betreten, der von P 1 gesperrt ist. P 0 geht in seine aktive Warteschleife und verhindert, dass P 1 jemals den KA verlässt. P 1, niedrige Priorität Prioritätsumkehr P 1 betritt kritischen Abschnitt

5 5 Weitergehende Zielstellungen Einbettung des Konzepts in das Betriebssystem oder in die Programmiersprache. Allgemeiner Mechanismus für die "Kooperation sequentieller Prozesse" Kein aktives Warten mehr. Leicht zu verstehen und zu handhaben Semaphore (1965, Edsger W. Dijkstra, ) Monitore (1974, Sir Charles Antony Richard (C.A.R.) Hoare, 1934)

6 6 Semaphor Tour du telegraphe Chappe Saverne Winkeralphabet "Semaphor griech. von sema (Zeichen) und pherein (tragen) Formsignale Eisenbahn

7 7 Semaphor als Schutzmechanismus Eingeführt durch Edsger Wybe Dijkstra (1965) Gleichermaßen für Reihenfolgensynchronisation und wechselseitigen Ausschluss geeignet Abbildung der verfügbaren Ressourcen auf eine integer Variable Wert kann auf nichtnegative Zahl initialisiert werden zwei atomare Operationen: - P() (hol. prolaag, erniedrige ) (auch wait, down oder acquire) verringert Wert um 1 falls Wert < 0: Thread blockieren - V() (hol. Verhoog, erhöhe ) (auch signal, up oder release) erhöht Wert um 1 falls Wert 0: einen blockierten Thread wecken zuteilen (dispatching) Aktivierung (activation) bereit unterbrechen (preemtion) ausführend Ende V(S) (signal S) blockiert P(S) (wait S)

8 8 Semaphore Initialisierung mit einem Wert 0: S=1 Operation wait (P): verringert den Wert eines Semaphors. S= S-1 Ist S < 0, wird der Prozess blockiert. signal (V): erhöht den Wert des Semaphors. S= S+1 Ist S 0, wird ein durch wait blockierter Prozess freigegeben. signal und wait sind atomare Operationen. Wert eines Semaphors: positiver Wert: Anzahl der zur Verfügung stehenden Betriebsmittel. negativer Wert: Anzahl der wartenden Prozesse.

9 9 sem 1 1 wait(sem) 0 A B C Wechselseitiger Ausschluss mit einem Semaphor 10-1 B wait(sem) -2 B C 10-2 BC C wait(sem) 10-1 signal(sem) Für jedes Betriebsmittel gibt es genau 1 Semaphor! 100 C signal(sem) 101 C signal(sem)

10 10 Semaphoroperationen struct Semaphor { int count; ThreadQueue queue; } Ressourcenvariable Queue der durch den kritischen Abschnitt blockierten Tasks void P(Semaphor &s) { s.count ; if (s.count < 0) { Thread in s.queue einlagern; Thread blockieren; } } void V(Semaphor &s) { s.count++; if (s.count <= 0) { Thread T aus s.queue entnehmen; Thread T als bereit markieren; } } Hinweis: Tanenbaum definiert Semaphore etwas anders (Zähler zählt höchstens bis 0 herunter) Abbildung der blockierten Threads

11 11 Semaphore Anwendung für Mutual Exclusion T 1 T 2 (P, wait, down) (V, signal, up) Wait (S k ) use resource S k signal (S k ) Ressource R k Wait (S k ) use resource S k signal (S k )

12 12 Semaphore Anwendung für Abhängigkeiten T 1 T 2 (V, signal, up) Erzeugen einer Datei signal (S k ) Datei Wait (S k ) Schreiben in Datei

13 13 Semaphor-Varianten Binäre Semaphore: Genau 1 Prozess darf in den KA eintreten. Alle anderen Prozesse werden in eine WS eingeordnet. Semaphor wird mit 1 initialisiert. struct binary_semaphore{ enum (ZERO, ONE) value; queuetype queue; }; void wait(binary_semaphore s){ if (s.value == ONE) s.value = ZERO; else{ diesen Prozess in s.queue ablegen; diesen Prozess blockieren;} } void signal(semaphore s){ if (s.queue.is empty()) s.value = ONE; else{ einen Prozess P aus s.queue entfernen; Prozess P in Liste bereiter Prozesse ablegen; } } Zählende Semaphore: Mehrere Prozesse dürfen in einen KA eintreten. Semaphor wird mit n initialisiert. Wird n überschritten, werden Prozesse in eine WS eingeordnet. struct semaphore{ int count; queuetype queue; }; void wait(semaphore s) { s.count--; if (s.count < 0) { diesen Prozess in s.queue ablegen; diesen Prozess blockieren } } void signal(semaphore s){ s.count++; if (s.count <= 0) { einen Prozess P aus s.queue entfernen; Prozess P in Liste bereiter Prozesse ablegen; } }

14 14 Semaphoren auf der Betriebssystemebene Eng verbunden mit Thread- Implementierung Bei Kernel-Threads: - Implementierung im BS- Kern - Operationen sind Systemaufrufe - atomare Ausführung durch Interrupt-Sperre und Spinlocks gesichert Zum Beispiel im Posix-Standard für Mutex-Operationen hinterlegt: // Initialisation pthread_mutex_init (mutex,attr), pthread_mutex_destroy (mutex) // Locking and Unlocking Mutexes pthread_mutex_lock (mutex), pthread_mutex_trylock (mutex) pthread_mutex_unlock (mutex) // Conditionen int pthread_cond_init (pthread_cont_t *cond, pthread_condaddr_t *attr); int pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex);

15 pthreadssemaphor.c #include<stdio.h> #include<string.h> #include<pthread.h> #include<stdlib.h> #include<unistd.h> pthread_t tid[2]; int counter; int maxcount= ; int value; pthread_mutex_t lock; void* dosomething(void *arg){ unsigned long i = 0; pthread_mutex_lock(&lock); counter += 1; printf("job %d started\n", counter); for(i=0; i<(maxcount);i++){ value++; } printf("job %d finished\n", counter); pthread_mutex_unlock(&lock); return NULL; } int main(void){ int i = 0; int err; } Technische Informatik II if (pthread_mutex_init(&lock, NULL)!= 0){ printf("mutex init failed\n"); return 1; } while(i < 2) { err = pthread_create(&(tid[i]), NULL, &dosomething, NULL); if (err!= 0) printf("%s", strerror(err)); i++; } pthread_join(tid[0], NULL); pthread_join(tid[1], NULL); printf("\n Value of value \n"); printf (intended %d): %d\n", i*maxcount, value); return 0; 15

16 16 Ergebnis gcc -o pthreadssemaphorextern pthreadssemaphor.c lpthread Job 1 started Job 1 finished Job 2 started Job 2 finished Resulting value of value (intended ): Die beiden Threads werden korrekt ausgeführt! Die Ausführungsdauer liegt im Mittel bei 0.55s

17 pthreadssemaphor.c #include<stdio.h> #include<string.h> #include<pthread.h> #include<stdlib.h> #include<unistd.h> Technische Informatik II 17 pthread_t tid[2]; int counter; int maxcount= ; int value; pthread_mutex_t lock; void* dosomething(void *arg){ unsigned long i = 0; counter += 1; printf("job %d started\n", counter); for(i=0; i<(maxcount);i++){ pthread_mutex_lock(&lock); value++; pthread_mutex_unlock(&lock); } printf("job %d finished\n", counter); return NULL; } Probleme: 1. Overhead durch den Moduswechsel in den Kernel, bei jedem Aufruf der Mutex-Funktionen. 2. Counter Variable ist nicht mehr geschützt

18 18 Beurteilung Semaphore Zusammenfassung Allgemeines, leistungsfähiges Konzept zur Koordinierung nebenläufiger Prozesse. Kontrolle über die Anzahl von Prozessen, die eine Ressource nutzen wollen. Spezialfall: wechselseitiger Ausschluss. Kritik: wait und signal sind low level Programmierkonstrukte wait und signal können über das ganze Programm verteilt sein schwer zu kontrollieren Korrektheit schwer nachzuweisen

19 19 Monitore ist ein Modul, in dem die von Prozessen gemeinsam genutzten Daten und ihre Zugriffsprozeduren (oder Methoden) zu einer Einheit zusammengeführt sind. Zugriffsprozeduren mit kritischen Abschnitten auf den Daten werden als Monitor-Operationen speziell gekennzeichnet. Monitor-Operationen werden unter wechselseitigem Ausschluss ausgeführt, ohne dass im Programmcode Synchronisationsanweisungen notiert werden müssen. - bei erfolgreichem Prozeduraufruf sperrt der Monitor - bei Prozedurrückkehr wird der Monitor wieder entsperrt - ein Kompiler setzt die dafür notwendigen Anweisungen ab Vorteil: Keine direkte Adressierung von Schutzmechanismen im Programmcode

20 20 Monitor - Bedingungsvariablen Notwendig für die Reihenfolgensynchronisa tion zwischen Monitorprozeduren Definition eines Regelsatzes zur Entwurfszeit

21 21 Probleme Deadlock Verhungern eines Prozesses P Starvation = Verhungern = Ausführung von P undefiniert verzögert Es besteht Hoffnung P wird nicht zur Ausführung kommen, sofern kein Eingriff erfolgt Es besteht keine Hoffnung

22 22 Die speisenden Philosophen /* globaler semaphor initialisiert mit 1 */ Semaphor binsem = 1; /* Philosoph(i) (i=1...n, N=5 */ philosopher(i) { philosophise(); down(binsem); take_fork(i); take_fork((i + 1) % N); eat(); put_fork(i); put_fork((i + 1) % N); up(binsem); }

23 23 Typische Deadlock Situation im Straßenverkehr Deadlock möglich

24 24 Typische Deadlock Situation im Straßenverkehr Deadlockgefahr

25 25 Deadlockgefahr

26 26 Typische Deadlock Situation im Straßenverkehr Deadlock noch zu verhindern

27 27 Typische Deadlock Situation im Straßenverkehr Deadlock

28 28 Bedingungen für Deadlocks Wechselseitiger Ausschluss Jede Ressource ist entweder von exakt einem Prozess besetzt oder verfügbar. Behalten und Warten (Hold & Wait) Prozesse, die bereits bestimmte Ressourcen belegen, können weitere nachfordern. Keine Unterbrechung Ein Prozess kann eine Ressource nur freiwillig wieder abgeben, es ist kein Entzug von Ressourcen von außen möglich Zyklisches Warten Zwei Prozesse fordern Ressourcen an, die vom jeweils anderen belegt sind. Designentscheidungen dynamisch entstehende Situation

29 29 Typische Deadlock Situation im Straßenverkehr Deadlock

30 30 Modellieren von Deadlocks mittels Graphen A hält die Ressource R B fordert die Ressource S an Deadlock

31 31 Beispiel Processes Ressourcen Deadlock! Deadlock frei!

32 Source: Technische Informatik II 32 Strategien zum Umgang mit Deadlocks 1.Ignorieren (Vogel-Strauß-Ansatz) 2.Erkennen und Behandeln. 3.Dynamisch vermeiden durch vorsichtige Belegung von Ressourcen. 4.Verhindern, indem man erreicht, dass eine der 4 Bedingungen nicht eintreten kann.

33 33 2a Deadlocks erkennen Eine Ressource pro Typ Zyklusidentifikation mittels Baumsuche: 1. Initialisiere eine Liste der bereits erreichten Knoten L 2. Vermerke alle Kanten als unmarkiert 3. Wiederhole bis ein Knoten mehrmals in der Liste vorkommt oder alle Kanten markiert sind: a) Schreibe den aktuellen Knoten in L b) Überprüfe ob vom aktuellen Knoten unmarkierte Kanten wegführen c) Wenn ja, wähle zufällig eine aus und markiere sie. Der folgende Knoten wird zum aktuellen Knoten.

34 34 2a Deadlocks erkennen Mehrere Ressourcen pro Typ M Ressourcen, n Prozesse Ressourcenvektor Verfügbarkeitsvektor Ressource 1 Belegungsmatrix (C) Ressource m Prozess 1 Anforderungsmatrix (R) Prozess n Invariante für die Ressourcenverteilung: n i=1 C ij + A j = E j

35 35 Beispiel - Beziehungen Ressourcenvektor (E) P1 P2 Belegungsmatrix Anforderungsmatrix R1 R2 R3 R1 R2 R P P Verfügbarkeitsvektor (A) Zuteilungsvektor n i=1 C ij + A j = E j i: Prozess j: Ressource SC i,1 + A 1 = 3 +1 = E 1 = 4 SC i,2 + A 2 = 6 +0 = E 2 = 6 SC i,3 + A 3 = 2 +0 = E 3 = 2

36 36 2a Deadlock-Erkennungsmechanismus Sei die Relation auf der Menge der Vektoren definiert als: A B genau dann wenn A i B i für alle i mit 1 i n Der Deadlock-Erkennungsalgorithmus läuft folgendermaßen ab: 1. Suche einen unmarkierten Prozess P i, für den die i-te Zeile von R kleiner oder gleich A ist. 2. Wenn ein solcher Prozess existiert, addiere die i-te Zeile von C zu A, markiere den Prozess und gehe zu Schritt Andernfalls beende den Algorithmus. Wenn der Algorithmus beendet ist, sind alle nicht markierten Prozesse an einem Deadlock beteiligt.

37 37 Deadlock Situationen P1 P2 P3 P4 Belegungsmatrix (C) R1 R2 R Anforderungsmatrix (R) R1 R2 R3 P P P P Ressourcenvektor (E) Verfügbarkeitsvektor (A) Deadlock!!

38 38 2b Deadlocks behandeln Ansatz Idee Umsetzbarkeit Unterbrechung eines Prozesses und zeitweiser Entzug von Ressourcen Zurücksetzen und Wiederholen (Rollback) Abbruch eines oder mehrerer Prozesse Manuelles Vorgehen Einführung von Checkpoints, die als Wiedereinsprungstellen dienen Schwierig Overhead notwendig Auswahl eines geeigneten Prozesses schwierig

39 39 3. Deadlockvermeidung Sichere / unsichere Zustände Erkennung sicherer und unsicherer Zustände Def.: Ein sicherer Zustand ist ein Zustand, von dem aus mindestens eine Ausführungsreihenfolge existiert, die nicht zu einem Deadlock führt, d.h. alle Prozesse können bis zum Abschluss ablaufen. Anmerkung: ein unsicherer Zustand muss nicht zwangsläufig in eine Verklemmung führen es müssen ja nicht alle Prozesse (sofort) ihre Maximalforderungen stellen!

40 40 3. Deadlockvermeidung - Ressourcenspur Grafische Darstellung der Belegungssituation einer Ressource über der Zeit. Verbotene Bereiche illustrieren einen mehrfachen Zugriff auf die Ressource Ziel: Gültigen Pfad zwischen Koordinaten Ursprung und rechts oben finden

41 41 3. Deadlockvermeidung Bankieralgorithmus Durch angepassten Matrix-Algorithmus zur Deadlock-Erkennung Der aktuelle Zustand des Systems ist durch E, A und C beschrieben vorhandene, freie und belegte Ressourcen, R beschreibt nun die maximalen zukünftigen Forderungen Der Zustand ist genau dann sicher, wenn der Algorithmus für diese Werte von E, A, C und R keine Verklemmung erkennt. Bankier-Algorithmus (Dijkstra 1965): 1. Suche eine Zeile in R, die kleiner oder gleich A ist. Wenn es keine solche Zeile gibt, kann kein Prozess beendet werden --> unweigerlich Deadlock. 2. Prozess kann alle notwendigen Ressourcen reservieren und terminieren. Markiere den Prozess als beendet und addiere Ressourcen zu A. 3. Wiederholung von 1 und 2 bis alle Prozesse markiert sind oder Deadlocksituation erkannt wird.

42 42 3. Deadlockvermeidung Bankieralgorithmus BS teilt Ressource nur dann zu, wenn dadurch auf keinen Fall ein Deadlock entstehen kann dazu: BS prüft bei jeder Ressourcenanforderung, ob der Zustand nach der Anforderung noch sicher ist falls ja, wird die Ressource zugeteilt falls nein, wird der anfordernde Prozess blockiert sehr vorsichtige (restriktive) Ressourcenzuteilung! Voraussetzung: Der Bankieralgorithmus muss dazu die (maximalen) zukünftigen Forderungen aller Prozesse kennen! in der Praxis i.a. nicht erfüllbar Verfahren nur für spezielle Anwendungsfälle tauglich

43 43 4. Deadlock Verhinderung Problem Wechselseitiger Ausschluss Hold & Wait Ununterbrechbarkeit Zyklisches Warten Versuch der Problemlösung Keine generelle Lösung! Ressourcen alle auf einmal anfordern Ressourcen wegnehmen Ressourcen nummerieren

44 44 Zusammenfassung: Nebenläufigkeit und Synchronisation Interprozesskommunikation (IPC) erfordert Datentransfer und Synchronisation. Wechselseitiger Ausschluss und kritischer Abschnitt. Dekker's Algorithmus als Softwarelösungen und Unterstützung durch unteilbare (Maschinen-) Operationen. Das Semaphorkonzept von Djikstra als leistungsfähiger Synchronisationsmechanismus. Nebenläufigkeitsprobleme Deadlock (Verklemmung) und Starvation (Verhungern). Auslöser: Wechselseitiger Ausschluss, Besitzen und Warten, kein Ressourcenentzug, zyklisches Warten. Erkennung und Vermeidung von Deadlocks. Bankiersalgorithmus und sichere Zustände.

45 45 Bis zur nächsten Woche

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404 Betriebssysteme I WS 2013/2014 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 19. Dezember 2013 Betriebssysteme / verteilte Systeme

Mehr

Technische Informatik II. SoSe 2013. Jörg Kaiser IVS EOS

Technische Informatik II. SoSe 2013. Jörg Kaiser IVS EOS Synchronisation SoSe 2013 Jörg Kaiser IVS EOS Otto-von-Guericke-Universität Magdeburg 1 1 Prozessinteraktion: Kommunikation, Koordination, Kooperation Problemformulierung Das Problem: Nebenläufigkeit +

Mehr

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory

Mehr

Technische Informatik II (TI II) (6) Synchronisation. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

Technische Informatik II (TI II) (6) Synchronisation. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems 1062015 1 Jun-Prof Dr Sebastian Zug Technische Informatik II (TI II) (6) Synchronisation Sebastian Zug Arbeitsgruppe: Embedded Smart Systems 1062015 2 Jun-Prof Dr Sebastian Zug Fragen an die Veranstaltung

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

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

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

Betriebssysteme - Deadlocks

Betriebssysteme - Deadlocks Betriebssysteme - Deadlocks alois.schuette@h-da.de Version: (8c45d65) ARSnova 19226584 Alois Schütte 23. März 2016 1 / 41 Inhaltsverzeichnis Dieser Teil erörtert das Problem von Deadlocks (Verklemmungen):

Mehr

Tafelübung zu BSRvS1. 3. Philosophen. Fortsetzung Grundlagen C-Programmierung

Tafelübung zu BSRvS1. 3. Philosophen.  Fortsetzung Grundlagen C-Programmierung Tafelübung zu BSRvS1 3. Philosophen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/

Mehr

U9-3 Vergleich von Thread-Konzepten. U9-2 Motivation von Threads. U9-3 Vergleich von Thread-Konzepten (2) U9-1 Überblick

U9-3 Vergleich von Thread-Konzepten. U9-2 Motivation von Threads. U9-3 Vergleich von Thread-Konzepten (2) U9-1 Überblick U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 User-Level Threads: Federgewichtige Prozesse Realisierung von Threads auf Anwendungsebene innerhalb eines Prozesses

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

Inhaltsverzeichnis. 4.1 Systemmodell und notwendige Bedingungen. 4.2 Gegenmaßnahmen

Inhaltsverzeichnis. 4.1 Systemmodell und notwendige Bedingungen. 4.2 Gegenmaßnahmen Inhaltsverzeichnis 4.1 Systemmodell und notwendige Bedingungen Was sind Deadlocks? Darstellungsarten von Prozessabhängigkeiten Notwendige Bedingungen für Deadlocks 4.2 Gegenmaßnahmen Deadlock-Prevention

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

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

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

Betriebssysteme BS-H WS 2014/15. Hans-Georg Eßer. Foliensatz H: Zusammenfassung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/01/10

Betriebssysteme 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

Mehr

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret

leave: 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)

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

Aufgaben zum Thema Verklemmungen

Aufgaben zum Thema Verklemmungen Aufgaben zum Thema Verklemmungen V1. Untersuchen Sie das folgende Prozeßsystem auf das Auftreten von Deadlocks (s1, s2, s3: binäre Semaphore, mit true initialisiert): 95/5 Prozeß 1 Prozeß 2 Prozeß 3 P(s1);

Mehr

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

Mehr

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

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

Mehr

Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren (P)

Speicherbasierte 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

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

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 28 Kritische Bereiche bei Threads Deadlocks Conditions/Semaphore 2 / 28 Beispiel aus der letzten Vorlesung

Mehr

Technische Informatik II

Technische Informatik II Institut für Technische Informatik und Kommunikationsnetze Technische Informatik II Übung 1: Prozesse und Threads Aufgabe 1: Prozesse und Threads a) Wie verhält sich eine Applikation die aus mehreren Prozessen

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

#define N 5 // Anzahl der Philosophen. while (TRUE) { // Der Philosoph denkt

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

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 12.12.2012 1 Nachtrag zu letzter Vorlesung Hauptspeicher reicht nur für begrenzte Anzahl von

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

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

Prozessor (CPU, Central Processing Unit)

Prozessor (CPU, Central Processing Unit) G Verklemmungen G Verklemmungen Einordnung: Prozessor (CPU, Central Processing Unit) Hauptspeicher (Memory) Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices) externe Schnittstellen (Interfaces) Hintergrundspeicher

Mehr

Verbessertes Konzept: Monitore

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

Mehr

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren Universität Stuttgart Prof. Dr.-Ing. Dr. h. c. P. Göhner Aufgabe 5.1: Übung 5: Semaphoren Semaphor-Operationen In Bild 5.1.1 ist die Anordnung von Semaphor-Operationen am Anfang und am e der asks A,B,C

Mehr

Prozesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads

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

Mehr

Kapitel 5 Verklemmungsprobleme. Verklemmungsprobleme

Kapitel 5 Verklemmungsprobleme. Verklemmungsprobleme Kapitel 5 Verklemmungsprobleme 221 Verklemmungsprobleme Betriebsmittel A 1 Betriebsmittel E 4 Betriebsmittel B Betriebsmittel D 5 2 Betriebsmittel C 3 Beispiel: A P(MBand) P(Drucker) B : : V(Drucker) V(MBand)

Mehr

Proseminar Nichtsequentielle Programmiersprachen WS 2011/2012 Monitore

Proseminar Nichtsequentielle Programmiersprachen WS 2011/2012 Monitore Fachbereich Mathematik und Informatik Institut für Informatik Proseminar Nichtsequentielle Programmiersprachen WS 2011/2012 Monitore Sascha Kretzschmann 2. November 2011 Inhaltsverzeichnis 1 Einleitung

Mehr

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede

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

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009 Fakultät für Mathematik und Informatik Lehrgebiet Kooperative Systeme Prof. Dr. Jörg M. Haake FernUniversität in Hagen 58084 Hagen Vorname Name Straße Hausnr. Informatikzentrum Universitätsstr. 1 58084

Mehr

Monitore. Klicken bearbeiten

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

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Musterlösung Prüfung WS 01/02

Musterlösung Prüfung WS 01/02 Musterlösung Prüfung WS 01/02 Fach: I3 Software-Technik (SEE, GRS, BTS) Teilprüfung: Betriebssysteme Tag: 29.01.2002 10:45 14.45 Raum: 1006 Bearbeitungszeit: 4 Stunden Name:... Matr.Nr.:... Punkte:...

Mehr

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches U6 6. Übung U6 6. Übung U6-1 Organisatories U6-1 Organisatories Organisatorisches Zusätzliche Tafelübung zur S1-Klaurvorbereitung Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte am

Mehr

RTEMS- Echtzeitbetriebssystem

RTEMS- Echtzeitbetriebssystem RTEMS- Echtzeitbetriebssystem Name: Hussein Hammoud Matrikel- Nr.: 230768 Studiengang: Technische Informatik Fach: Projekt Eingebettete Kommunikation Technische Universität Berlin Sommersemester 2006 RTEMS-

Mehr

Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme

Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme Vorname: Nachname: Matrikelnummer: Klausur Betriebssysteme 12.02.2013 Hinweise: 1. Beschriften Sie als erstes diese Seite mit Ihrem Namen, Vornamen und Ihrer Matrikelnummer (deutlich in Druckbuchstaben).

Mehr

Verteilte Systeme. 2. Die Client-Server-Beziehung und daraus resultierende Techniken. 2.2 Nebenläufigkeitstechniken in Java

Verteilte Systeme. 2. Die Client-Server-Beziehung und daraus resultierende Techniken. 2.2 Nebenläufigkeitstechniken in Java VS22 Slide 1 Verteilte Systeme 2. Die Client-Server-Beziehung und daraus resultierende Techniken 2.2 Nebenläufigkeitstechniken in Java Sebastian Iwanowski FH Wedel VS22 Slide 2 Was ist Nebenläufigkeit?

Mehr

Betriebssysteme (BTS)

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

Mehr

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend U7 6. Übung U7 6. Übung U7-1 Motivation von Threads U7-1 Motivation von Threads Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte pthread-ai Koordinierung UNIX-rozesskonzept: eine Ausführungsumgebung

Mehr

Nebenläufige Programmierung: Praxis und Semantik. Zugriff auf mehrere Ressourcen

Nebenläufige Programmierung: Praxis und Semantik. Zugriff auf mehrere Ressourcen Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Zugriff auf mehrere Ressourcen WS 2009/10 Deadlocks bei mehreren Ressourcen Transactional Memory Übersicht 1

Mehr

Mutual Exclusion und Synchronisation. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at

Mutual Exclusion und Synchronisation. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Mutual Exclusion und Synchronisation Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at 1 Gemeinsame Ressourcen BS und Prozesse, parallel laufende Prozesse verwenden die selben

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

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus Zur Erinnerung: Threads Programmierung (fortgeschrittene Konzepte) Threads, Monitore, Semaphore und speisende en Wolf-Ulrich Raffel (uli@wuraffel.de) Möglichkeiten, Threads zu definieren Bildung einer

Mehr

Threads and Scheduling

Threads and Scheduling Vorlesung Betriebssysteme WS 2010, fbi.h-da.de Threads and Scheduling Jürgen Saala 1. Threads 2. Scheduling 2 1. Threads 3 Prozesse mit je 1 Adressraum 1 Ausführungsfaden d.h. Unabhängiger Adressraum mit

Mehr

Software ubiquitärer Systeme

Software ubiquitärer Systeme Software ubiquitärer Systeme 3. Übung Constantin Timm Arbeitsgruppe Entwurfsautomatisierung für Eingebettete Systeme Lehrstuhl für Informatik 12 TU Dortmund constantin.timm@cs.tu-dortmund.de http://ls12-www.cs.tu-dortmund.de/staff/timm/

Mehr

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016 Verteilte Systeme SS 2016 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 31. Mai 2016 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/14) i

Mehr

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Prof. Dr. Th. Letschert CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Vorlesung 7 Th Letschert FH Gießen-Friedberg Ressourcen Verwaltung passive Ressourcen aktive Ressourcen

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

9 Verteilte Verklemmungserkennung

9 Verteilte Verklemmungserkennung 9 Verteilte Verklemmungserkennung 9.1 Grundlagen Für die Existenz einer Verklemmung notwendige Bedingungen Exklusive Betriebsmittelbelegung Betriebsmittel können nachgefordert werden Betriebsmittel können

Mehr

Technische Informa/k II. Prof. Dr. Bernd Freisleben Sommersemester 2013 Kapitel 5: BetriebsmiCelverwaltung

Technische Informa/k II. Prof. Dr. Bernd Freisleben Sommersemester 2013 Kapitel 5: BetriebsmiCelverwaltung Technische Informa/k II Prof. Dr. Bernd Freisleben Sommersemester 2013 Kapitel 5: BetriebsmiCelverwaltung Inhalt Folie 05-2 BetriebsmiCelverwaltung Verklemmungen (Deadlocks) BetriebsmiCelverwaltung (BMV)

Mehr

KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation

KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation SS 2003 KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation 1 Sequentielle Prozesse Zu jedem Zeitpunkt t wird genau eine einzige Instruktion ausgeführt Hängt ab vom Abstraktionsgrad

Mehr

Parallele Prozesse. Prozeß wartet

Parallele Prozesse. Prozeß wartet Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:

Mehr

Gliederung. Monitor (eine auf ein Modul bezogene) Klasse

Gliederung. Monitor (eine auf ein Modul bezogene) Klasse Systemprogrammierung Prozesssynchronisation: Hochsprachenebene Wolfgang Schröder-Preikschat Lehrstuhl Informatik 4 04. November 2014 c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP2 # WS 2014/15

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

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

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

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von

Mehr

Anfragen werden als Ganzes erfüllt und erst nach Ablauf der Zeit der

Anfragen werden als Ganzes erfüllt und erst nach Ablauf der Zeit der Universität Paderborn Fachgebiet Rechnernetze Sommersemester 011 Konzepte und Methoden der Systemsoftware Präsenzübung 08 vom 30.05.011 bis 03.0.011 Aufgabe 1: Auswahlstrategien Sie haben in der Vorlesung

Mehr

Beispiel für überladene Methode

Beispiel für überladene Methode Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Wintersemester 07/08 Übungsblatt 5 08.01.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1:

Mehr

User-Level-Threads (Koroutinen) Realisierung von Threads auf Benutzerebene innerhalb eines Prozesses

User-Level-Threads (Koroutinen) Realisierung von Threads auf Benutzerebene innerhalb eines Prozesses 52 Überblick über die 12. Übung Überblick über die 12. Übung 54 Vergleich von Prozeß und Thread-Konzepten mehrere UNIX-Prozesse mit gemeinsamen Speicherbereichen POSIX-Threads Bewertung: + echte Parallelität

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 6. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Vorstellung

Mehr

3.2 Prozessumschaltung

3.2 Prozessumschaltung 3.2 Prozessumschaltung (dispatching) deaktiviert einen Prozess und aktiviert einen anderen. Wann? aktiver Prozess wird vom Prozessor verdrängt zugunsten eines bereiten Prozesses aktiver Prozess blockiert,

Mehr

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten

Mehr

Wiederholung: Semaphore (nicht gähnen!) Vorlesung Betriebssysteme II. Implementierung (Pseudocode) der P()-Operation.

Wiederholung: Semaphore (nicht gähnen!) Vorlesung Betriebssysteme II. Implementierung (Pseudocode) der P()-Operation. Wiederholung: Semaphore (nicht gähnen!) Vorlesung Betriebssysteme II Thema 2: Synchronisation Robert Baumgartl 17. 03. 2014 Abstrakter Datentyp (Zähler und Warteschlange) Operationen: P(): probieren und

Mehr

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Systemprogrammierung Unix/Linux SS 2013 Hans-Georg Eßer, Ohm-Hochschule Nürnberg Übung 13 3/

Systemprogrammierung Unix/Linux SS 2013 Hans-Georg Eßer, Ohm-Hochschule Nürnberg Übung 13  3/ Systemprogrammierung Unix/Linux SS 2013 Hans-Georg Eßer, Ohm-Hochschule Nürnberg Übung 13 http://ohm.hgesser.de/sp-ss201 3/ 25.06.2013 Bitte bearbeiten Sie nur eine der beiden Aufgaben 23 2 4. Welche Aufgabe

Mehr

Operating System Kernels

Operating System Kernels Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking

Mehr

Lösungsvorschlag zur 11. Übung

Lösungsvorschlag zur 11. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 ösungsvorschlag zur 11. Übung 1 Präsenzübungen 1.1 Schnelltest a) Was gehört zu den Aufgaben eines

Mehr

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 182.711 Prüfung Betriebssysteme 8. November 2013 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation

Mehr

Betriebssysteme Kapitel E : Prozesse

Betriebssysteme Kapitel E : Prozesse Betriebssysteme Kapitel E : Prozesse 1 Inhalt Prozesse Zustand eines Prozesses» Kontext» Kontextswitch Prozessbeschreibungsblock PCB Zustandsübergänge» Zustandsdiagramm 2 Hinweis Ein Programm(code) kann

Mehr

Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken.

Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken. Betriebssysteme: Auswahl alter Klausuraufgaben Seite 1 Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken. a) sort < MeineDatei.txt > MeineDateiSort.txt b) find / -type d \( -name man

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

6. Tutorium zu Softwaretechnik I

6. Tutorium zu Softwaretechnik I 6. Tutorium zu Softwaretechnik I Parallelität und Testen Michael Hoff 01.07.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

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

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance

Rechnerarchitektur 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

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges

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

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

13. Übung mit Musterlösung

13. Übung mit Musterlösung 13. Übung mit Musterlösung 1 Lösung 1 Teil 1.Multiple Choice) Bewertung: Ein Punkt für richtige Antwort, für jede falsche Antwort ein Punktabzug. a) Für die Exponentialverteilung ist die Zeit bis zum nächsten

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Erzeuger/Verbraucher-Problem: gemeinsamer Puffer Programm für Erzeuger. Kapitel IV

Erzeuger/Verbraucher-Problem: gemeinsamer Puffer Programm für Erzeuger. Kapitel IV Kapitel IV Prozesssynchronisation Erzeuger/Verbraucher-Problem: gemeinsamer Puffer Programm für Erzeuger Repeat produziere Datum in nextp while counter == n; buffer[in]=nextp; in = (in+1) % n; counter++;

Mehr

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

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

Mehr

Kapitel 5. Monitore und Synchronisationsbedingungen

Kapitel 5. Monitore und Synchronisationsbedingungen Seite Kapitel 5 Monitore und Synchronisationsbedingungen Prof. Dr. Rolf Hennicker 5.6.24 5. Synchronisationsbedingungen Seite 2 Bisherige Verwendung von Monitoren: Verkapselung von Daten, Zugriffoperationen

Mehr

Ein- und Ausgabe von Paketen für Netzwerkverbindungen 208

Ein- und Ausgabe von Paketen für Netzwerkverbindungen 208 Ein- und Ausgabe von Paketen für Netzwerkverbindungen 208 Zwischen Dienste-Anbietern und ihren Klienten auf dem Netzwerk besteht häufig ein ähnliches Verhältnis wie zwischen einer Shell und dem zugehörigen

Mehr

Parallele Programmabläufe: R S

Parallele Programmabläufe: R S REFERAT Parallele Programmabläufe: R S.242-246 1.Einführung 2.Synchronisation 2.1.Monitor-Konzept 2.2.Rendez-vous-Konzept 2.3.Bolt-Synchronisation 3.Behandlung Ausnahmesituationen 1.Einführung: Im Bereich

Mehr