| Skript-Anfang | BS_6_SS2013 – Seite 31 |
|---|---|
| Skript-Ende | BS_6_SS2013 – Seite 66 |
Wie wählt man die optimale Seitengröße?
- MMU gibt die minimale Seitengröße vor
- Betriebssystem ermöglicht Seitengrößen beliebiger Wahl
- Zu große Seitengrößen → Viel Verschnitt, dafür kleine Tabelle
- Zu kleine Seitengrößen → Wenig Verschnitt, dafür viel Verwaltungsaufwand
Was ist die Interne Fragmentierung?
- Bei einer Verteilung von Daten auf Speicherblöcke können diese nur zum Teil gefüllt werden
- Beschreibt den Verschnitt bei der Reservierung
Was ist die Externe Fragmentierung?
- Zerstückelung eines Speicherraums
- Reservierte Speicherblöcke werden wieder freigegeben, wodurch Lücken entstehen, die unter Umständen nicht befüllt werden können
- Kann gleichzeitig mit der internen Fragmentierung auftreten
Was steht in der Seitentabelle?
- Seitenrahmen-Nummer
- r/m-Bits
- Zuordnung einert virtuellen Adresse zur realen Adresse
Was ist ein Seitenersetzungsverfahren?
- Es trifft die Auswahl, welche Seiten ersetzt werden bei Anforderungen
Aufgabe
Aufgabenstellung
- MMU hat 2KB (211 großen Seiten)
- 16KB Hauptspeicher sind maximal verfügbar
- Es steht eine 16 Bit-Adressierung für virtuelle Adressen zur Verfügung
Lösung
- Maximal Adressierbarer virtueller Speicher: 216 = 64KB
- Benötigter Platz für Auslagerungsdatei auf HDD: 48KB
- Aus welchen Komponenten bestehen virtuelle Adressen: Seitennummer und Offset
- Wie viel Bit sind diese groß: 5 Bit und 11 Bit (siehe Bits der Seitengröße)
- Wie groß ist die Seitentabelle in der MMU: 64KB/2KB = 32 Einträge
Least Recently Used (LRU)
- Super Algorithmus, leider nicht effizient genug
Buddy-Algorithmus
- Der Speicher wird in Bereiche der Länge 2k aufgeteilt
- Zu Beginn gibt es nur einen Block, der den gesamten Speicher abdeckt
- Wenn die Größe des Speichers sich nicht als Zweierpotenz ausdrücken lässt, können es auch mehrere Blöcke unterschiedlicher Größe sein
- Fordert nun ein Prozess eine bestimmte Menge Speicher an, so wird zur nächsthöheren Zweierpotenz aufgerundet und ein entsprechender Block gesucht.
- Falls es noch keinen Block dieser Größe gibt, wird nach einem Block doppelter Größe gesucht, der dann in zwei Hälften (bzw. Buddies) aufgeteilt wird, und einer dieser Blöcke wird dem Prozess zugewiesen.
- Gibt es auch keinen Block doppelter Größe, wird ein Block vierfacher Größe gesucht usw.
- Sobald Speicher wieder freigegeben wird, wird geprüft, ob zwei durch Teilung entstandene Buddies gleicher Größe sich wieder zu einem größeren Block zusammenfassen lassen.