Betriebssysteme it-Akademie Bayern z/OS und OS/390 Lehrgang 2008 Prof. Dr.-Ing. Wilhelm G. Spruth Teil 7c Swapping and Block Paging el0100 ww © copyright W. G. Spruth, 10-2005 wgs 10-05 Ausführungsmodell für Transaktionen Prozesse und Transaktionen verbringen den größten Teil der Verarbeitungsdauer mit dem Abschluss von E/A Operationen (Plattenspeicher). Ohne Multiprogrammierung ist kein sinnvoller C/S Betrieb möglich. Zwei Alternativen: • Mehrfache Prozesse in eigenen virtuellen Adressenräumen • Threads Annahme: Benutzer logged sich um 8:00 in CICS ein, startet damit einen einzigen Prozess, der den ganzen Tag läuft. Er startet im Laufe des Tages viele conversational Transactions. Zwischen den Tastatureingaben einer conversational Transactions ist sein Prozess waiting, genauso wie bei Disk I/O. Zwischen Transaktionen ist er inaktiv. Bei pseudoconversationaler Verarbeitung ist der Prozess zwischen Tastatureingaben inaktiv. Auslagern von Prozessen Paging and Swapping Paging is the movement of one page at a time into or out of central storage. Swapping is the process of making an address space either non-dispatchable or dispatchable by moving the pages associated with that address space, in a group, either out of or into central storage. bs 0704 ww6 wgs 09-02 Swapping and the working set Swapping is the process of transferring all of the pages of an address space between real storage and auxiliary storage. A swapped-in address space is active, having pages in real storage frames and pages in auxiliary storage slots. A swapped-out address space is inactive; the address space resides on auxiliary storage and cannot execute until it is swapped in. While only a subset of the address space’s pages (known as its working set) would likely be in real storage at any time, swapping effectively moves the entire address space. It is one of several methods that z/OS uses to balance the system workload and ensure that an adequate supply of available real storage frames is maintained. Swapping is performed by the System Resource Manager (SRM) component, in response to recommendations from the Workload Manager (WLM) component. A swap-out is the movement of the private areas of an address space from central storage to auxiliary storage or expanded storage. In z/Architecture mode, swapping to expanded storage is not applicable. The System Resources Manager (SRM) component of z/OS and OS/390 determines the need for a swap-out and selects the appropriate address space. Die Swapout Seiten werden als Subpool behandelt. bs 0709 ww6 wgs 09-02 Swap-in A swap-in reestablishes an address space that was swapped out. Central storage frames are assigned and the segment and page tables are built. bs 0711 ww6 wgs 09-02 Block Paging Block paging is a method to improve paging efficiency by attempting to group commonly used pages together and page them as one large block. There are two kinds of block paging, explicit block and implicit block paging. bs 0708 ww6 wgs 09-02 Block Paging Beispiel: Root Phase eines Compilers oder Editors. Wenn die erste Seite aus diesem Block referiert wird, erzwingt das Block Paging das Laden des gesamten Blocks. Da mit sehr hoher Wahrscheinlichkeit zu erwarten ist, dass fast alle Seiten des Blocks sowieso referiert werden, wird dadurch den möglichen Seitenfehlern vorgebeugt. Der Gewinn liegt in den eingesparten mehrfachen Seitenfehlern. A B A A B B B B A B Zeit Block Paging, Prepaging A = Aufsetzen der EIA Operation, z.B. Plattenarmzugriff = 20 ms B = Datentransfer, z.B. 4KByte mit 40 MByte/s - 0.1 ms Swap-set, z.B. = 16 Seiten Logical Swap-out Zur Oueue-drop Zeit 1. Prozess Æ Swap List; seine Seiten Æ Swap set 2. Seitentafel ungültig 3. Seiten bleiben im Hauptspeicher Zur Queue-add Zeit 1. Seiten hoffentlich noch im Hauptspeicher 2. Logical Swap-in BLOCK - PAGING LEISTUNGSVERHALTEN Demand Paging Block Paging 1 10 Seitendurchsatz pro Zugriffsarm 15 /s 100 /s Ausführungszeit 29 ms 48 ms Zeit pro Seite 29 ms 4.8 ms Seiten E / A Operationen 100 % 40-48 % Anzahl Seiten übertragen 100 % 140-160 % Anzahl übertragene Seiten pro E / A Operation Paging und Swapping Beim normalen Paging werden ein bis zwei Hauptspeicherseiten aus der 'Private Area' auf DASD in die Local Page Dateien ausgelagert (Page-out). Bei Bedarf werden diese ausgelagerten Speicherseiten wieder in den Hauptspeicher zurückgeholt (Demand Paging oder Page-in). Auch Swapping ist in z/OS ein kontinuierticher Prozess. Die Aus- bzw. Einlagerung erfolgt hierbei in Mengen von 12 Speicherseiten auf einmal. Intern werden die Page Datasets in der Paging Activity Reference Table (PART) repräsentiert. Jedem Dataset entspricht ein PART Entry (PARTE), der u.a. die Device-Information und I/OKontrollblöcke des Page Datasets enthält. Wegen des grundsätzlich vorgesehenen Duplexing des PLPA- und COMMON-Page Datasets enthält die PART mindestens vier Einträge. Page Datasets werden im IEASYSxx-Member der SYS1.PARMLIB definiert. Für Swap Datasets gelten identische Strukturen. Es müssen jedoch keine Swap Datasets definiert werden, die Page Datasets werden dann sowohl für Single Paging als auch für Swapping genutzt. Mit dem Operator Command d asm kann man sich sehr schnell einen Überblick über die aktuelle Paging Konfiguration verschaffen. Paging The „Free List“ (Available Frame Queue, AFQ) is a queue of frames that are available for assignment. bs 0705 ww6 wgs 09-02 Prozess Zustände in einem multiprogrammierten Rechner Multiprogramming Set In-Queue Prozesse Verfügen über Hauptspeicherplatz (Rahmen) Können im Prinzip jederzeit laufen Multiprogramming Set = Q1 Q1 hat seine Zeitscheibe noch nicht aufgebraucht Q2 hat seine Zeitscheibe bereits aufgebraucht Bei Zeitscheibenende werden Q1 Prozesse „dropped from Queue“;werden removed from Multiprogramming Set Queue Drop = Removal from Multiprogramming Set Mitgliedschaft im Multiprogramming Set Aktive Prozesse verfügen entweder über (genügend) Rahmen im Hauptspeicher (Multiprogramming Set) , oder sind auf einem externen Seitenspeicher ausgelagert. Von den Prozessen des Multiprogramming Set ist (bei einer CPU) einer im Status "laufend" (hat die Vefügungsgewalt über die Zentraleinheit), während die übrigen "wartend" oder "ausführbar" sind. Prozesse des Multiprogramming Set bezeichnet man als "In-Queue" Prozesse. Ein "Queue-drop" tritt ein, wenn ein Prozess aus dem Multiprogramming Set entfernt wird (der Prozess wird ausgelagert, oder die Transaktion ist abgeschlossen, und der Prozess wird inaktiv). Ein "Queueadd" findet statt, wenn ein ausgelagerter Prozess wieder reaktiviert, und damit Teil des Multiprogramming Sets wird, oder wenn ein bis dahin inaktiver Prozess eine neue Transaktion startet. In einem multiprogrammierten System wechselt die Verfügungsgewalt über die Zentraleinheit zwischen den Prozessen des Multiprogramming Set. Hat einer von ihnen seine Zeitscheibe aufgebraucht, so wird er aus dem Multiprogramming Set entfernt (Queue-drop) und in den Status "ausgelagert" versetzt (er verliert einen Teil oder alle seine Rahmen). Dafür kann ein anderer (z.B. ausgelagerter) Prozess jetzt Teil des Multiprogramming Sets werden. (Queue-add). Normalerweise sind es Out-of-Queue Prozesse, die ihre Rahmen verlieren. Ein "Page-Steal" liegt vor, wenn ein InQueue Prozess einen Rahmen verliert. WGS 4-93 Anzahl der Fehlseitenunterbrechungen zur Queue-add Zeit Annahme: Ein ausgelagerter Prozess wird neu gestartet. Je mehr Seiten sich noch im Hauptspeicher befinden, umso weniger Fehlseitenunterbrechungen entstehen zu Beginn der neuen Zeitscheibe Zur Queue Drop Zeit wird bei allen Rahmen des Prozesses R = 0 gesetzt. (Hoffentlich bleiben sie im Hauptspeicher, bis eine neue Transaktion anfängt.) In-queue Prozesse haben 1 "Core Table Scan Periode" Zeit, um R = 1 zu setzen. Nach 1.5 Core Table Scan Perioden (Durchschnitt) gehen Rahmen-÷ Free List. Out-of-queue Prozesse verlieren eine Seite nach durchschnittlich 1/2 Core Table Scan Periode. Quelle: W.H. Tetzlaff, A Page Swaping Prototype IBM System Journal, Vol 26, No 2. 1987, p.215 Dynamisches Block Paging Zur Queue-drop Zeit werden diejenigen Seiten, die während des letzten Queue-stays benutzt (referenced) wurden, als Working Set neu definiert. Die restlichen Seiten wandern in die Free List (Trimmed Pages). Die benutzten Seiten (die Seiten des neu definierten Working Sets) wandern in den Swap Set. Alle diese Seiten des Prozesses erleiden ein "logisches" Swap-out. Alle ausgelagerten Prozesse sind in einer FIFO Swap List eingetragen. Hat die Free List Bedarf an zusätzliche Seiten, so wird aus dem Swap Set eine "Big Page" (z.B. 16 Seiten) physikalisch auf einen externen Seitenspeicher ausgelagert. Es werden alle Big Pages eines Prozesses physikalisch ausgelagert, ehe der Vorrat des nächsten logisch ausgelagerten Prozesses angegriffen werden. Mit viel Glück sind die Seiten eines (logisch) ausgelagerten Prozesses bei einem erneuten Queue-add alle noch im Swap Set. Es erfolgt ein "logisches" Swap-in. Sind die Seiten jedoch in der Zwischenzeit bereits physikalisch auf einen externen Seitenspeicher ausgelagert worden, so werden alle zum redefinierten Working Set gehörigen Seiten zur Queue-add Zeit geschlossen in den Hauptspeicher gebracht (Prepaging). v1508 WGS 4-93 externer SeitenSpeicher Swapping Device 1. Für zusätzlichen Bedarf an Hauptspeicherrahmen steht zunächst die Free List zur Verfügung. 2. Sinkt die Zahl der Rahmen in der Free List unter einen kritschen Wert, so wird 1 Swap Set (z.B. = 16 Seiten, Big Page) auf den Swapping Device (Plattenspeicher) ausgelagert (physical Swap-out). Der entsprechende Prozess steht in der Swap List. Ein spezifischer Prozess verliert alle Swap Sets, ehe der nächste in der Swap List betroffen wird. Wird der betroffene Prozess wieder aktiv, erfolgt zum Anfang ein physikalisches Swap-in. 3. Ist auch der Swap Set leer, erfolgt ein Page Steal mit Hilfe des Vorrückens des Scan Pointers. Externer Seitenspeicher Rahmentafel Free List trimmed pages Swap Sets Scan Pointer Working Set pages R Swap List Der Scan Pointer wird um +1 bei jedem Seitenzugrihh hochgezählt. das dortige R-Bit wird auf 0 gesetzt. Im Eintrag der referenzierten Seite wird das R-Bit auf 1 gesetzt. In der Free List stehen Seiten, deren R-Bit = 0 ist. Sinkt die Anzahl der Seiten in der Free List unter einem kritischen wert, so wird 1 Swap Set (z.B. 16 Seiten) auf den externen Seitenspeicher ausgelagert (block Paging, physical Swap-Out. Der entsprechende Prozess steht in der Swap List. Ist auch der Swap Set leer, erfolgt ein Page Steal es0906 ww6 wgs 10-02 Kommunikation zwischen virtuellen Adressenräumen Mehrfache virtuelle Speicher mit “Shared Segments” Alternativen: Queues Pipes IUCV (Inter Unser Communication Vehicle) Hiper Sockets Gemeinsam genutzte Seitentafel Aufteilung des Unix virtuellen Speichers