Betriebssysteme it-Akademie Bayern z/OS und OS/390 Lehrgang 2008 Prof. Dr.-Ing. Wilhelm G. Spruth Teil 7b Paging el0100 ww © copyright W. G. Spruth, 10-2005 wgs 10-05 Hardware Fehler Extern E/A Programm SystemAufruf Unterbrechungssteuerung Virtuelle SpeicherVerwaltung E/A Geräte Steuerung Prozess Verwaltung File System Zeitgeber Debug, andere Zeitscheiben - Scheduler nächster Prozess Struktur des Überwachers Der Aufruf des Überwachers (Supervisor, Kernel) erfolgt grundsätzlich über Unterbrechungen. Je nach Art der Unterbrechung werden unterschiedliche Komponenten des Überwachers aufgerufen. Der Scheduler (Zeitscheibensteuerung) sucht den nächsten auszuführenden Prozess aus. bs 0424 ww6 wgs 09-05 SPEICHERVERWALTUNG In erster Linie Verwaltung des Virtuellen Speichers (Paging Supervisor) z.B. Schaffung eines neuen virtuellen Speichers bei LOGON Demand Paging, Verwaltung des realen Hauptspeicherplatzes: Auslagern / Einspeichern von Seiten vom / zum externen Seitenspeicher. Verwaltung des externen Seitenspeicherplatzes Flattern / Thrashing Shared Segments I Pages Überwacher Benutzer (z.B. UNIX PIPES) Page Data Sets Auxiliary Data Sets In z/OS und OS/390 müssen mindestens drei Page Datasets definiert werden; je einen für: • COMMON, für die CSA und ECSA (Common Page Data Set) • Pageable Link Pack Area, PLPA und EPLPA, (PLPA Page Data Set) und • mindestens ein LOCAL Page Dataset für die private areas des Address Spaces (Local Page Data Set). PLPA Page Data Sets The PLPA page data set is different from the common and local page data sets in that page-outs occur to it only during the system initialization process. During the initialization process, the PLPA is built by reading in the members of the SYS1.LPALIB data set. After the PLPA page data set has been built at initialization time, no further page-outs to it will be required until the next cold start. Page-ins will occur through page faults as modules in the PLPA are required for execution. bs 0714 ww6 wgs 09-02 Each frame of real storage will be given virtual storage characteristics when allocated to a program. Some of these characteristics are: Pageable Can the page in real storage be paged out? Swappable Can the page in real storage be swapped out? Fixed The page in real storage will not be paged out? Fetch Protected Can an unauthorized user read this page in real storage? Location Will the page be located above or below the 16 MB virtual address line and/or the 16 MB real address line? bs 0702 ww6 wgs 09-02 I/O Interferenzen bei Paging In der Zeit zwischen der Anforderung eines asynchronen I/O's und der Beendigung des eigentlichen Datentransfers darf keine Seitenersetzung auf den I/O Bufferseiten stattfinden. Lösung 1: I/O nur im Systembereich Es werden keine direkten I/O Operationen im Benutzerspeicher erlaubt. Alle I/O Buffer liegen im Systembereich. Dieser Bereich ist nicht der normalen Ersetzungsstrategie unterworfen. Nach Abschluß der eigentlichen I/O Operation werden die Daten nur im Speicher in den Benutzerbereich kopiert. Nachteil: Möglicherweise erheblicher Overhead. Kopieren des E/A Bereiches aus dem Benutzer Adressenraum In den Überwacher Adressenraum Page Fixing Durch Einführung eines sogenannten "lock-bits" werden Seiten gekennzeichnet, die nicht der Seitenersetzung unterworfen werden. Die Seiten werden im Speicher fixiert. Bei Anforderung einer asynchronen I/O Operation wird der Bufferbereich im Benutzerspeicher fixiert. Nach Beendigung der I/O Operation werden die Bufferseiten wieder freigegeben für normale Seitenersetzung. Problem: Damit kann ein Benutzer u.U. willkürlich viele reale Seiten blockieren. Wie wird die Systemintegrität und -stabilität gewährleistet? Beispiel für eine weitere Nutzung der Seitenfixierung Folgender Ablauf sei gegeben: 1. Ein Prozeß niedriger Priorität erzeugt einen Seitenfehler. 2. Der Ersetzungsalgorithmus bestimmt einen geeigneten Rahmen und führt den Seitenwechsel durch. 3. Der Prozeß wird in die Warteschlange für erneutes dispatching eingereiht. 4. Da der Prozeß eine niedrige Priorität hat, muß er u.U. lange Zeit warten. 5. Während dieser Zeit erzeugt ein Prozeß höherer Priorität einen Seitenfehler. 6. Der Seitenwechselalgorithmus findet den vorhin für den Prozeß niedriger Priorität belegten Rahmen unverändert und länger nicht benutzt. D.h. die Seite wird wieder ersetzt . Mit Hilfe des lock bits kann eine solche Situation verhindert werden. Solange eine Seite nicht mindestens einmal referiert wird, bleibt sie im Speicher fixiert. Problem: Wird das lock bit infolge eines Implementierungsfehlers nicht zurückgesetzt, so ist der reale Seitenrahmen unbenutzbar geworden. Abschalten der virtuellen Speicherverwaltung (Disable Virtual Storage Management) VAX Memory mapping enable bit im Map enable Register S/390 Bit 26 im Program Status Word Pentium Paging enable bit im Steuerregister 0 ar0501 wp wgs 12-93 Subpools Ein Subpool gruppiert logisch zueinander gehörige Virtual Storage Bereiche: • • • • • • Storage protect key Fetch protected Pageable Swappable Location above and below the 16 MB line Shareable by tasks bs 0703 ww6 wgs 09-02 Virtueller Speicher Virtual Storage bs 0715 ww6 Realer Externer Hauptspeicher Seitenspeicher Real Storage Auxiliary Storage wgs 09-02 Virtual Storage Manager Der Virtual Storage Manager (VSM) steuert die Zuordnung (allocation and deallocation) von Virtual Storage Er stellt der Systems Management Facility (SMF) Information über die Nutzung von Virtual Storage zur Verfügung. bs 0716 ww6 wgs 09-02 Real Storage Manager Aufgaben • Die Umsetzung von virtuellen in reale Adressen: • Die Verwaltung der Verfügbarkeit und Zugehörigkeit von Hauptspeicher-Rahmen. • Das Überwachen des Working Sets von Address Spaces. • Die Auflösung von Page Faults oder Seitenfehlern und das Veranlassen von Paging und Swapping. • Erstellen von Sement- und Seitentabellen für neue virtuelle Adressräume Auxiliary Storage Manager Der Auxiliary Storage Manager (ASM) ist für die Platz-Verwaltung in den Page und Swap Data Sets zuständig (paging und seapping). Der Auxiliary Storage Manager steuert ebenfalls die E/A Operationen zu den Page und Swap Data Sets. bs 0718 ww6 wgs 09-02 bs 0712 ww6 wgs 09-02 Fehlseitenunterbrechung Page fault Eine Fehlseitenunterbrechung (Page Fault) tritt auf, wenn eine virtuelle Adresse mit Hilfe der Dynamic Address Translation Hardware (DAT) übersetzt wird, und ein Eintrag in der Seiten- oder Segmenttafel die entsprechende Seite als nicht verfügbar markiert. Dies passiert vor allem dann, wenn diese Seite vor einiger Zeit auf den externen Seitenspeicher ausgelagert wurde, weil der Platz im Hauptspeicher von einem anderen Prozess gebraucht wurde, um eine Seite einzulagern (page stealing). bs 0707 ww6 wgs 09-02 Page Stealing The Page that has been least recently used Der Hauptspeicher (central storage) wird periodisch sequentiell abgetastet, um die Seiten zu finden, die längere Zeit nicht benutzt (referenziert) wurden (least recently used). Diese Seiten werden markiert, und die Markierungen auf einer auf einer available frame queue abgelegt. Wenn ein Prozess eine Seite benötigt, die sich nicht im Hauptspeicher befindet, wird der benötigte Platz geschaffen, dass eine der Seiten in der available frame queue auf den externen Seitenspeicher ausgelagert wird. Dieser Vorgang wird als Page Stealing bezeichnet. bs 0706 ww6 wgs 09-02 2 MByte Seitenwechsel Page stealing z/OS tries to keep an adequate supply of available real storage frames on hand. When a program refers to a page that is not in real storage, z/OS uses a real storage page frame from a supply of available frames. When this supply becomes low, z/OS uses page stealing to replenish it, that is, it takes a frame assigned to an active user and makes it available for other work. The decision to steal a particular page is based on the activity history of each page currently residing in a real storage frame. Pages that have not been active for a relatively long time are good candidates for page stealing. Q-Class Seitenauswahlalgorithmus Unreferenced Interval Count UIC Es existiert für jede Page ein Reference Bit, um zu ermitteln, wie häufig Pages an gefasst werden. Dieses Bit wird gesetzt, wenn die Page adressiert wird, und es wird regelmässig von Real Storage Manager (RSM) getestet. Bei dem Test wird das Bit wieder auf Null zurück gesetzt. RSM zählt, wie häufig dieses Bit auf 0 gesetzt ist und errechnet so für jede Seite den Unreferenced Interval Count (UIC). Der UIC ist dabei um so niedriger je häufiger Speicherseiten angefasst wurden. Wenn Pages ausgelagert werden müssen, werden diejenigen Pages mit dem höchsten UIC zuerst genommen. Der Address Space UIC wird aus den UICs der EinzelPages des Address Spaces berechnet. Dabei werden die Anzahl der Seiten nach Referenzhäufigkeiten eingeteilt, damit die Speicherbelastung für die Address Spaces ermittelt werden kann. An dieser Stelle arbeitet RSM mit dem System Resource Manager (SRM) zusammen. RSM sammelt die Daten, wertet sie aus und verwaltet den Working Set der Address Spaces. SRM ist heute ein Teil des Workload Manager. Damit unterliegt die Festlegung und Verwaltung des Working Set von Address Spaces der Zielerfüllung der Workloads auf dem System. Speicherschutz Speicherschutzschlüssel 4 Bit Programmstatuswort 20 Bit 12 Bit 4 Bit Adresse RÄ Speicherschutzschnellspeicher mit Hauptspeicherschlüsseln. Je 1 Schlüssel (4 Bit) pro 4096 Byte Block (plus Steuerbits, z.B. Referenzbit R und Änderungsbit Ä) ja Vergleich Speicherzugriff ok nein Programmunterbrechung es 0147 ww6 wgs 06-99 A storage key is associated with each 4 KB frame of storage. In addition to the four access control bits and the fetch protection bit, there are a reference bit and a change bit for every frame. The reference bit indicates if the page occupying the frame has been referenced. The change bit indicates if the contents of the page occupying the frame have been changed. SpeicherschutzSchlüssel 0 Nutzung Genutzt vor allem vom Betriebssystem Kernel. Erlaubt Zugriff auf den gesamten Speicher 1–7 von verschiedenen Subsystemen verwendet 8 Default für Anwendungen 9 CICS Speicherschutz Working Set Management Working set Der „Working Set“, auch als „Optimum Real Storage“ (ORS) bezeichnet, ist eine Menge von Ballungsräumen der Nutzung virtuellen Speicherplatzes, die sich während der Programm-ausführung nur langsam verschieben. Der Working Set ist eine Untermenge der aktuellen Seiten im Hauptspeicher, die mit einem spezifischen virtuellen Adressenraum assoziiert sind. Er besteht aus den: • in jüngster Vergangenheit angesprochenen Seiten • Seiten fixed im Hauptspeicher • Segment- und Seitentabellen bs 0710 ww6 wgs 09-02 Lokalität von Speicherzugriffen IBM Systems Journal, Vol. 10, No.3, Fig. 10, p. 198 FIFO Anomalie Gewisse Muster von Seitenreferenzen erzeugen beim FIFO Algorithmus mehr Fehlseitenunterbrechungen, wenn die Anzahl der verfügbaren Rahmen erhöht wird. Dieser Fall dürfte in der Praxix zwar nur selten auftreten, zeigt aber, welche unerwarteten Erscheinungen in komplexen Systemen möglich sind. bs 0803 ww6 wgs 11-02 Flattern Thrashing Annahme 1: Ein Prozeß ist aktiv und erhält nur wenig mehr freie Rahmen als unbedingt erforderlich. Annahme 2: Die CPU ist sehr gut ausgelastet mit sehr vielen konkurriernden Prozessen. Annahme 3: Mehrere konkurrierende Prozesse befinden sich im Zustand nach Annahme 1. Folge: Seitenfehlerrate wird ansteigen, da jeder Prozeß jedem anderen einschließlich sich selbst ständig die Seiten wegnimmt. Ergebnis: Die CPU ist plötzlich nur noch mit Seitenverwaltung beschäftigt und kommt nicht mehr zu produktiver Arbeit. Flattern bzw. Thrashing Die CPU Ausnutzung geht gegen Null. Seitenfehler - Begrenzung Bei Überschreiten der oberen Grenze werden solange Prozesse niedriger Priorität deaktiviert, bis die Seitenfehlerrate auf einen akzeptablen Wert sinkt bs 0720 ww6 wgs 09-02 Flattern (Thrashing) Exponentieller Mittelwert der Seitenwechsel/Zeiteinheit Abschaltniveau A Messpunkte Einschaltniveau E Zeit Anzahl der parallel laufenden Prozesse, Multiprogramming Set Zeit Anzahl der gleichzeitig (multiprogammiert) aktiven Prozesse (multiprogramming set) begrenzen if paging rate > maxvalue then drop process from queue bs 0719 ww6 wgs 09-02