Übung zu Betriebssysteme

Größe: px
Ab Seite anzeigen:

Download "Übung zu Betriebssysteme"

Transkript

1 Übung zu Betriebssysteme Interruptsynchronisation 22. & 24. November 2017 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte Systeme und Betriebssysteme

2 Motivation Interrupts verändern (potenziell) den Zustand des Systems

3 Motivation Interrupts verändern (potenziell) den Zustand des Systems main(){ } consume(); IRQ_handler(){ } produce();

4 Keine Synchronisation main() E 0 (Anwendung) (IRQ)

5 Keine Synchronisation main() consume() E 0 (Anwendung) (IRQ)

6 Keine Synchronisation main() consume() E 0 (Anwendung) (IRQ)

7 Keine Synchronisation main() consume() E 0 (Anwendung) produce() (IRQ)

8 Keine Synchronisation main() consume() E 0 (Anwendung) produce() (IRQ)

9 Keine Synchronisation Was ist mit int buf[size]; int pos = 0; void produce(int data) { if (pos < SIZE) buf[pos++] = data; } int consume() { return pos > 0? buf[--pos] : -1; }?

10 Keine Synchronisation Was ist mit int buf[size]; int pos = 0; void produce(int data) { if (pos < SIZE) buf[pos++] = data; } int consume() { return pos > 0? buf[--pos] : -1; }? Hier ist ein Lost Update möglich!

11 bewährtes Hausmittel: Mutex void produce(int data) { mutex.lock(); if (pos < SIZE) buf[pos++] = data; mutex.unlock(); } int consume() { mutex.lock(); int r = pos > 0? buf[--pos] : -1; mutex.unlock(); return r; }

12 bewährtes Hausmittel: Mutex Verklemmt sich!

13 weiche Synchronisation void produce(int data) { if (pos < SIZE) buf[pos++] = data; } int consume() { int x, r = -1; if (pos > 0) do { x = pos; r = buf[x]; } while(!cas(&pos, x, x-1)); return r; }

14 weiche Synchronisation Optimistischer Ansatz + keine Interruptsperre + kann sehr effizient sein kein generischer Ansatz kann sehr kompliziert werden fehleranfällig

15 weiche Synchronisation Optimistischer Ansatz + keine Interruptsperre + kann sehr effizient sein kein generischer Ansatz kann sehr kompliziert werden fehleranfällig Betriebssystemarchitekt sollte Treiber- und Anwendungsentwicklern entgegenkommen für Erfolg des Betriebsystems entscheidend

16 harte Synchronisation main() E 0 (Anwendung) (IRQ)

17 harte Synchronisation main() cli E 0 (Anwendung) (IRQ)

18 harte Synchronisation main() cli E 0 (Anwendung) consume() (IRQ)

19 harte Synchronisation main() cli E 0 (Anwendung) consume() (IRQ)

20 harte Synchronisation main() cli sti E 0 (Anwendung) consume() (IRQ)

21 harte Synchronisation main() cli sti E 0 (Anwendung) consume() produce() (IRQ)

22 harte Synchronisation main() cli sti E 0 (Anwendung) consume() produce() (IRQ)

23 harte Synchronisation main() cli sti E 0 (Anwendung) consume() produce() (IRQ)

24 harte Synchronisation ignoriert main() cli sti E 0 (Anwendung) consume() produce() (IRQ)

25 harte Synchronisation ignoriert* main() cli sti E 0 (Anwendung) consume() produce() (IRQ) * vereinfachte Darstellung und nicht ganz korrekt: genaugenommen kann der LAPIC maximal zwei Unterbrechungen des selben Vektors speichern.

26 harte Synchronisation Pessimistischer Ansatz + einfach + funktioniert immer Verzögerung von IRQs hohe Latenz, ggf. Verlust von Interrupts blockiert pauschal alle IRQs

27 Prolog/Epilog-Modell

28 Idee Aufspalten der IRQ-Behandlung in Prolog erledigt das Nötigste auf Epilog läuft auf neuer Ebene 1 2 und übernimmt Synchronisation / IRQs wieder frei

29 Idee Aufspalten der IRQ-Behandlung in Operationen Prolog erledigt das Nötigste auf Epilog läuft auf neuer Ebene 1 2 und übernimmt Synchronisation / IRQs wieder frei höhere Ebene betreten: cli höhere Ebene verlassen: sti niedrigere Ebene unterbrechen: IRQ-Leitung bei harter Synchronisation

30 Idee Aufspalten der IRQ-Behandlung in Operationen Prolog erledigt das Nötigste auf Epilog läuft auf neuer Ebene 1 2 und übernimmt Synchronisation / IRQs wieder frei höhere Ebene betreten: cli, enter höhere Ebene verlassen: sti, leave niedrigere Ebene unterbrechen: IRQ-Leitung, relay bei harter Synchronisation und Prolog/Epilog-Modell

31 Prolog/Epilog-Modell main() E 0 (Anwendung) 2 (Epilog) (IRQ/Prolog)

32 Prolog/Epilog-Modell main() enter E 0 (Anwendung) 2 (Epilog) (IRQ/Prolog)

33 Prolog/Epilog-Modell main() enter E 0 (Anwendung) 2 (Epilog) (IRQ/Prolog)

34 Prolog/Epilog-Modell main() enter E 0 (Anwendung) 2 (Epilog) leave (IRQ/Prolog)

35 Prolog/Epilog-Modell main() enter E 0 (Anwendung) 2 (Epilog) leave (IRQ/Prolog)

36 Prolog/Epilog-Modell main() enter E 0 (Anwendung) 2 (Epilog) leave (IRQ/Prolog)

37 Prolog/Epilog-Modell main() enter E 0 (Anwendung) 2 (Epilog) leave prolog (IRQ/Prolog)

38 Prolog/Epilog-Modell main() enter E 0 (Anwendung) epilog 2 (Epilog) leave leave prolog (IRQ/Prolog) relay

39 Prolog/Epilog-Modell main() enter E 0 (Anwendung) epilog 2 (Epilog) leave leave prolog (IRQ/Prolog) relay

40 Prolog/Epilog-Modell Kombinierter Ansatz + einfaches Programmiermodell (für Anwendungsentwickler) + geringer Interruptverlust Ebene 1 2 ist zusätzlicher Overhead etwas mehr Arbeit für den Betriebssystemarchitekten

41 Prolog/Epilog-Modell Kombinierter Ansatz + einfaches Programmiermodell (für Anwendungsentwickler) + geringer Interruptverlust Ebene 1 2 ist zusätzlicher Overhead etwas mehr Arbeit für den Betriebssystemarchitekten guter Kompromiss

42 Umsetzung main(){ enter(); consume(); leave(); } epilog(){ } produce();

43 Umsetzung main() E 0 (Anwendung) 2 (Epilog) (IRQ/Prolog)

44 Umsetzung main() enter E 0 (Anwendung) 2 (Epilog) (IRQ/Prolog)

45 Umsetzung main() enter E 0 (Anwendung) consume() 2 (Epilog) (IRQ/Prolog)

46 Umsetzung main() enter E 0 (Anwendung) consume() 2 (Epilog) (IRQ/Prolog)

47 Umsetzung main() enter E 0 (Anwendung) consume() 2 (Epilog) prolog (IRQ/Prolog) relay

48 Umsetzung main() enter E 0 (Anwendung) consume() 2 (Epilog) enqueue prolog (IRQ/Prolog) relay

49 Umsetzung main() enter E 0 (Anwendung) consume() 2 (Epilog) leave enqueue prolog (IRQ/Prolog) relay

50 Umsetzung main() enter E 0 (Anwendung) produce() 2 (Epilog) consume() leave leave enqueue prolog (IRQ/Prolog) relay

51 Umsetzung main() enter E 0 (Anwendung) produce() 2 (Epilog) consume() leave leave enqueue prolog (IRQ/Prolog) relay

52 Aufgabe

53 Wechsel von harter Synchronisation zu Prolog/Epilog-Modell

54 Wechsel von harter Synchronisation zu Prolog/Epilog-Modell Was wird gebraucht?

55 Wechsel von harter Synchronisation zu Prolog/Epilog-Modell Was wird gebraucht? List/Queue zum Einreihen der Epiloge Guard mit enter(), leave() und relay() für Prioritätsebenen

56 Wechsel von harter Synchronisation zu Prolog/Epilog-Modell Was wird gebraucht? List/Queue zum Einreihen der Epiloge Guard mit enter(), leave() und relay() für Prioritätsebenen Was muss angepasst werden?

57 Wechsel von harter Synchronisation zu Prolog/Epilog-Modell Was wird gebraucht? List/Queue zum Einreihen der Epiloge Guard mit enter(), leave() und relay() für Prioritätsebenen Was muss angepasst werden? Keyboard Application Guardian

58 Wechsel von harter Synchronisation zu Prolog/Epilog-Modell Was wird gebraucht? List/Queue zum Einreihen der Epiloge Guard mit enter(), leave() und relay() für Prioritätsebenen Was muss angepasst werden? Keyboard Application Guardian alles was hart synchronisiert

59 Aufgabenstellung Warteschlange gegeben

60 Aufgabenstellung Warteschlange gegeben, Implementierung ist allerdings nicht unterbrechungstransparent benötigt Schutz vor Unterbrechungen im Guard oder durch Modifikation der Queue selbst

61 Aufgabenstellung Warteschlange gegeben, Implementierung ist allerdings nicht unterbrechungstransparent benötigt Schutz vor Unterbrechungen im Guard oder durch Modifikation der Queue selbst Gate muss geändert werden (trigger() zu prolog() und epilog())

62 Aufgabenstellung Warteschlange gegeben, Implementierung ist allerdings nicht unterbrechungstransparent benötigt Schutz vor Unterbrechungen im Guard oder durch Modifikation der Queue selbst Gate muss geändert werden (trigger() zu prolog() und epilog()) jede Gate-Instanz darf nur einmal in der Epilogwarteschlange vorkommen

63 MPStuBS

64 Prolog/Epilog-Modell auf Mehrkernprozessoren jeder Kern hat eine eigene Epilogwarteschlange (damit die Epiloge auf dem selben Kern wie deren zugehörige Prologe ausgeführt werden)

65 Prolog/Epilog-Modell auf Mehrkernprozessoren jeder Kern hat eine eigene Epilogwarteschlange (damit die Epiloge auf dem selben Kern wie deren zugehörige Prologe ausgeführt werden) Zu jedem Zeitpunkt darf maximal ein Kern Epiloge ausführen

66 Prolog/Epilog-Modell auf Mehrkernprozessoren jeder Kern hat eine eigene Epilogwarteschlange (damit die Epiloge auf dem selben Kern wie deren zugehörige Prologe ausgeführt werden) Zu jedem Zeitpunkt darf maximal ein Kern Epiloge ausführen E E 2 0 E E E 2 1 E 3 1

67 Prolog/Epilog-Modell auf Mehrkernprozessoren jeder Kern hat eine eigene Epilogwarteschlange (damit die Epiloge auf dem selben Kern wie deren zugehörige Prologe ausgeführt werden) Zu jedem Zeitpunkt darf maximal ein Kern Epiloge ausführen E E 2 0 E E E 2 1 E 3 1 Verwendung eines big kernel lock (BKL)

68 Prolog/Epilog-Modell auf Mehrkernprozessoren jeder Kern hat eine eigene Epilogwarteschlange (damit die Epiloge auf dem selben Kern wie deren zugehörige Prologe ausgeführt werden) Zu jedem Zeitpunkt darf maximal ein Kern Epiloge ausführen E E 2 0 E E E 2 1 E 3 1 Verwendung eines big kernel lock (BKL) korrekte Sperrreihenfolge ist extrem wichtig!

69 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 2

70 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 2

71 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 2

72 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 2

73 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 2

74 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 2

75 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 2

76 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 CPU 0 2

77 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 CPU 0 2

78 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 CPU 0 2

79 Beispiel für Mehrkernprozessoren CPU 1 CPU 0 E 0 CPU 0 2

80 Beispiel für Mehrkernprozessoren CPU 0 CPU 1 CPU 1 CPU 0 E 0 2

81 Beispiel für Mehrkernprozessoren CPU 0 CPU 1 CPU 1 CPU 0 E 0 2

82 Beispiel für Mehrkernprozessoren CPU 0 CPU 1 CPU 1 CPU 0 E 0 2

83 Beispiel für Mehrkernprozessoren CPU 0 CPU 1 CPU 1 CPU 0 E 0 2

84 Beispiel für Mehrkernprozessoren CPU 0 CPU 1 CPU 1 CPU 0 E 0 2

85 Beispiel für Mehrkernprozessoren CPU 0 CPU 1 CPU 1 CPU 0 E 0 2

86 Beispiel für Mehrkernprozessoren CPU 0 CPU 1 CPU 1 CPU 0 E 0 2

87 Beispiel für Mehrkernprozessoren CPU 0 CPU 1 CPU 1 CPU 0 E 0 2

88 Fragen? Nächste Woche (29. November & 1. Dezember) Abgabe von Aufgabe 2 im Huber-CIP

Betriebssystembau (BSB) Unterbrechungen - Synchronisation -

Betriebssystembau (BSB) Unterbrechungen - Synchronisation - Betriebssystembau (BSB) Unterbrechungen - Synchronisation - Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os

Mehr

Betriebssystembau (BSB) Unterbrechungen - Synchronisation -

Betriebssystembau (BSB) Unterbrechungen - Synchronisation - Betriebssystembau (BSB) Unterbrechungen - Synchronisation - Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) Unterbrechungen - Synchronisation 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,

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) Unterbrechungen Synchronisation https://ess.cs.tu-dortmund.de/de/teaching/ws2017/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de https://ess.cs.tu-dortmund.de/~os AG Eingebettete

Mehr

Betriebssysteme (BS) Unterbrechungen - Synchronisation - Überblick: Vorlesungen. Agenda. Agenda. Anwendung(en) Hardware. Motivation / Problem

Betriebssysteme (BS) Unterbrechungen - Synchronisation - Überblick: Vorlesungen. Agenda. Agenda. Anwendung(en) Hardware. Motivation / Problem Betriebssysteme (BS) Überblick: Vorlesungen Daniel Lohmann Unterbrechungen - Synchronisation - Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Gerätezugriff (Treiber) Anwendung(en) Kontrollflussabstraktion

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) Betriebssysteme (BS) VL 5 Unterbrechungen, Synchronisation Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen Nürnberg WS 12 17. November

Mehr

Betriebssysteme (BS) VL 5 Unterbrechungen, Synchronisation. Daniel Lohmann.

Betriebssysteme (BS) VL 5 Unterbrechungen, Synchronisation. Daniel Lohmann. Betriebssysteme (BS) VL 5 Unterbrechungen, Synchronisation Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen Nürnberg WS 14 4. November

Mehr

Betriebssysteme (BS) VL 5 Unterbrechungen, Synchronisation. Volkmar Sieh / Daniel Lohmann.

Betriebssysteme (BS) VL 5 Unterbrechungen, Synchronisation. Volkmar Sieh / Daniel Lohmann. Betriebssysteme (BS) VL 5 Unterbrechungen, Synchronisation Volkmar Sieh / Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen Nürnberg

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

Übung zu Betriebssysteme

Übung zu Betriebssysteme Übung zu Betriebssysteme Zeitscheibenscheduling 20. & 22. Dezember 2017 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte

Mehr

Übung zu Betriebssysteme

Übung zu Betriebssysteme Übung zu Betriebssysteme Threadumschaltung 6. & 8. Dezember 2017 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte Systeme

Mehr

Übung zu Betriebssystemtechnik

Übung zu Betriebssystemtechnik Übung zu Betriebssystemtechnik Nachrichtenaustausch und Copy-on-Write 11. Juni 28 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl

Mehr

Praktikum angewandte Systemsoftwaretechnik (PASST)

Praktikum angewandte Systemsoftwaretechnik (PASST) Praktikum angewandte Systemsoftwaretechnik (PASST) Dateisysteme / Aufgabe 6 21. Juni 2018 Stefan Reif, Peter Wägemann, Florian Schmaus, Michael Eischer, Andreas Ziegler, Bernhard Heinloth und Benedict

Mehr

librtipc - Bibliothek für echtzeitfähige Interprozesskommunikation

librtipc - Bibliothek für echtzeitfähige Interprozesskommunikation librtipc - Bibliothek für echtzeitfähige Interprozesskommunikation Josef Raschen Diplomarbeit: Hardwareunabhängige Interprozesskommunikation für Echtzeitanwendungen Lehrstuhl für Betriebssysteme RWTH Aachen

Mehr

Betriebssysteme (BS) VL 1 Einführung. Vorwort. Voraussetzungen. Lernziele

Betriebssysteme (BS) VL 1 Einführung. Vorwort. Voraussetzungen. Lernziele Betriebssysteme (BS) Vorwort VL 1 Einführung Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Die Lehrveranstaltung ist grundsätzlich für alle Studiengänge offen. Sie verlangt

Mehr

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Just-In-Time-Compiler

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

Mehr

CiAO (CiAO is Aspect-Oriented)

CiAO (CiAO is Aspect-Oriented) CiAO (CiAO is Aspect-Oriented) Eine aspektorientiert entworfene Betriebssystemfamilie Daniel Lohmann Olaf Spinczyk Wolfgang Schröder-Preikschat Lehrstuhl für Informatik IV Verteilte Systeme und Betriebssysteme

Mehr

Wiederholung: Übernahmeprüfung bei terminbasierter Einplanung

Wiederholung: Übernahmeprüfung bei terminbasierter Einplanung Echtzeitsysteme Übungen zur Vorlesung Evaluation Evaluation der Veranstaltung Eure Meinung (Lob/Kritik) ist uns wichtig! Eure Rückmeldung hat Konsequenzen A Bitte evaluiert Vorlesung und Übungen Betriebsmittelprotokolle

Mehr

Bibliotheks-basierte Virtualisierung

Bibliotheks-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16)

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading Leistungskurs C++ Multithreading Threading mit Qt Plattformübergreifende Thread-Klasse Sehr einfach zu benutzen Leider etwas schlecht dokumentiert Leistungskurs C++ 2 QThread Plattformübergreifende Thread-Klasse

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

C++ Templates - eine kleine Einführung

C++ Templates - eine kleine Einführung C++ Templates - eine kleine Einführung Peter Ulbrich, Martin Hoffmann Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de

Mehr

Betriebssysteme (BS) VL 1 Einführung. Vorwort. Voraussetzungen. Lernziele

Betriebssysteme (BS) VL 1 Einführung. Vorwort. Voraussetzungen. Lernziele Betriebssysteme (BS) Vorwort VL 1 Einführung Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Die Lehrveranstaltung ist grundsätzlich für alle Studiengänge offen. Sie verlangt

Mehr

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Implementierung von Interruptbehandlungen. Interrupts

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Implementierung von Interruptbehandlungen. Interrupts Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Inhalt Interrupts Allgemein AVR Interrupt-Handler Synchronisation volatile Sperren von Interrupts

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading Leistungskurs C++ Multithreading Zeitplan 16.10. Vorlesung 23.10. Vorlesung, Gruppeneinteilung 30.10. Vorlesung, HA1 06.11. Vorlesung, HA2 13.11. Vorlesung entfällt wegen SVV 20.11. Präsentation Vorprojekt

Mehr

C++ Templates - eine kleine Einführung. Funktionstemplates. Fabian Scheler, Peter Ulbrich, Niko Böhm. 20. Oktober 2008

C++ Templates - eine kleine Einführung. Funktionstemplates. Fabian Scheler, Peter Ulbrich, Niko Böhm. 20. Oktober 2008 Überblick 1 Allgemein C++ Templates - eine kleine Einführung Fabian Scheler, Peter Ulbrich, Niko Böhm Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Design and Implementation of a Soft-error Resilient OSEK Real-time Operating System

Design and Implementation of a Soft-error Resilient OSEK Real-time Operating System Design and Implementation of a Soft-error Resilient OSEK Real-time Operating System Florian Lukas Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich Alexander Universität Erlangen

Mehr

Emulation. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Emulation. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg Emulation Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Emulation (WS15/16) 1 22 Definition:

Mehr

Übung zu Betriebssystembau (Ü BS)

Übung zu Betriebssystembau (Ü BS) Übung zu Betriebssystembau (Ü BS) Interruptbehandlung in OOStuBS Wanja Hofer Lehrstuhl für Informatik IV WS 07/08 1 Agenda: IRQ-Behandlung in OOStuBS Interrupts und Traps beim x86 Die Interrupt-Deskriptor-Tabelle

Mehr

.... pid = fork(); if ( pid

Mehr

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund Betriebssystembau 3. Übung Michael Engel Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund michael.engel@tu-dortmund.de http://ess.cs.uni-dortmund.de/~me/ 1 Agenda: IRQ-Behandlung

Mehr

Cell and Larrabee Microarchitecture

Cell and Larrabee Microarchitecture Cell and Larrabee Microarchitecture Benjamin Grund Dominik Wolfert Universität Erlangen-Nürnberg 1 Übersicht Einleitung Herkömmliche Prozessorarchitekturen Motivation für Entwicklung neuer Architekturen

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading Leistungskurs C++ Multithreading Threading mit Qt Plattformübergreifende Thread-Klasse Sehr einfach zu benutzen Leider etwas schlecht dokumentiert Leistungskurs C++ 2 QThread Plattformübergreifende Thread-Klasse

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 3. Übung https://ess.cs.tu-dortmund.de/de/teaching/ws2017/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de https://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik

Mehr

Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS Synchronisation (1) Folie 3

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

Mehr

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Just-In-Time-Compiler (2) 1/13 2011-09-12 Just-In-Time-Compiler

Mehr

U2 Fortgeschrittene AVR-Programmierung. U2-1 Externe Interrupts des AVR-μC. 1 Flanken-/Pegel-Steuerung. 1 Flanken-/Pegel-Steuerung (2) 2 Maskieren

U2 Fortgeschrittene AVR-Programmierung. U2-1 Externe Interrupts des AVR-μC. 1 Flanken-/Pegel-Steuerung. 1 Flanken-/Pegel-Steuerung (2) 2 Maskieren U Fortgeschrittene AVR-Programmierung U Fortgeschrittene AVR-Programmierung U-1 Externe Interrupts des AVR-μC Aufgabe Interrupts volatile-variablen Synchronisation mit Unterbrechungsbehandlungen Stromsparmodi

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

Übung zu Betriebssysteme

Übung zu Betriebssysteme Übung zu Betriebssysteme Interruptbehandlung 08. & 10. November 2017 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte

Mehr

Übungen zu Systemprogrammierung 1 (SP1)

Übungen zu Systemprogrammierung 1 (SP1) Übungen zu Systemprogrammierung 1 (SP1) Ü1-2 Speicherverwaltung Andreas Ziegler, Stefan Reif, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 3. Übung http://ess.cs.tu-dortmund.de/de/teaching/ws2015/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik

Mehr

U5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung. Synchronisation mit Unterbrechungsbehandlungen

U5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung. Synchronisation mit Unterbrechungsbehandlungen U5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung Interrupts volatile-variablen Synchronisation mit Unterbrechungsbehandlungen Stromsparmodi des AVR U5.1 U5-1 Externe Interrupts

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

Übungen zu Systemprogrammierung 2 (SP2)

Übungen zu Systemprogrammierung 2 (SP2) Übungen zu Systemprogrammierung 2 (SP2) Ü6 Mehrfädige Programme Christoph Erhardt, Jens Schedel, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität

Mehr

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich UML / Fujaba Generierung von Java-Quellcode aus UML-Diagrammen Marcel Friedrich Agenda Einleitung Struktur Verhalten Klassendiagramme Storydiagramme Statecharts Action methods 2 Thema Codegenerierung mit

Mehr

Aufgabenblatt 8 Musterlösung

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

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014

Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Interrupts Allgemein AVR Interrupt-Handler Synchronisation volatile 16-Bit-Zugriffe

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

i386 Interrupt-Deskriptortabelle (IDT)

i386 Interrupt-Deskriptortabelle (IDT) Agenda: IRQ-Behandlung in OO-Stubs Interrupts und Traps bei x86 Die Interrupt-Deskriptor-Tabelle (IDT) Aufbau der IDT Traps und Hardware IRQs Der Programmierbare Interruptcontroller PIC 8295A Aufbau Verwendung

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC)

Übungen zu Systemnahe Programmierung in C (SPiC) Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Interrupts Allgemein AVR Interrupt-Handler Synchronisation volatile Lost

Mehr

U5 Fortgeschrittene AVR-Programmierung

U5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung Interrupts Synchronisation mit Unterbrechungsbehandlungen Stromsparmodi des AVR U5.1 U5-1 Externe Interrupts des AVR-μC U5-1

Mehr

EZS Handwerkszeug. Übung zur Vorlesung EZS. Florian Franzmann Martin Hoffmann Tobias Klaus Peter Wägemann

EZS Handwerkszeug. Übung zur Vorlesung EZS. Florian Franzmann Martin Hoffmann Tobias Klaus Peter Wägemann EZS Handwerkszeug Übung zur Vorlesung EZS Florian Franzmann Martin Hoffmann Tobias Klaus Peter Wägemann Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Informatik II - Tutorium 4

Informatik II - Tutorium 4 Informatik II - Tutorium 4 Vincent Becker vincent.becker@inf.ethz.ch 22.03.2017 Vincent Becker 27.03.2017 1 Übungsblatt 3 Vincent Becker 27.03.2017 2 U3.A1 Programmverifikation static int f(int i, int

Mehr

Ausgewählte Kapitel eingebetteter Systeme

Ausgewählte Kapitel eingebetteter Systeme Ausgewählte Kapitel eingebetteter Systeme Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Friedrich-Alexander-Universität Erlangen-Nürnberg 08.06.2005 Übersicht Problemdefinition Scheduling-Strategien

Mehr

1. Die rekursive Datenstruktur Liste

1. Die rekursive Datenstruktur Liste 1. Die rekursive Datenstruktur Liste 1.4 Methoden der Datenstruktur Liste Die Warteschlange (Queue) ist ein Sonderfall der Datenstruktur Liste. Bei der Warteschlange werden Einfügen und Entfernen nach

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

Betriebsmittelprotokolle

Betriebsmittelprotokolle Betriebsmittelprotokolle Florian Franzmann, Martin Hoffmann, Tobias Klaus Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) http://www4.cs.fau.de

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

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

Systemnahe Programmierung in C (SPiC)

Systemnahe Programmierung in C (SPiC) Systemnahe Programmierung in C (SPiC) 9 Funktionen Jürgen Kleinöder, Daniel Lohmann, Volkmar Sieh Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Mehr

Übungen zu Systemprogrammierung 1

Übungen zu Systemprogrammierung 1 Übungen zu Systemprogrammierung 1 Ü1-2 Speicherverwaltung Sommersemester 2018 Christian Eichler, Jürgen Kleinöder Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 3. Übung http://ess.cs.tu-dortmund.de/de/teaching/ws2012/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik

Mehr

Hardware Logik-Analysatoren

Hardware Logik-Analysatoren Hardware Logik-Analysatoren Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Hardware Logik-Analysatoren 1/24 2010-10-12

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Matthias Meitner Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Meitner, Spisländer FAU Erlangen-Nürnberg Software

Mehr

Systeme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss. Wolfram Burgard

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

Mehr

5.3 Doppelt verkettete Listen

5.3 Doppelt verkettete Listen 5.3 Doppelt verkettete Listen Einfach verkettete Listen unterstützen das Einfügen und Löschen am Anfang in konstanter Zeit; für das Einfügen und Löschen am Ende benötigen sie jedoch lineare Laufzeit Doppelt

Mehr

Cilk Sprache für Parallelprogrammierung. IPD Snelting, Lehrstuhl für Programmierparadigmen

Cilk Sprache für Parallelprogrammierung. IPD Snelting, Lehrstuhl für Programmierparadigmen Cilk Sprache für Parallelprogrammierung IPD Snelting, Lehrstuhl für Programmierparadigmen David Soria Parra Geschichte Geschichte Entwickelt 1994 am MIT Laboratory for Computer Science Cilk 1: Continuations

Mehr

Konzepte von Betriebssystem-Komponenten: Effiziente Manycore-Systeme

Konzepte von Betriebssystem-Komponenten: Effiziente Manycore-Systeme Konzepte von Betriebssystem-Komponenten: Effiziente Manycore-Systeme Florian Schmaus, Stefan Reif Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Mehr

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Aufgabe 1 Entwicklung einer Virtuellen Maschine Aufgabe 1 Entwicklung einer Virtuellen Maschine Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Entwicklung

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa Peter Zeller AG Softech FB Informatik TU Kaiserslautern Speichermanagement Wie viel Speicher braucht ein Programm? Wofür wird Speicher benötigt? Wie ist der Speicher

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

Versionsverwaltung. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009

Versionsverwaltung. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009 Versionsverwaltung Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009 Versionsverwaltung 1/22 2009-06-03 Inhalt Motivation

Mehr

RealTime Linux. Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam

RealTime Linux. Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam RealTime Linux Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam Übersicht 2 Standard-Kernel Dual-Kernel RTAI/LXRT In-Kernel

Mehr

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7 Echtzeitprogrammierung und Echtzeitverhalten von Frank Erdrich Semester AI 7 Inhalt Einleitung Echtzeit und Echtzeitsysteme Echtzeitprogrammierung Real-Time Operating System Keil RTOS RTX Zusammenfassung

Mehr

Treiber Fortgeschrittene Konzepte

Treiber Fortgeschrittene Konzepte Treiber Fortgeschrittene Konzepte Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber Fortgeschrittene Konzepte

Mehr

Tag 7 Repetitorium Informatik (Java)

Tag 7 Repetitorium Informatik (Java) Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

User Level Device Driver am Beispiel von TCP

User Level Device Driver am Beispiel von TCP September 17, 2004 Einleitung Motivation für Userlevel Device Driver Probleme von Userlevel Device Driver Motivation für Userlevel Device Driver Modularität, leichterer Austausch/Erneuerung von Komponenten.

Mehr

Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper

Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,

Mehr

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009 Einführung Übungen zur Vorlesung Virtuelle Maschinen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SoSe 2009 Übungsaufgaben 1 Entwickeln

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

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

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

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

Fallstudie: Online-Statistik

Fallstudie: Online-Statistik Fallstudie: Online-Statistik Ziel: Klasse / Objekt, welches Daten konsumiert und zu jeder Zeit Statistiken, z.b. Mittelwert, Varianz, Median (etc.) ausgeben kann Statistics s = new Statistics(maxSize);...

Mehr

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

Fakultät für Informatik der Technischen Universität München. Kapitel 3. Nebenläufigkeit Kapitel 3 Nebenläufigkeit 136 Inhalt Motivation Unterbrechungen (Interrupts) (Software-) Prozesse Threads Interprozesskommunikation (IPC) 137 Links: Literatur Maurice Herlihy, Nir Shavit, The Art of Multiprocessor

Mehr

Systemaufrufe. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011

Systemaufrufe. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Systemaufrufe Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Systemaufrufe 1/17 2010-09-13 Motivation Am Beispiel

Mehr

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Betriebssysteme. Tutorium 2. Philipp Kirchhofer Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 4. November 2009 Philipp

Mehr

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger

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

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 4 Votierung in der Woche vom 21.05.0725.05.07 Aufgabe 9 Waggons rangieren

Mehr

Echtzeitsysteme. Übungen zur Vorlesung. Florian Franzmann, Martin Hoffmann, Tobias Klaus

Echtzeitsysteme. Übungen zur Vorlesung. Florian Franzmann, Martin Hoffmann, Tobias Klaus Echtzeitsysteme Übungen zur Vorlesung Florian Franzmann, Martin Hoffmann, Tobias Klaus Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de

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

C++ Templates - eine kleine Einführung. Allgemein. Funktionstemplates. Allgemein. Funktionstemplates. Klassentemplates

C++ Templates - eine kleine Einführung. Allgemein. Funktionstemplates. Allgemein. Funktionstemplates. Klassentemplates Überblick C++ Templates - eine kleine Einführung Fabian Scheler, Peter Ulbrich, Niko Böhm Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Aufgabe 2 - Erweiterung um PIC und Interrupts

Aufgabe 2 - Erweiterung um PIC und Interrupts Aufgabe 2 - Erweiterung um PIC und Interrupts Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Erweiterung

Mehr

Hinweise C-Programmierung

Hinweise C-Programmierung Hinweise C-Programmierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017 V. Sieh Hinweise C-Programmierung

Mehr

Tobias Klaus Florian Schmaus Peter Wägemann

Tobias Klaus Florian Schmaus Peter Wägemann Wiederholung Nicht-periodische Aufgaben Tobias Klaus Florian Schmaus Peter Wägemann Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU) Lehrstuhl für Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Aufgabenblatt 6 Musterlösung

Aufgabenblatt 6 Musterlösung Prof. Dr. rer. nat. Roland Wismüller Aufgabenblatt 6 Musterlösung Vorlesung Betriebssysteme I Wintersemester 2018/19 Aufgabe 1: Implementierung von Threads (Bearbeitung zu Hause) Der größte Vorteil ist

Mehr