Was ist der virtuelle Speicher?
Virtueller Speicher:
Grundidee:
Programmcode, Daten und Stack dürfen zusammen größer sein als der verfügbare Arbeitsspeicher
Betriebssystem hält die benötigten Teile im Arbeitsspeicher und die anderen Teile liegen auf der Festplatte
Kombinierbar mit Multiprogrammierung:
Teile verschiedener Programme liegen gleichzeitig im Hauptspeicher
Was ist virtuelle Adressierung?
Virtuelle Adressierung
virtuelle (logische) Adressen und physikalische Adressen können unterschiedlich sein
Virtuelle Adressen werden mittels einer Adressabbildung in physikalische umgesetzt
Es wird spezielle Hardware benötigt
(MMU - memory management unit)
Verwaltung obliegt dem Betriebssystem
Was sind Speicherverwaltungseinheiten?
Speicherverwaltungseinheiten:
Zugriffskontrolle (Speicherschutz)
Übersetzungstabelle mit Adresszuordnungen und Zugriffsrechten (Deskriptoren)
TLB (translation lookaside buffer)
interner Cache der MMU mit nur dem jeweils gerade benötigten Teil der Übersetzungstabelle.
Was bedeutet es, dass das Betriebssystem die Übersetzungstabelle erstellen und pflegen muss?
Globaler Teil (für das Betriebssystem selbst)
Lokaler Teil (jeweils einer für jeden Prozess)
Nur das Betriebssystem "weiß", in welchen physikalischen Speicherbereich es sich selbst oder einen Prozess geladen hat
Bei einem Kontextwechsel muss das Betriebssystem auch die prozessbezogenen Übersetzungstabellen umschalten und den TLB löschen
Was ist Present/Absent-Bit?
Was ist ein Seitenfehler?
Present/Absent-Bit - Seite im Hauptspeicher
Gibt an, ob eine virtuelle Seite auf den physischen Speicher abgebildet wird oder nicht
Seitenfehler (page fault)
Zugriff auf eine virtuelle Seite, die momentan nicht im Arbeitsspeicher liegt, sondern erst geladen (eingelagert) werden muss.
Was sind Vorteile virtueller Speichertechnik?
Prozesse müssen nicht komplett speicherresident sein, um ablaufen zu können
Lineare Speicheradressierung, keine Fragmentierung aus Programmierersicht
Beim Prozesswechsel behält ein Prozess seine hauptspeicherresidenten Seiten. Er verliert sie erst, wenn sie von der Verwaltung des realen Speichers verdrängt werden
Anwenderprogramme können den vollen virtuellen Adressraum nutzen, wenn genügend Festplattenspeicher vorhanden ist
Der tatsächlich zugewiesene reale Speicherplatz ändert sich dynamisch entspr. Angebot u. Nachfrage
Speicherschutzmechanismen sind einfach zu realisieren (Kerneladressraum-Schutz, Schutz vor anderen Prozessen)
Welche 4 Strategien gibt es zur Verwaltung von virtuellem Speicher?
Abrufstrategie (Fetch Policy)
Demand Paging oder
Prepaging
Speicherzuteilungsstrategie (Placement Policy)
Austauschstrategie (Replacement Policy)
Aufräumstrategie (Cleaning Policy)
Wie werden Seitenfehler behandelt?
Behandlung von Seitenfehlern:
Sichere Register des betroffenen Prozesses und blockiere ihn
Ermittle Adresse der fehlenden Seite
Wähle freien Rahmen aus bzw. wenn keiner existiert einen belegten
Sichere ggf. belegten Rahmen im Hintergrundspeicher
Führe Prozesswechsel herbei, wenn es rechenbereite Prozesse gibt
Lade benötigte Seite aus dem Hintergrundspeicher in den Rahmen
Aktualisiere die Umsetzungstabelle
Wecke den betroffenen Prozess und füge ihn in die „bereit" - Schlange ein
Extremfälle:
Rechner vorwiegend mit Seitenwechseln beschäftigt
=> "thrashing" (engl.: Prügel, komplette Niederlage)
Was sind Abrufstrategien?
"Paging" Seitenaustausch
für den Nutzer transparent (d.h. wird von ihm nicht bemerkt)
Generelle Strategien, wann Paging stattfinden soll:
Demand Paging:
Seiten werden nur dann gewechselt, wenn auf sie aktuell zugegriffen werden soll.
Pre-Paging:
Seiten werden ausgetauscht, auf die in der Zukunft ein Zugriff erwartet wird.
Page Clustering:
Mehrere zusammengehörende Seiten werden gemeinsam ausgetauscht.
Was sind Entladestrategien (Cleaning)?
Legt den Zeitpunkt fest, wann eine modifizierte Seite auf die Paging-Area geschrieben wird
Varianten:
Demand-Cleaning:
Bei Bedarf
Vorteil: Seite lang im Hauptspeicher
Nachteil: Verzögerung bei Seitenwechsel
Precleaning:
Präventives Zurückschreiben, wenn Zeit ist
Vorteil: Frames in der Regel verfügbar
Page-Buffering:
Listen verwalten
Modified List: Wird zwischengepuffert
Unmodified List: Für Entladen freigegeben
Heute üblich (siehe Windows)
Wie läuft eine Adresstransformation ab?
Was sind Seitenersetzungsstrategien?
Die Strategie zur Auswahl dieser zu verdrängende Seite wird in einem Seitenersetzungsalgorithmus festgelegt
Mögliche „bedarfsgerechte“ Strategien (Demand-Paging):
First-In, First-Out (FIFO)
Least-Recently-Used (LRU)
Not-Recently-Used (NRU)
Not-Frequently-Used (NFU)
Second-Chance, Clock-Page
Kurzzeitstatistiken erforderlich: Speicherung in den Seitentabelleneinträgen
Welche 4 Arten der Seitenersetzungsstrategien gibt es?
FIFO (First In First Out):
Seite, die am längsten im Speicher war
LRU (Least Recently Used):
Seite, die am längsten nicht mehr zugegriffen wurde
Second Chance
Clock Page
Was ist die Seitenersetzungsstrategien FIFO?
First-In First-Out:
Die älteste Seite wird ersetzt
Vorteil:
Einfach zu implementieren, geringer Overhead, in konkreten Betriebssystemen im Einsatz
FIFO-Liste über alle Seitentabelleneinträge
Recht einfach zu implementieren
Nachteil:
Wirft möglicherweise wichtige Seiten aus dem Hauptspeicher
Was ist die Seitenersetzungsstrategien LRU?
Least-Recently-Used
Die Seite wird ersetzt, deren letzte Nutzung zeitlich am weitesten zurückliegt
Der Zeitpunkt, seitdem die Seite unbenutzt ist, wird gemessen
→ quantitative Zeitmessung notwendig
liefert gute Ergebnisse
Verfahren ist aufwändig zu realisieren:
Eigene Hardware (MMU) zur Berechnung sinnvoll, aber selten vorhanden
Was ist die Seitenersetzungsstrategien Second Chance?
Verbesserung von FIFO
Ist älteste Seite schon benutzt, wird sie nicht ausgelagert, sondern an das Ende der Liste gehängt
Achtung: Einlagerung nicht gleich Nutzung!
Wenn alle Seiten schon referenziert wurden, entspricht die Auswahl der zu ersetzenden Seiten dem FIFO-Algorithmus
Was ist die Seitenersetzungsstrategien Clock Page?
Implementierungsverbesserung zu Second Chance
Seiten werden in zirkulierender Liste wie eine Uhr verwaltet
Bei einem Seitenfehler wird immer die Seite untersucht, auf die gerade der „Uhrzeiger“ verweist, der Seitentabelleneintrag wird nicht umgehängt
Clock Page Algorithmus
Bei page fault:
Seite, auf die Zeiger verweist wird ausgelagert, falls R-Bit = 0
Wenn R = 1, wird R = 0 gesetzt und der Zeiger auf die nächste Seite gestellt
Das geht so lange, bis eine Seite mit R = 0 gefunden wird
Was für Alternativen gibt es zur virtuellen Speicherung?
Virtuelle Speicherung – Alternativen:
Auslagerung von ganzen Prozessen
Auslagerung von Prozessen, die ...
ohnehin warten
schon lange gerechnet haben
schlechte Priorität haben
besonders hohen Speicherbedarf haben
Wie funktioniert die Speicherverwaltung unter Linux?
Wie unter Android?
Unter Linux:
Fetch-Policy:
Demand Paging ohne Prepaging
Replacement- und Cleaning-Strategie:
Replacement über eine Art Clock-Page-Algorithmus
Placement-Policy:
Speicherbelegung erfolgt über Buddy-Technik
Unter Android:
Im Wesentlichen identisch mit Linux mit dem Fokus auf kleine Geräte und Speichersysteme
Adressumsetzung:
Zweistufige Seitentabelle
Strategien:
Demand Paging
Cleaning über eine Art Page Buffering
Wie funktioniert die Speicherverwaltung unter Windows?
Nutzung von Demand Paging
Ab Windows 2003 wird auch Prepaging verwendet
Replacement- and Cleaning-Policy:
Kombination aus lokaler und globaler Ersetzungsstrategie
Clock-Page bei Einprozessormaschinen
Nicht näher erläutert
Was ist Virtualisierung?
Allgemeine Definition:
Unter Virtualisierung versteht man Methoden zur Abstraktion von Ressourcen mit Hilfe von Software
Virtuelle Maschine verhält sich wie die reale Maschine
Diverse Varianten:
Virtuelle Computer: Server- und Desktopvirtualisierung (= Betriebssystembzw. Plattformvirtualisierung)
Storage Virtualisierung
Anwendungsvirtualisierung
Virtuelle Prozessumgebungen (Prozessmodell und virtueller Speicher)
Virtuelle Prozessoren: Java Virtual Machine (JVM)
Netzwerkvirtualisierung (vLAN)
Was ist die Terminologie von Betriebssystemvirtualisierung?
Reale Maschine
Virtuelle Maschine (VM)
Hostbetriebssystem
Synonyme: Wirt, Host, Gastgeberbetriebssystem oder Hostsystem
Gastbetriebssystem
Synonyme: Gast, Guest oder Gastsystem
Virtual Machine Monitor (VMM)
Synonym: Hypervisor
Wo ist der Unterschied zwischen Emulation und Virtualisierung?
Emulation:
Komplette Nachbildung der Hardware in Software
Virtualisierung:
Geringer Teil der Befehle müssen nachgebildet werden, die meisten Befehle laufen direkt auf der Hardware (direkter Aufruf aus VM aus)
Was sind Vorteile und Nachteile der Virtualisierung?
Vorteile:
Weniger Hardware notwendig
bessere Hardwareauslastung durch Serverkonsolidierung
Heutige Server sind meist bei weitem nicht ausgelastet
Weniger Leistungsaufnahme für Rechner und Klimatisierung
Flexibilität bei Aufbau einer Infrastruktur, schnelle Bereitstellung wird unterstützt, VMs beliebig vervielfältigbar und archivierbar
Vereinfachte Wartung, Life-Migration, unterbrechungsfrei, auch Technologiewechsel ohne Betriebsunterbrechung
Unterstützt Verfügbarkeits- und Ausfallsicherheitskonzepte
Unterstützung auch historischer Anwendungen
Nachteile:
Geringere Leistung als reale Hardware
Overhead von 5 bis 10 %
Schwierig bei spezieller Hardwareunterstützung
z.B. Hardware-Dongles, spezielle Grafikkarten
Bei Ausfall eines Serverrechners fallen gleich mehrere virtuelle Rechner aus
→ hohe Anforderungen an Ausfallkonzepte und Redundanz
Was ist Betriebssystem-Virtualisierung?
der geringe Verwaltungsaufwand.
Anwendung läuft in einer isolierten Umgebung
Anwendungsfälle
Internet-Service-Provider, die (virtuelle) Root-Server oder Webdienste anbieten
automatisierte Installation komplexer Anwendungssoftware in einer definierten Umgebung
Beispiele für Virtualisierungslösungen:
Docker
das Betriebssystem Solaris von Oracle (vormals Sun Microsystems)
OpenVZ für Linux
Linux-VServer, das Betriebssystem FreeBSD
Virtuozzo12
FreeVPS
Was ist Speicher-Virtualisierung?
Was sind RAID-Systeme?
1988 von David Patterson, Garth Gibson und Randy Katz eingeführte Methode, um mehrere kleinere Laufwerke zu einem mit Fehlererkennungs- und Fehlerkorrekturmechanismen ausgestatteten, ausfallgesicherten Verbund zusammenzuschalten.
Titel des Papers: "A Case for Redundant Arrays of Inexpensive Disks (RAID)"
Sie führten ursprünglich 5 Levels ein RAID 1 bis RAID 5.
Heute reicht die Bandbreite der verfügbaren Level von RAID 0 bis RAID 7, und kombinierte Technologien wie RAID 0+1, RAID 1+0 oder RAID 50.
Was sind RAID-Systeme ohne Fehlerkorrekturen?
RAID 1 bietet zwar Redundanz aber die Kosten sind hoch und die Performance geht zurück.
Besser die Einführung von Fehlerkorrekturverfahren:
Last changeda year ago