Echtzeitbetriebssysteme
Echtzeitbetriebssysteme
Echtzeitbetriebssysteme
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung (Memory Management)<br />
Aufgaben der Memory-Management-Unit ist<br />
l der Speicherschutz und<br />
l die Adressumsetzung<br />
Wird durch Hardware unterstützt<br />
l Memory Management Unit (MMU)<br />
l MMU wird vom Betriebssystem konfiguriert<br />
(Speicherabbildungstabellen)<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-1<br />
08 - 1<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung (Memory Management)<br />
Struktur einer MMU<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-2<br />
08 - 2<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung: Speicherschutz<br />
l Jeder Prozess (nicht Threads) hat eigenen Adressraum<br />
(Prozessadressraum)<br />
l Zugriff nur auf eigene Daten-, Stack- und<br />
Codesegmente<br />
l Zugriff auf nicht abgebildete Adresse: MMU erzeugt<br />
Interrupt (Segmentation Fault)<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-3<br />
08 - 3<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung : Keine Adressumsetzung<br />
Alle Programme zur Link-Zeit bekannt: Linker kann unterschiedliche<br />
Adressbereiche pro Programm zuordnen und Sprungadressen<br />
(Funktionsaufrufe) auflösen, ein Executable (Image)<br />
Mehrere Programme dynamisch zur Laufzeit im Hauptspeicher -><br />
unterschiedliche, zur Ladezeit festzulegende Programmadressen<br />
(Sprünge bei Funktionsaufrufen) erforderlich<br />
Laden: (Programm in Hauptspeicher bringen; zu Prozess machen)<br />
l Lader (loader): Ersetzt Adressen (Sprünge absolut,<br />
Variablenzugriffsadressen absolut) zur Lade-Zeit eines Programms<br />
-> aufwändig<br />
l Sonderfall: Speicherposition unabhängiger Codeà Compiler<br />
erzeugt nur Sprungbefehle relativ zum PC und Variablenzugriffe<br />
relativ zu einem einmal geladenen danach „readonly“<br />
Indexregisterinhalt à Lader: Indexregister setzen beim Start<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-4<br />
08 - 4<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung : Adressumsetzung<br />
Einheitlicher (virtuellen) Adressraum für Programme<br />
l Virtueller Adressraum beginnt bei 0, umfasst kompletten adressierbaren<br />
(Adressbusbreite) Adressbereich für jedes Programm<br />
l Linker legt virtuelle Adressen in Executable fest, Adressen werden nicht<br />
mehr verändert, nur durch MMU auf reale Adressen abgebildet<br />
→ schnelles Laden, da keine Veränderung des Executables erforderlich<br />
(lediglich Konfiguration der MMU, Speichertabellen)<br />
l Ermöglicht leichte Verwendung von Shared Libraries: Mehrere Tasks<br />
teilen sich ein (Code-) Segment (beliebige virtuelle Adressen durch Linker<br />
vergeben, Abbildung auf bereits geladene Shared Library durch MMU)<br />
→ reduziert Hauptspeicherbedarf<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-5<br />
08 - 5<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung Adressumsetzung<br />
Einheitlicher (virtuellen) Adressraum für Programme<br />
l Physikalischer Adressraum kann kleiner sein als Virtueller<br />
Adressraum<br />
l Abbildung durch Swappen und Paging<br />
l Swappen: Auslagern des zugeordneten physikalischen Speichers<br />
eines gesamten Prozesses auf den Hintergrundspeicher<br />
l Paging: Auslagern selten benutzter Speicherseiten (z.B. 4kByte)<br />
auf Hintergrundspeicher<br />
l Kaum Bedeutung bei Echtzeitsystemen: führt zu (zeitlichem)<br />
Nichtdeterminismus<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-6<br />
08 - 6<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung (Memory Management)<br />
Segmentierung (x86)<br />
Phys.Adresse = SegmentRegister * 16 + Offset ;<br />
Pointervergleich: Normalisieren (Umrechnen in „lange“ Adresse); ist<br />
aufwändig<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-7<br />
08 - 7<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung, Seitenorganisation<br />
Adressabbildung<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-8<br />
08 - 8<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung, Seitenorganisation<br />
Virtuelle Adresse<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-9<br />
08 - 9<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung, Seitenorganisation<br />
Seitendeskriptor<br />
Schreibflag<br />
1: auf die Seite darf schreibend zugegriffen werden<br />
0: Versuchter Schreibzugriff führt zu Bus-Error<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-10<br />
08 - 10<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung (Memory Management)<br />
Seitenorganisation<br />
Daten-Zugriff erlaubt<br />
1: Daten dürfen aus der Kachel gelesen werden<br />
0: Datenzugriff führt zu Bus Error<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-11<br />
08 - 11<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung (Memory Management)<br />
Seitenorganisation<br />
Code-Zugriff<br />
1: Prozessor darf Inhalt als Befehl ausführen<br />
0: Versuch, Inhalt als Code auszuführen führt zu Bus<br />
Error<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-12<br />
08 - 12<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Speicherverwaltung (Memory Management)<br />
Seitenorganisation<br />
Kachel im Speicher<br />
1: Seite befindet sich im Speicher<br />
0: Seite ist ausgelagert; „Seite-Fehlt-Alarm“ (Hardware-<br />
Interrupt) wird ausgelöst: Kernel muss Seite laden<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-13<br />
08 - 13<br />
01.03.2010
<strong>Echtzeitbetriebssysteme</strong><br />
Fertig mit der Speicherverwaltung<br />
Weiter geht’s mit dem IO-System<br />
Echtzeitsysteme 08 Speicher<br />
Prof. Dr. Max Fischer FK07, Prof. Dr. Rainer Seck FK04<br />
6-14<br />
08 - 14<br />
01.03.2010