12.09.2013 Aufrufe

Echtzeitbetriebssysteme

Echtzeitbetriebssysteme

Echtzeitbetriebssysteme

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!