Menu Close

Betriebssysteme (Vorlesung 13)

Skript-AnfangBS_6_SS2013 – Seite 31
Skript-EndeBS_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

  1. Der Speicher wird in Bereiche der Länge 2k aufgeteilt
  2. Zu Beginn gibt es nur einen Block, der den gesamten Speicher abdeckt
  3. 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
  4. Fordert nun ein Prozess eine bestimmte Menge Speicher an, so wird zur nächsthöheren Zweierpotenz aufgerundet und ein entsprechender Block gesucht.
  5. 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.
  6. Gibt es auch keinen Block doppelter Größe, wird ein Block vierfacher Größe gesucht usw.
  7. 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.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

Index