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