speicherverwaltung, interrupts & exceptions · synchrone interrupts (ausgelöst durch...
TRANSCRIPT
![Page 1: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/1.jpg)
Speicherverwaltung,Interrupts & Exceptions
Daniel Richter
Seminar „Prozesssteuerung und Robotik“
03. Dezember 2008
![Page 2: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/2.jpg)
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
2
Agenda
■ Speicherverwaltung
□ Grundlagen
□ Möglichkeiten auf verschiedenen Ebenen
– CPU/Hardware, Betriebssystem, virtuelle Maschinen
□ Algorithmen zur Speicherbereitstellung
■ Interrupts & Exceptions
□ Interruptbehandlung
□ Maskierung, Prioritäten
□ Exceptions
![Page 3: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/3.jpg)
Speicherverwaltung
![Page 4: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/4.jpg)
Motivation
■ verschiedenen Prozesse/Tasks mit eigenem Speicher
■ Aufgaben
□ Speicherbereitstellung – Applikationen den Speicher geben,
den sie brauchen
□ Speicherabbildung – Adressen, die im Prozess verwendet
werden, auf echten Speicher abbilden
□ Speicherschutz – Verhindern, dass auf Speicher zugegriffen
wird, der nicht zugeteilt war
■ Herausforderung für eingebettete Systeme: Wie erhält man
vorhersagbares Verhalten?
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
4
![Page 5: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/5.jpg)
Grundlagen
■ Segmentierung
□ Aufteilung des Speichers
□ Segmenttabelle (Name/Adresse, Länge/Offset, evtl.
unterschiedliche Attribute)
□ statt großem, zusammenhängendem Bereich mehrere kleine
□ Problem: interne & externe Fragmentierung
■ Paging/virtueller Speicher
□ virtuelle vs. logische vs. physische Adressen
□ Adressübersetzung
□ Seitentabellen
■ Swapping
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
5
![Page 6: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/6.jpg)
CPU/Hardware-Ebene
■ Segementierung/Paging und virtueller Speicher
□ Memory Management Unit + Translation Lookaside Buffer
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
6
/1/
![Page 7: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/7.jpg)
CPU/Hardware-Ebene
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
7
Typ flüchtig? schreiben? Löschgröße Löschzyklen Kosten/byte Gewindigkeit
SRAM ja ja Byte unbegrenzt teuer schnell
DRAM ja ja Byte unbegrenzt mittel mittel
ROM nein nein - - billig schnell
PROM nein einmal, durch
Programmierer
- - mittel mittel
EPROM nein ja, durch
Programmierer
ganzer
Chip
begrenzt mittel schnell
EEPROM nein ja Byte begrenzt teuer schnell zu lesen,
langsam zu
schreiben
Flash nein ja Sektor begrenzt mittel schnell zu lesen,
langsam zu
schreiben
NVRAM nein ja Byte unbegrenzt teuer schnell
■ Speicherarten: /5/
![Page 8: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/8.jpg)
Betriebssystemebene
■ Herausforderungen für eingebettete Systeme:
□ Speicherbereitstellung und –zugriff langsam, nicht
deterministisch
– Speicherlatenz
– Swapping
□ oft keine Hardware-Unterstützung (MMU, TLB)
□ wenig Speicher, kein Sekundärspeicher
■ Ziel: schneller und deterministische Speicherverwaltung
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
8
![Page 9: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/9.jpg)
Betriebssystemebene
■ Speicher sperren
□ Swapping macht Speicherzugriffe nicht vorhersagbar
Swapping deaktivieren
□ WindowsNT
– Flag in CreateThread()
□ POSIX
– mlockall(), munlockall()
alle Seiten eines Tasks
– mlock(), munlock()
bestimmter bereitgestellter Speicherbereich
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
9
![Page 10: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/10.jpg)
Betriebssystemebene
■ Speicherabbildung
□ Abbildung logischer Adressen auf physikalische Adressen
□ Abbildung auf z.B.
– Anbindung an Peripheriegeräte
– Dateien
– gemeinsamer Speicher /Interprozesskommunikation
□ POSIX:
– mmap() gibt logische Adresse für physk. Adr. zurück
– mprotect() Zugriffssteuerung
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
10
![Page 11: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/11.jpg)
Virtuelle Maschinen (Laufzeitumg.)
■ Probleme:
□ Garbage Collection
□ dynamische Speicherbereitstellung
■ Bsp. RT Java:
□ verschiedene Speicherarten
– Heap mit GC
– „unsterblicher“ Speicher
– Speicher mit begrenzter Lebensdauer
(Speicherbereitstellung linear oder variabel)
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
11
![Page 12: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/12.jpg)
Algorithmen für
Speicherbereitstellung
■ statische Speicherbereitstellung
□ Segmentierung, feste Größe
□ schnell und vorhersagbar, aber Größe nicht änderbar
■ dynamische Speicherbereitstellung
□ Änderung zur Laufzeit
□ „Stück“ aus globalem Heap
□ Überwachung des freien und belegten Speichers
□ verkettete Listen, Bitmaps, Buddy-Systeme, getrennte Free-
Listen
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
12
![Page 13: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/13.jpg)
dynamische Speicherbereitstellung –
verkettete Liste
■ alle vergebenen freien Blöcke in einer verketten Liste
■ Bereitstellen eines neuen Blocks:
□ durch Liste iterieren
□ first-fit/next-fit, best-fit, worst-fit
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
13
/4/
![Page 14: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/14.jpg)
dynamische Speicherbereitstellung –
Bitmap/Array
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
14
■ Aufteilung des Speichers in gleich große Teile
■ Bitmap gibt an, ob vergeben (1) oder frei (0)
■ Iteration über Bitmap
■ Problem: Fragmentierung
/4/
![Page 15: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/15.jpg)
dynamische Speicherbereitstellung –
Bitmap/Array
■ Modifikation: anderes Kodierungsschema
□ positive Zahl an Anfang und Ende von freien Speicherbereich
□ negative Zahl am Anfang (-1xGröße), 0 am Ende von belegten
Speicherbereichen
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
15
/4/
![Page 16: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/16.jpg)
dynamische Speicherbereitstellung –
Suchen von Speicherblöcken
■ finden eines passend großen Bereichs freien Speichers durch
Iteratrion
bessere Lösung ist sortieren
■ Heap-Datenstruktur:
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
16
/4/
![Page 17: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/17.jpg)
dynamische Speicherbereitstellung –
Speicher freigeben
■ zugeteilter Speicher kann auch wieder freigegeben werden
■ Herausforderungen:
□ Freispeicherblöcke zusammenfassen
□ Fragmentierung verhindern/beseitigen
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
17
![Page 18: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/18.jpg)
dynamische Speicherbereitstellung –
Speicherpools
■ Unterteilung des Speichers in mehrere Speicherpools mit festen
Blockgrößen
■ besserer Vorhersagbarkeit
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
18
/4/
![Page 19: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/19.jpg)
dynamische Speicherbereitstellung –
Buddy-Verfahren
1. Speicher wird in Bereiche mit Länge 2K aufgeteilt
2. angeforderte Speichergröße wird zur nächsten 2er-Potenz
aufgerundet
3. Speicherbereich dieser Größe wird gesucht
4. Nicht gefunden doppelte Größe gesucht und dieser geteilt
5. (rekursiv weiter)
■ Vorteil:
begrenzte Laufzeit,
leicht zu implementieren
■ Nachteil:
hohe Fragmentierung
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
19
/4/
![Page 20: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/20.jpg)
dynamische Speicherbereitstellung –
Buddy-Verfahren
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
20
/4/
![Page 21: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/21.jpg)
Fragen?
■ Speicherverwaltung
□ Grundlagen
□ Möglichkeiten auf verschiedenen Ebenen
– CPU/Hardware, Betriebssystem, virtuelle Maschinen
□ Algorithmen zur Speicherbereitstellung
– statische vs. dynamische Bereitstellung
– verkettete Listen, Bitmaps/Vektoren, Buddy-Systeme
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
21
![Page 22: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/22.jpg)
Interrupts & Exceptions
![Page 23: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/23.jpg)
Grundlagen
■ eingebettete Systeme reagieren auf externe Ereignisse
■ zyklische Abfrage (Polling)
□ schnell
□ Overhead, wenn sich Daten nicht ändern
■ Interrupts
□ langsamere Reaktionszeit, Abarbeitung dauert länger
□ effizienter Daten werden verarbeitet, wenn verfügbar
□ aber: nicht deterministisch, wenn Auftrittsrate nicht bekannt
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
23
![Page 24: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/24.jpg)
Interruptbehandlung
1.CPU prüft Interrupt-Leitung vor jeder Instruktionsausführung
2.Wenn Interrupt signalisiert: nächste Instruktion nicht ausführen,
sondern Befehlszähler (etc.) sichern
3.Befehlszähler wird auf Adresse für Interruptbehandlungsroutine
gesetzt (Interruptvektor; fest oder aus Interrupttabelle)
4.Ausführung (Interrupt Service Routine)
5.Zurücksetzten des Programmzählers (etc.)
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
24
![Page 25: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/25.jpg)
Probleme
■ mehrere Interrupts gleichzeitig, ISR löst selbst Interrupt aus
Priorisierung, Maskierung
Programmable Interrupt Controller
□ durch Software konfigurierbare Hardwareeinheit
□ Prioritäten, Maskierung, Warteschlangen
□ Advanced PIC: Interruptverteilung in Multiprozessorsystemen
■ Interrupt-Latenz
– Hardwarelatenz
– Interrupts höherer Priorität
– Kontextwechsel
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
25
![Page 26: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/26.jpg)
■ synchrone Interrupts (ausgelöst durch Instruktionsausführung)
Exceptions
Typ Grund Folge Beispiel
Interrupt I/O-Signal Rückkehr zur nächsten Anweisung
externes Gerät(asynchron)
Trap erwartete Ausnahme
Rückkehr zur nächsten Anweisung
Lesen einer Datei
Fault potentiell behebbarerFehler
evtl. Rückkehr zur gleichen Anweisung
Seitenfehler
Abort nicht behebbarerFehler
kehrt nicht zurück
Hardwarefehler
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
26
![Page 27: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/27.jpg)
Fragen?
■ Interrupts
□ Interrupt vs. Polling
□ Wie wird ein Interrupt behandelt/durchgeführt
□ Maskierung, Schachtelung, (A)PIC
□ Interrupt-Latenz
■ Exceptions
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
27
![Page 28: Speicherverwaltung, Interrupts & Exceptions · synchrone Interrupts (ausgelöst durch Instruktionsausführung) Exceptions Typ Grund Folge Beispiel Interrupt I/O-Signal Rückkehr zur](https://reader030.vdocuments.site/reader030/viewer/2022020315/5b15ef927f8b9a85498bda27/html5/thumbnails/28.jpg)
Quellen
1. Operating System Concepts, Seventh Edition; A. Silberschatz, P. B. Galvin, G.
Gagne; John Wiley & Sons, Inc.; 2005
2. Inside Microsoft Windows 2000, Third Edition; D. A. Solomon, M. E.
Russinovich; Microsoft Press; 2000
3. Memory Management for Embedded Systems; A. Polze, A. Rasche, B. Rabe;
Betriebssysteme für Embedded Computing; WS 07/08
4. Real-Time Concepts for Embedded Systems; Q. Li,C. Yao; Elsevier Books;
01.07.2003
5. Introduction to Memory Types; Michael Barr; Embedded Systems Design;
01.05.2000
6. Interrupts and Exeptions; A. Polze, A. Rasche, B. Rabe; Betriebssysteme für
Embedded Computing; WS 07/08
7. Storage Allocation for Real-Time, Embedded Systems; S. M. Donahue, M. P.
Hampton, M. Deters, J. M. Nye, R. Cytron, K. M. Kavi; Springer-Verlag; 2001
8. Memory Management for Real-Time Java: An Efficient Solution using Hardware
Support; T. Higuera, V. Issarny, M. Banâtre, F. Parain; Springer Netherlands;
30.10.2004
Seminar Prozessteuerung und Robotik | Daniel Richter | 03. Dezember 2008
28