Übung zu Betriebssysteme
|
|
- Moritz Rosenberg
- vor 5 Jahren
- Abrufe
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 - Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os
MehrBetriebssystembau (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
MehrBetriebssystembau (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,
MehrBetriebssystembau (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
MehrBetriebssysteme (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
MehrBetriebssysteme (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
MehrBetriebssysteme (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
MehrBetriebssysteme (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
MehrSoftware 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 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 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 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
MehrPraktikum 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
Mehrlibrtipc - 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
MehrBetriebssysteme (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
MehrJust-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
MehrOpenCL. 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
MehrCiAO (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
MehrWiederholung: Ü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
MehrBibliotheks-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)
MehrLehrstuhl 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
Mehrleave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
MehrC++ 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
MehrBetriebssysteme (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
MehrInhalt. Ü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
MehrLehrstuhl 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
MehrC++ 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)
MehrDesign 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
MehrEmulation. 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) 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
MehrBetriebssystembau. 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
MehrCell 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
MehrLehrstuhl 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
MehrBetriebssystembau (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
MehrHans-Georg Eßer, Hochschule München Betriebssysteme I, SS Synchronisation (1) Folie 3
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
MehrJust-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
MehrU2 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
MehrDatenstrukturen und Algorithmen
1 Datenstrukturen und Algorithmen Übung 13 FS 2018 Programm von heute 2 1 Feedback letzte Übung 2 Wiederholung Theorie 3 Nächste Übung 1. Feedback letzte Übung 3 Aufgabe 12.3: Summe eines Vektors void
MehrÜ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) Ü1-2 Speicherverwaltung Andreas Ziegler, Stefan Reif, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität
MehrBetriebssystembau (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
MehrU5 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
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) Ü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
MehrUML / 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
MehrAufgabenblatt 8 Musterlösung
Prof. Dr. rer. nat. Roland Wismüller Aufgabenblatt 8 Musterlösung Vorlesung Betriebssysteme I Wintersemester 2017/18 Aufgabe 1: Erzeuger-Verbraucher Synchronisation (Bearbeitung in der Übungsstunde) Erzeuger-Verbraucher-Problem:
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) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Interrupts Allgemein AVR Interrupt-Handler Synchronisation volatile 16-Bit-Zugriffe
MehrArten der Synchronisation. Koordination nebenläufiger Prozesse. Koordinierung. Reihenschaltung. Einseitige Synchronisation
Koordination nebenläufiger Prozesse Arten der Synchronisation Systemaufrufe Programmverwaltung Zugriffskontrolle Dateiverwaltung Ein /Auslagerung Vernetzung Ein /Ausgabe Fadenverwaltung Koordination Prozesseinplanung
Mehri386 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) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Interrupts Allgemein AVR Interrupt-Handler Synchronisation volatile Lost
MehrU5 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
MehrEZS 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)
MehrInformatik 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
MehrAusgewä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
Mehr1. 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
MehrProzesszustände (1a)
Prozesszustände (1a) NOT EXISTING DELETED CREATED Meta-Zustand (Theoretische Bedeutung) Prozesszustände Multiuser Umfeld (1c) Hintergrund-Prozess - der Prozess startet im Hintergrund - my-commandbin &
MehrBetriebsmittelprotokolle
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
MehrSysteme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss Maren Bennewitz Version 18.12.2013 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung,
MehrThreads Einführung. Zustände von Threads
Threads Einführung Parallelität : Zerlegung von Problemstellungen in Teilaufgaben, die parallelel ausgeführt werden können (einfachere Strukturen, eventuell schneller, Voraussetzung für Mehrprozessorarchitekturen)
MehrSystemnahe 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 Ü1-2 Speicherverwaltung Sommersemester 2018 Christian Eichler, Jürgen Kleinöder Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl
MehrBetriebssystembau (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
MehrHardware 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
MehrSoftware 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
MehrSysteme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss. Wolfram Burgard
Systeme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss Wolfram Burgard Version 09.11.2016 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern!
Mehr5.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
MehrCilk 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
MehrKonzepte 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
MehrAufgabe 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
MehrSoftware 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
MehrSysteme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss Maren Bennewitz Version 12.12.2012 1 Nachtrag zu letzter Vorlesung Hauptspeicher reicht nur für begrenzte Anzahl von
MehrVersionsverwaltung. 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
MehrRealTime 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
MehrEchtzeitprogrammierung 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
MehrTreiber 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
MehrTag 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
MehrUser 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.
MehrEinfü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,
MehrEinfü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
MehrAssembler - 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 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)
MehrWegweiser. Das Erzeuger-/Verbraucher-Problem. Semaphore. Transaktionen. Botschaften
Wegweiser Das Erzeuger-/Verbraucher-Problem Semaphore Transaktionen Botschaften Betriebssysteme WS 2013, Threads 75 Beispiele Erzeuger-/Verbraucher-Probleme Betriebsmittelverwaltung Warten auf eine Eingabe
MehrA Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...
1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................
MehrFallstudie: 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);...
MehrFakultä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
MehrSystemaufrufe. 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
MehrBetriebssysteme. 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
MehrThreads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger
Netzwerk - Programmierung Threads Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Jan Krüger jkrueger@cebitec.uni-bielefeld.de Übersicht Probleme mit fork Threads Perl threads API Shared Data Mutexes
MehrÜ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
MehrEchtzeitsysteme. Ü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
MehrBetriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)
Betriebssysteme G: Parallele Prozesse (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) 1 Allgemeine Synchronisationsprobleme Wir verstehen ein BS als eine Menge von parallel
MehrC++ 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)
MehrAufgabe 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
MehrHinweise 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
MehrTobias 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)
MehrAufgabenblatt 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