Betriebssysteme - Prof. Spruth z/OS Enterprise Computing

Werbung
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
Herunterladen