- Verteilte Echtzeit-Systeme Hans-Albrecht Schindler Wintersemester 2015/16 Teil B: Echtzeit-Betriebssysteme Abschnitt 13: Echtzeit-Primärspeicherverwaltung CSI Technische Universität Ilmenau www.tu-ilmenau.de
Ø auch bei Hauptspeicher-Management: Fristen einhalten! 13.1 Einleitende Bemerkungen Ø So wie bei Interrupt-Bearbeitung und Prioritätsumkehr gilt: unkontrollierbare/unvorhersagbare Verzögerungen der Prozessbearbeitung vermeiden! gefährliche Speicherzuordnungen: alle, die Determinismus im Echtzeit-System zunichte machen: 1. (Zer-)Störung des Ereignis-Determinismus (im Extremfall z.b. durch Stacküberlauf) 2. (Zer-)Störung des zeitlichen Determinismus (im Extremfall z.b. durch Auftreten von Deadlocks bei Speichervergabe) generelle Regeln: 1. gefährliche Speicherzuordnungen prinzipiell vermeiden 2. gleichzeitig: durch Speicher-Management auftretenden Betriebssystem- Overhead so gering wie möglich halten 13. Echtzeit-Primärspeicherverwaltung / 13.1 Einleitende Bemerkungen ws 2015/16 H.-A. Schindler Folie: 13-2
13.2 Einfache Lösungen Ø viele existierende Betriebssysteme: sicherer Weg durch einfachste Lösungen Ø Im Folgenden hauptsächlich: dazu wichtige Prinzipien Einfache Ressourcenzuordnungsprinzipien: Ø deshalb oft generell: 1. keine Ressourcen-Zuordnung on-demand (d.h. in dem Moment, wo sie benötigt werden) sondern Pre-Allokation (= Vorab-Zuordnung) 2. keine dynamische Ressourcenzuordnung (z.b. Speicher), sondern Zuordnung maximal benötigter Menge bei Pre-Allokation (Aussage (RTLinux): effizient implementierte dynamische Speichervergabe nicht zeitlich vorhersagbar!) 13. Echtzeit-Primärspeicherverwaltung / 13.2 Einfache Lösungen ws 2015/16 H.-A. Schindler Folie: 13-3
Zuordnung von Speicher an Prozesse Schlussfolgerungen: 1. Gemäß Pre-Allokationsprinzip: Vor Beginn der Abarbeitung eines Prozesses müssen sich mindestens die für gewisses Zeitintervall notwendigen Prozess- Teile im Hauptspeicher befinden... (Teile der Daten, gewisse Menge Befehle). 2. Später benötigte Teile müssen gleichfalls vorab geladen werden 3. Entsprechend Vermeidung dynamischer Ressourcenvergabe: Loading-on-demand und auch Nachladen on-demand sind ungeeignet, und damit auch virtuelle Speicherverwaltung, da keine zeitlichen Garantien Realität: 1. oft Pre-Allokation der maximalen Speicher menge 2. auf Grund verwendeter Minimalhardware (z.b. keine MMU): keine virtuelle Speicherverwaltung viele Echtzeit-BS (insbesondere für eingebettete Systeme) realisieren auch keinen Speicherschutz Ø von 5 aktuellen BS für eingebettete Systeme (RTLinux, RTAI, RTMS, QNX, VxWorks) hat nur ein (!) BS Speicherschutz implementiert (QNX) 13. Echtzeit-Primärspeicherverwaltung / 13.2 Einfache Lösungen ws 2015/16 H.-A. Schindler Folie: 13-4
Zuordnung von Speicher an Prozesse Forderungen: Ø sowohl dynamische Speicherverwaltung (eventuell im reduzierten Umfang) als auch Speicherschutz realisieren (z.b. OCERA-Papiere, bes. D3.4) Ø zunehmende Komplexität der Anwendungen Ø Fehlerfortpflanzung Pre-Allokation Ø Bei periodischen Prozessen deren logische Ankunftszeit ja bekannt können Prozess-Bestandteile rechtzeitig im Voraus geladen werden. Ø auch Reservierungs-Mechanismen im Voraus einsetzbar (typisch bei QoS-Ansatz) 13. Echtzeit-Primärspeicherverwaltung / 13.2 Einfache Lösungen ws 2015/16 H.-A. Schindler Folie: 13-5
13.3 Virtuelle Speichertechnik Ø in normalen (= nicht-echtzeit-) BS heute allgemein eingesetzt Eigenschaften: Prozesse laufen innerhalb ihres eigenen virtuellen Adressraumes sie können mehr Speicherplatz nutzen als physisch vorhanden Aufgaben der Speicherverwaltung: Buchführung über verfügbare Ressourcen Zuweisung physischen Speichers an einzelne Prozesse detaillierter: Zuordnung des virtuellen Adressraumes an jeden Prozess und Abbilden physischer Seiten mit geeignetem Schutz in den virtuellen Adressraum Seitenfehlerbehandlung befasst sich mit nicht zugeordneten und ungültigen Speicherreferenzen è Speicher-Zugriffsfehler (page fault) Laden von Daten in den Speicher und Zurückspeichern auf Platte UNIX-Systeme: Duplizieren eines Adressraumes bei fork()-systemaufruf 13. Echtzeit-Primärspeicherverwaltung / 13.3 Virtuelle Speichertechnik ws 2015/16 H.-A. Schindler Folie: 13-6
Virtuelle Speichertechnik Prinzip Hauptspeicher (Ausschnitt) Hintergrundspeicherspeicher (üblich: Festplatte) Prozess A im Hintergrundspeicher... Prozess B im Hintergrundspeicher... Übertragung einzelner Teile eines Prozesses zur Ausführung (Platzvergabe an Prozesse muss auch auf Hintergrundspeicher nicht zusammenhängend sein) 13. Echtzeit-Primärspeicherverwaltung / 13.3 Virtuelle Speichertechnik Darstellung nach /Deitel90/ S.219 ws 2015/16 H.-A. Schindler Folie: 13-7
Paging für Echtzeit-Anwendungen Paging allgemein: Ø bei zu vollem physischen Speicher muss Memory-Manager zur Platzgewinnung Swapping oder Paging ausführen è Wegen Echtzeit-Performanz-Empfindlichkeit: Swapping ungeeignet! è Folglich nur Paging-basierte Speichersysteme von Interesse... notwendig: neue Ansätze für Speicherzuordnung und -benutzung Seitenaustausch und Prefetching (Laden im Voraus) Ø dabei wesentlich: anwendungsspezifisches Wissen über Applikationen bei Anwendung existierender Systeme: Ø Durch unkontrolliertes Auslagern zeitkritischer Seiten unkontrollierbare Zeitverzögerungen möglich! Ø hier wenigstens Festnageln von Seiten im Hauptspeicher nutzen! (bekannt auch als: Pinning, Memory Locking) 13. Echtzeit-Primärspeicherverwaltung / 13.3 Virtuelle Speichertechnik ws 2015/16 H.-A. Schindler Folie: 13-8
Beispielsysteme mit modifiziertem Paging 1. Systeme entsprechend Real-Time POSIX/RT-Mach: Ø eine Applikation kann alle Seiten im Hauptspeicher fixieren Funktion mlockall() bzw. bestimmte Adressbereiche Funktion mlock( <starting_address>, <length>) 2. Echtzeit-Versionen von Windows u. andere BS: Ø beim create_thread()-systemaufruf kann spezifiziert werden, dass alle Seiten des erzeugten Threads im Speicher fixiert werden 3. LynxOS: Ø Fixieren von Seiten durch Priorität ( paging priority ) gesteuert falls: (Applikations-Priorität paging priority): Seiten der Applikation fixiert falls: (Applikations-Priorität < paging priority): Seiten nicht fixiert 13. Echtzeit-Primärspeicherverwaltung / 13.3 Virtuelle Speichertechnik ENDE 11 ws 2015/16 H.-A. Schindler Folie: 13-9