84
Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

Embed Size (px)

Citation preview

Page 1: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

UniversitätKarlsruhe (TH)

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Kapitel 3

Segment- und Puffer-Verwaltung

Page 2: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

2

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Gegenstand des Kapitels

Mengenorientiertes Datenmodell

Datenmodell

Dateien

Dateiverwaltung

Geräteschnittstelle

Anfragebearbeitung

Satzorientiertes Datenmodell

Speicherstruktur

Schneller Transport zwischen Haupt- und Hintergrundspeicher

Hauptspeicherseiten u. Segmente

Segment- u. Pufferverwaltung Bevorratung von Daten im Hauptspeicher (rechtzeitige Bereitstellung vor Benutzung)

Transparenter homogener Speicher Datentypen:

Seite = feste Anzahl von BytesSegment = var. Anzahl von Seiten

Operatoren:Anforderung/Freigabe von SeitenSegmente anlegen/öffnen/schließen

Datentypen:Block = feste Anzahl von BytesDatei = variable Anzahl v. Blöcken

Operatoren: Dateien anlegen/öffnen/schließen Lesen/Schreiben von Blöcken

Geräte-E/A

Satz- u. Satzmengenverwaltung

Satzzugriffsstrukturen

Zugriffsschicht

Vorschau auf zukünftig benötigte Daten

Vermeiden nicht aktuell benötigter Daten

Datentypen:Sätze und Satzmengen

Operatoren:Operatoren auf Sätzen

Datentypen:Satzmengen

Operatoren:Operatoren auf Mengen

Datentypen:phys. Zugriffsstrukturen auf Sätze

Operatoren:seq. Durchlauf, gezielte Suche

Optimaler Einsatz der logischen Ressourcen

Performanz

Page 3: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

3

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Kapitel 3.1Kapitel 3.1

Struktur: Segmente und SeitenStruktur: Segmente und Seiten

Page 4: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

4

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Segmente vs. Dateien

Struktur: Segmente mit Seiten Seiten sind nichtflüchtig Keine Differenzierung zwischen

Haupt- und Hintergrundspeicher Verdeckter Datentransport

zwischen Haupt- und Hintergrundspeicher

Performanz: Erzielen einer gleichmäßigen Zugriffszeit, möglichst weit unter den Hintergrundspeicher-zugriffszeiten liegend

Skalierbarkeit durch dynamisches Wachstum und Schrumpfen

Zuverlässigkeit: Verlustfreiheit

Struktur: Dateien mit log. Blöcken

Blöcke sind nichtflüchtig Speicherung im

Hintergrundspeicher, Verarbeitung im Hauptspeicher Kontrollierter Datentransport

zwischen Haupt- und Hintergrundspeicher

Blockbezogene Performanzüberlegungen

Skalierbarkeit durch dynamisches Wachstum und Schrumpfen

Basis-Zuverlässigkeit

Page 5: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

5

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Segmenttypen (1)

Segmenttyp: Klassifizierung nach zusätzlichen Eigenschaften.

Segmenttyp

Eigenschaft 1 2 3 4 5

Benutzung öffentlich privat privat privat privat

Lebensdauer dauerhaft dauerhaft dauerhaft dauerhaft temporär

Öffnen und Schließen

automatisch explizit durch Benutzer

Wiederherstlg. im Fehlerfall

automatischexplizit d. Benutzer

nicht möglich

steigende Performanz

abnehmender Verwaltungsaufwand

Page 6: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

6

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Segmenttypen (2)

Segmenttyp: Klassifizierung nach zusätzlichen Eigenschaften.

Segmenttyp

Eigenschaft 1 2 3 4 5

Benutzung öffentlich privat privat privat privat

Lebensdauer dauerhaft dauerhaft dauerhaft dauerhaft temporär

Öffnen und Schließen

automatisch explizit durch Benutzer

Wiederherstlg. im Fehlerfall

automatischexplizit d. Benutzer

nicht möglich

zur Speicherung von Nutzerdaten, die gemeinsamen (konkurrierenden) Zugriff erlauben

zur Speicherung von Systemdaten (Loginformation, Leistungs- und Abrechnungsdaten)

für spezielle Aufgaben, bspw. für die Sortierung einer Zwischenrelation.

Page 7: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

7

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Abbildung von Segmenten auf Dateien

Struktur: Segmente mit Seiten Seiten sind nichtflüchtig Keine Differenzierung zwischen

Haupt- und Hintergrundspeicher Verdeckter Datentransport

zwischen Haupt- und Hintergrundspeicher

Performanz: Erzielen einer gleichmäßigen Zugriffszeit, möglichst weit unter den Hintergrundspeicher-zugriffszeiten liegend

Skalierbarkeit durch dynamisches Wachstum und Schrumpfen

Zuverlässigkeit: Verlustfreiheit

Struktur: Dateien mit log. Blöcken

Blöcke sind nichtflüchtig Speicherung im

Hintergrundspeicher, Verarbeitung im Hauptspeicher Kontrollierter Datentransport

zwischen Haupt- und Hintergrundspeicher

Blockbezogene Performanzüberlegungen

Skalierbarkeit durch dynamisches Wachstum und Schrumpfen

Basis-Zuverlässigkeit

1:1 oder n:1

1:1

Für Performanzbetrachtungen behalte deshalb im Hinterkopf: Seiten sind Transporteinheiten

Bei einer allgemeineren Beziehung: Zusätzlicher,

hoher Verwaltungsaufwand

Page 8: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

8

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

1

1..

Zusammenhänge

Physische Platte

Partition

Zylinder Spur Sektor

Datei Log. Blockenthält ▶

1..

1..

1

1..

1

enthält ▶

1 1..enthält ▶

1 1..enthält ▶

1 1..

1

1repräsentiert

durch▼

Segment Seiteenthält ▶

1..1..

1

1repräsentiertdurch

▼ 1

liegt in▼

umfasst

umfasst▼

▲gehört zu

▲gehört zu

Page 9: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

9

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Segmentorganisation

Fazit: Ein Segment ist ein linearer logischer Adressraum mit sichtbaren Seitengrenzen. Operatoren ähnlich wie bei Dateien: Definieren, Freigeben,

Öffnen und Schließen von Segmenten.

Seiten sind die atomaren Zugriffseinheiten für Segmente. Alle Seiten eines Segments haben die selbe Größe.

Innerhalb eines Segments werden Seiten adressiert.

Operatoren auf Seiten komplizierter siehe Pufferverwaltung.

Page 10: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

10

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Direkte Seitenabbildung (1) Prinzip:

Ein Segment wird auf eine Menge von Blöcken einer Datei abgebildet, die einen zusammenhängenden Adressbereich umfassen (Beispiel: Block 1000 - Block 1800).

Sei k+1 der erste Block, der für das Segment S reserviert ist.

Dann gilt: Seite Pi wird auf Block Bk+i gespeichert.

Beurteilung: Einfache Verwaltung bei Segment:Datei = 1:1. Dagegen bei Segment:Datei = n:1

Reservierung von Blöcken bei Erzeugen eines Segments erforderlich, daher kein dynamisches Wachstum des einzelnen Segments (außer dem letzten) möglich.

Effizienter sequenzieller Zugriff auf eine Folge von Seiten, sofern nicht zu viele Transaktionen verzahnt ablaufen.

Page 11: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

11

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

B2

Bk+2

B3

Bk+3

B4

...

...

Bk+n

Bk

B1

Bk+1

S1

S2

P1 P2 P3 ... Pk P1‘ P2‘ P3‘ ... Pn‘

Segment S1

Segment S2

Direkte Seitenabbildung (2)

Page 12: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

12

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Indirekte Seitenabbildung (1)

Prinzip (Indirektion): Blöcke werden Seiten nicht direkt (statisch) zugeordnet,

sondern indirekt über eine Seitentabelle. Jedes Segment erhält eine eigene Seitentabelle. Die Seitentabelle zu einem Segment S enthält für jede Seite

von S einen Eintrag; der i-te Eintrag der Seitentabelle enthält die Nummer des Blocks, auf der Seite Pi gespeichert ist.

Enthält die Seitentabelle eine ungültige Blocknummer (bspw. 0), dann ist die entsprechende Seite leer (sie belegt dann auch keinen Block auf der Platte).

Page 13: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

13

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

B2

Bk+2

B3

Bk+3

B4

...

B5

...

Bk+n

Bk

B1

Bk+1

P1 P2 P3 ... Pk P1‘ P2‘ P3‘ ... Pn‘

Segment S1

Segment S2

B2 B4 B5 ... Bk+2 B1 Bk B3 ... Bk+3

Seitentabelle von S1

Seitentabelle von S2

Indirekte Seitenabbildung (2)

Page 14: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

14

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Beurteilung: Bessere Lösung bei Segment:Datei = n:1, da dynamische

Speicherausnutzung. Jedoch: Die Seitentabelle muss dauerhaft gespeichert

werden, d.h. sie muss ebenfalls auf Blöcke der Platte abgebildet werden.

Bei großen Segmenten kann ein Seitenzugriff zu zwei Blockzugriffen führen, da ggf. erst der eintragsrelevante Teil der Seitentabelle eingelagert werden muss.

Im schlimmsten Fall führt dies zu doppelten Zugriffskosten im Vergleich zur direkten Seitenadressierung.

Schlechte Leistung bei sequenziellem Zugriff während niedriger Transaktionslast.

Abhilfe: Allokation von Blockgruppen statt einzelner Blöcke. Freispeicherverwaltung erforderlich (üblich: Bitliste).

Indirekte Seitenabbildung (3)

Page 15: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

15

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Kapitel 3.2Kapitel 3.2

Dynamik: PufferorganisationDynamik: Pufferorganisation

Page 16: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

16

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Transaktionen in der Architektur

Mengenorientiertes Datenmodell

Anfragebearbeitung

Satzorientiertes Datenmodell

Satz- u. Satzmengenverwaltung

Satzzugriffsstrukturen

Zugriffsschicht

Hauptspeicherseiten u. Segmente

Dateien

Dateiverwaltung

Geräteschnittstelle

Scheduler

Recovery-Verwalter

Segment- u. Pufferverwaltung

Transaktion:Eine vom Benutzer als abgeschlossene Arbeitseinheit definierte Folge von Anfragen (Operatoren auf Mengen)

Page 17: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

17

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Architektur im Detail – 1. Schritt

Transaktion 1 Transaktion 2 ... Transaktion n

Scheduler

Segment-Verwalter

Schedule 1 Schedule n

Sperren-Verwalter

Puffer- Verwalter

Daten-basis

d4 d43 d17 d15 d2 d58

d5 d9 d26 d69 d6 d16

d46 d68 d55 d32 d97 d49

d25 d20 d67 d30 d49 d37

d19 d34 d10 d24 d25 d94

d63 d82 d49 d92 d57 d8

Daten-seiten

Transaktionsverwaltung

Gesamt-Schedule (verzahnte Transaktionen)

Performanz

Page 18: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

18

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Systempuffer

Systempuffer: Bereich des Hauptspeichers, der allen Transaktionen gemeinsam für die Pufferung von Blöcken zur Verfügung steht. Über ihn werden alle Lese- und Schreibanforderungen aller

parallelen Transaktionen abgewickelt. Dominierendes Problem:

Große Datenbasen können bis zu 10 TB umfassen! Beispiel: Die Decision-Support-Datenbank von WalMart umfaßt 6 TB; die größte Tabelle hat 4 Mrd. Tupel; jeden Tag werden 200 Millionen Tupel eingefügt/modifiziert.

Große Server-Rechner können bis zu mehreren GB Hauptspeicher besitzen.

Dieser muss den ausführbaren Code der aktiven Anwendungsprogramme (insbesondere des DBMS) sowie den Kern des Betriebsystems speichern.

Der Rest kann für den Systempuffer verwendet werden.

Page 19: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

19

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Aufgabenstellung

Problem: Da der Systempuffer wesentlich kleiner als die Datenbasis ist, konkurrieren Transaktionen um Platz im Systempuffer.

Ziel der Systempufferverwaltung: Dynamische Verwaltung des Pufferplatzes so dass die Anwendungen soweit wie möglich die Begrenzung des Systempuffers nicht bemerken. Aufgabe: Erzielen einer gleichmäßigen, möglichst weit unter

den Seitenzugriffszeiten liegenden Zugriffszeit.

Grundsätzliche Lösung: Jeweils die Seiten im Systempuffer halten, die die Transaktionen benötigen.

Voraussetzung: Hinreichende Größe des Systempuffers ist für die Leistungsfähigkeit des DBMS von entscheidender Bedeutung.

Page 20: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

20

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Speicherzuteilungsstrategien (1)

Speicherzuteilung

lokal(transaktionsbezogen) global anwendungsbezogen seitentypbezogen

statischdynamischdynamisch statisch

Lokale Speicherzuteilung Für jede Transaktion wird ein Menge von Seitenrahmen

reserviert. Statisch: einmalige und dann feste Zuteilung.

Wechselnde Anforderungen an den erforderlichen Pufferplatz können nicht zum Ausgleich zwischen den Transaktionen genutzt werden.

Dynamisch: Speicherzuteilung abhängig vom aktuellen Bedarf. Reine Lokalstrategie:

Es wird nicht erkannt, wenn Seiten mehrfach (von unterschiedlichen Transaktionen) eingelagert werden.

Page 21: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

21

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Speicherzuteilungsstrategien (2)

Speicherzuteilung

lokal(transaktionsbezogen) global anwendungsbezogen seitentypbezogen

statischdynamischdynamisch statisch

Globale Speicherzuteilung Verfügbare Seitenrahmen werden gemeinsam allen

Transaktionen zur Verfügung gestellt. Allokation für die einzelne Transaktion abhängig von deren

Bedarf. Keine reservierten Bereiche im Systempuffer.

Page 22: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

22

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Speicherzuteilungsstrategien (3)

Speicherzuteilung

lokal(transaktionsbezogen) global anwendungsbezogen seitentypbezogen

statischdynamischdynamisch statisch

Anwendungsbezogene Zuteilung Anwendungen definieren dynamisch Gruppen von

Seitenrahmen, die für bestimmte Zwecke genutzt werden können. Bsp.: Eine Gruppe für CAD-Anwendungen und eine Gruppe

für „klassische“ Anwendungen. Größe der Gruppen entweder statisch festgelegt oder

dynamisch anpassbar. Bei jedem Seitenzugriff wird die Gruppe angegeben, in die

eine Seite eingelagert werden soll.

Page 23: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

23

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Speicherzuteilungsstrategien (4)

Speicherzuteilung

lokal(transaktionsbezogen) global anwendungsbezogen seitentypbezogen

statischdynamischdynamisch statisch

Seitentypbezogene Zuteilung Der Systempuffer wird in Gruppen eingeteilt, die durch die

Seitentypen vorgegeben sind (pro Typ eine Gruppe). Bsp.: Es werden Gruppen definiert für Datenseiten,

Systemseiten, Seiten für bestimmte Arten von Zugriffsstrukturen (B-Baum, Hashtabelle, usw.)

Größe der Gruppen entweder statisch festgelegt oder dynamisch anpassbar.

Beim Einlagern einer Seite wird die Gruppe anhand des Typs bestimmt.

Page 24: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

24

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Speicherzuteilungsstrategien (5)

Speicherzuteilung

lokal(transaktionsbezogen) global anwendungsbezogen seitentypbezogen

statischdynamischdynamisch statisch

Zu inflexibel, daher nur selten. Falls statisch: Eine neue Transaktion, die noch wartend ist,

wird gestartet, sobald die notwendige Anzahl von Seitenrahmen verfügbar ist (Preclaiming-Strategie).

Zu inflexibel bei Änderungen des Lastverhaltens.

Gängig: Zwei Anwendungsgruppen:für relativ kurze Datensätze (z.B. relationale Tupel),für große Objekte (BLOB, XML-Objekte, Textobjekte, Bilder).

Jede Gruppe global oder seitentypbezogen.

Page 25: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

25

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Speicherzuteilungsstrategien (5)

Speicherzuteilung

lokal(transaktionsbezogen) global gruppenbezogen seitentypbezogen

statischdynamischdynamisch statisch

Gängig: Zwei Anwendungsgruppen :für relativ kurze Datensätze (z.B. relationale Tupel),für große Objekte (BLOB, XML-Objekte, Textobjekte, Bilder).

Jede Gruppe global oder seitentypbezogen.

Gegenstand der weiteren Betrachtungen

Page 26: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

26

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Kapitel 3.3Kapitel 3.3

Puffer-OperationenPuffer-Operationen

Page 27: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

27

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Pufferorganisation

Der Systempuffer besteht aus N im Hauptspeicher angeordneten Pufferrahmen, von denen jeder genau eine Seite speichern kann.

Puffer-Kontrollblock mit einem Eintrag für jeden Rahmen. Für eine zu schreibende Seite wird ein Änderungsvermerk (dirty bit) gesetzt.

Scheduler

Puffer- Verwalter

Daten-basis

d4 d43 d17 d15 d2 d58

d5 d9 d26 d69 d6 d16

d46 d68 d55 d32 d97 d49

d25 d20 d67 d30 d49 d37

d19 d34 d10 d24 d25 d94

d63 d82 d49 d92 d57 d8

Daten-seiten

Segment-Verwalter

Page 28: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

28

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Externe Pufferoperationen

Mögliche Abfolgen:Nur Lesen: read, unfixÄndern: read, writeErzeugen: allocate, write

Scheduler

Puffer- Verwalter

Daten-basis

d4 d43 d17 d15 d2 d58

d5 d9 d26 d69 d6 d16

d46 d68 d55 d32 d97 d49

d25 d20 d67 d30 d49 d37

d19 d34 d10 d24 d25 d94

d63 d82 d49 d92 d57 d8

Daten-seiten

Segment-Verwalter

read (pageno, t)Sorgt dafür dass Seite pageno im Puffer liegt und fixiert sie dort für Transaktion t.

write (pageno, t)Erklärt Änderung der Seite für abgeschlossen. Pufferverwaltung markiert Seite als dirty.

allocate (pageno, t)Allokiert einen Seitenrahmen für eine neue Seite.

Aus technischen Gründen:unfix (pageno, t)Seite wird von Transaktion t nicht mehr benötigt.

Page 29: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

29

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Direkter Zugriff auf gepufferte Seiten Bei read und allocate wird dem Aufrufer die Adresse des

Seitenrahmens übergeben, in den die Seite eingelagert wurde.

Der Benutzer liest bzw. schreibt direkt auf dem Seitenrahmen. Vorteil: Keine zusätzliche Indirektionsstufe. Nachteile:

Die eingelagerte oder alloziierte Seite darf vom Puffer-Verwalter nicht im Systempuffer verschoben werden.

Ob die Seite verändert wurde, muss dem Puffer-Verwalter ausdrücklich (durch write) mitgeteilt werden.

Der Puffer-Verwalter besitzt keine Kenntnis darüber, welche Teile der Seite geschrieben wurden. Recovery muss also eine veränderte Seite insgesamt sichern (siehe später!).

Unerlaubte Zugriffe auf eine Seite nach write oder unfix sind möglich.

Page 30: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

30

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Platte

P480

P123

Systempuffer0 4K 8K 12K

28K

44K

60K

40K

48K

24K20K16K

32K 36K

56K52K

(P123)

(P480)

Adresse:40KAdresse: 48K

Direkter Zugriff auf gepufferte Seiten

write

Page 31: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

31

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Bei Aufruf wird dem Aufrufer ein Handle übergeben, über den er auf den Seiteninhalt (lesend oder schreibend) zugreifen kann. Er darf nicht direkt auf den Seitenrahmen zugreifen.

Vorteile: Das System entdeckt selbständig Änderungen an der Seite:

Es kann diese mit protokollieren. Recovery muss nur die geänderten Teile der Seite sichern.

Eine Seite kann im Systempuffer verschoben werden. Im Handle kann vermerkt werden, ob die Seite geschrieben

werden darf. Durch die Indirektion können unerlaubte Zugriffe auf eine

Seite nach einem write oder unfix abgefangen werden. Nachteile: Zusätzliche Indirektionsstufe,

Verwaltungsaufwand für Handles.

Indirekter Zugriff auf gepufferte Seiten

Page 32: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

32

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Platte

P480

P123

Systempuffer0 4K 8K 12K

28K

44K

60K

40K

48K

24K20K16K

32K 36K

56K52K

(P123)

(P480)

Indirekter Zugriff auf gepufferte Seiten

Handle 1

Seite: P480 Adresse: 48K Schreibbar: 1

Seite: P123 Adresse: 40K Schreibbar: 0

Handle 2write

Page 33: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

33

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Interne Pufferoperationen

fetch (pageno)Kopiert eine nicht gepufferte Seite aus der Datenbasis in den Puffer.

flush (pageno)Kopiert eine nicht fixierte Seite vom Puffer in die Datenbasis sofern die Seite als dirty markiert ist. Die Seite verbleibt im Puffer, wird aber alsclean markiert.

(Beide Operatoren besorgen sich die zu pageno gehörende Blockadresse vom Segmentverwalter.)

pin (pageno)Fixiert eine Seite im Puffer (automatisch mit read und allocate).

unpin (pageno)Löst auf write oder unfix hin die Fixierung der Seite im Puffer.

Scheduler

Puffer- Verwalter

Daten-basis

d4 d43 d17 d15 d2 d58

d5 d9 d26 d69 d6 d16

d46 d68 d55 d32 d97 d49

d25 d20 d67 d30 d49 d37

d19 d34 d10 d24 d25 d94

d63 d82 d49 d92 d57 d8

Daten-seiten

Segment-Verwalter

Page 34: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

34

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Koordination Scheduler und Pufferverwalter

Scheduler

Puffer- Verwalter

Daten-basis

d4 d43 d17 d15 d2 d58

d5 d9 d26 d69 d6 d16

d46 d68 d55 d32 d97 d49

d25 d20 d67 d30 d49 d37

d19 d34 d10 d24 d25 d94

d63 d82 d49 d92 d57 d8

Daten-seiten

pin(), unpin()

fetch(), flush()

read(), write(), allocate(), unfix()

So unabhängig voneinander als möglich!

Falls fetch erforderlich: zeitlich gekoppelt (synchron)!

Segment-Verwalter entkoppelt!

Page 35: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

35

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Bearbeiten einer Seitenanforderung (1)

Scheduler

Puffer- Verwalter

Daten-basis

d4 d43 d17 d15 d2 d58

d5 d9 d26 d69 d6 d16

d46 d68 d55 d32 d97 d49

d25 d20 d67 d30 d49 d37

d19 d34 d10 d24 d25 d94

d63 d82 d49 d92 d57 d8

Daten-seiten

pin(), unpin()

fetch(), flush()

read(), write(), allocate(), unfix()

Segment-Verwalter

physische Seitenreferenz

logische Seitenreferenz

Page 36: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

36

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Bearbeiten einer Seitenanforderung (2)

Gewünschte (read) Seite im Puffer?ja nein (Fehlseitenbedingung)

logische Seitenreferenz ohne physische Seitenreferenz

Lokalisierung der Seite (Bestimmung des Seitenrahmens, in dem die Seite gepuffert ist)

Durchführung der pin-Operation Fortschreiben der

Pufferkontrollblöcke Übergabe der Adresse des

Seitenrahmens an die aufrufende Komponente

Aufwand: 100 Instruktionen

logische Seitenreferenz mit physischer Seitenreferenz

Erfolglose Suche im Puffer Suche nach einem freien

Seitenrahmen; falls keiner vorhanden:

Auswahl einer zu ersetzenden Seite.

Falls die zu ersetzende Seite als dirty markiert:

flush der Seite auf den nichtflüchtigen Speicher

fetch der angeforderten Seite Aufwand: 2500 Instruktionen +

Blockzugriffszeit (20-30 ms)

Page 37: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

37

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Bearbeiten einer Seitenanforderung (2)

Gewünschte (read) Seite im Puffer?ja nein (Fehlseitenbedingung)

logische Seitenreferenz ohne physische Seitenreferenz

Lokalisierung der Seite (Bestimmung des Seitenrahmens, in dem die Seite gepuffert ist)

Durchführung der pin-Operation Fortschreiben der

Pufferkontrollblöcke Übergabe der Adresse des

Seitenrahmens an die aufrufende Komponente

Aufwand: 100 Instruktionen

logische Seitenreferenz mit physischer Seitenreferenz

Erfolglose Suche im Puffer Suche nach einem freien

Seitenrahmen; falls keiner vorhanden:

Auswahl einer zu ersetzenden Seite.

Falls die zu ersetzende Seite als dirty markiert:

flush der Seite auf den nichtflüchtigen Speicher

fetch der angeforderten Seite Aufwand: 2500 Instruktionen +

Blockzugriffszeit (20-30 ms)

Kein zeitlicher Zusammenhang mit write!

Page 38: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

38

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Strategien der Pufferverwaltung

Gewünschte (read) Seite im Puffer?ja nein (Fehlseitenbedingung)

logische Seitenreferenz ohne physische Seitenreferenz

Lokalisierung der Seite (Bestimmung des Seitenrahmens, in dem die Seite gepuffert ist)

Durchführung der pin-Operation Fortschreiben der

Pufferkontrollblöcke Übergabe der Adresse des

Seitenrahmens an die aufrufende Komponente

Aufwand: 100 Instruktionen

logische Seitenreferenz mit physischer Seitenreferenz

Erfolglose Suche im Puffer Suche nach einem freien

Seitenrahmen; falls keiner vorhanden:

Auswahl einer zu ersetzenden Seite.

Falls die zu ersetzende Seite als dirty markiert:

flush der Seite auf den nichtflüchtigen Speicher

fetch der angeforderten Seite Aufwand: 2500 Instruktionen +

Blockzugriffszeit (20-30 ms)

Page 39: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

39

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Strategien der Pufferverwaltung

Effizientes Auffinden einer Seite im Puffer (Suchstrategie). Wahl der zu bevorratenden Seiten im Systempuffer

(Einlagerungsstrategie). Auswählen eines (praktisch immer belegten) Pufferrahmens

für eine einzulagernde Seite (Ersetzungsstrategie).

Page 40: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

40

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Kapitel 3.4Kapitel 3.4

Pufferverwaltung: LokalisierenPufferverwaltung: Lokalisieren

Page 41: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

41

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Strategien der Pufferverwaltung

Effizientes Auffinden einer Seite im Puffer (Suchstrategie). Wahl der zu bevorratenden Seiten im Systempuffer

(Einlagerungsstrategie). Auswählen eines (praktisch immer belegten) Pufferrahmens

für eine einzulagernde Seite (Ersetzungsstrategie).

Page 42: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

42

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Suchstrategie Bei jeder logischen Seitenreferenz hat die Pufferverwaltung

zunächst festzustellen, ob die angeforderte Seite sich bereits im Systempuffer befindet, und falls ja, wo.

Häufiges Ereignis; daher effizientes Suchverfahren wichtig!Suchstrategie für Seiten im Systempuffer

Direkte Suche in den Seitenrahmen

Indirekte Suche über Hilfsstrukturen

Hashverfahren Puffertabellen Zuordnungstabellen

unsortiert sortiert verkettet

X

Page 43: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

43

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Hashverfahren (1)Suchstrategie für Seiten im Systempuffer

Indirekte Suche über Hilfsstrukturen

Hashverfahren Puffertabellen Zuordnungstabellen

Suche in Tabelle: Seitennummer Tabellenposition Pufferadresse

Alle Hashverfahren mit direkter Kollisionskontrolle einsetzbar. Bucketverfahren mit Verkettung von Überlaufblöcken. Verkettung von Tabelleneinträgen.

Hashfunktion

Page 44: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

44

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Hashverfahren

( ) ( )ih P HT k

Pi: Seitennummer PAi: Pufferadresse

Systempuffer

Beispiel Verkettung:

Pj PAj

Pk PAk

Pi PAi //

Page 45: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

45

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Puffertabelle

Suchstrategie für Seiten im Systempuffer

Indirekte Suche über Hilfsstrukturen

Hashverfahren Puffertabellen Zuordnungstabellen

Suche in Tabelle: Seitenrahmen Seitennummer Pufferadresse

unsortiert: hoher Suchaufwand.

nach Seitennummern sortiert: hoher Wartungsaufwand. gegebenenfalls Repräsentation durch einen balancierten Binärbaum.

Berechnung

Page 46: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

46

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Zuordnungstabelle

Suchstrategie für Seiten im Systempuffer

Indirekte Suche über Hilfsstrukturen

Hashverfahren Puffertabellen Zuordnungstabellen

Suche in Tabelle: Seitennummer Pufferadresse oder nicht gepuffert

Sehr hoher Such- und Platzaufwand, daher nur bei kleinen Datenbasen anwendbar.

Page 47: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

47

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Kapitel 3.5Kapitel 3.5

Pufferverwaltung: Einlagern/ErsetzenPufferverwaltung: Einlagern/Ersetzen

Page 48: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

48

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Strategien der Pufferverwaltung

Effizientes Auffinden einer Seite im Puffer (Suchstrategie). Wahl der zu bevorratenden Seiten im Systempuffer

(Einlagerungsstrategie). Auswählen eines (praktisch immer belegten) Pufferrahmens

für eine einzulagernde Seite (Ersetzungsstrategie).

Positiventscheidung: Welche Seiten im Puffer vorhalten?Negativentscheidung: Auf

welche Seiten kann man verzichten? Enger Zusammenhang!

Page 49: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

49

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Aufgabe Die Größe des Systempuffers legt fest, wie viele Seiten

gleichzeitig im Systempuffer gehalten werden können. Extremfälle:

Bei einer Systempuffergröße von 1 führt jede logische Seitenreferenz zu einer physischen Seitenreferenz.

Passt die gesamte DB in den Systempuffer, dann sind (nach einer Ladephase, in der alle Seiten in den Systempuffer geladen werden) keine physischen Seitenreferenzen mehr notwendig.

Allgemein: Das Ziel der Systempufferverwaltung ist die Minimierung der Zahl der physischen Seitenreferenzen bei gegebener Systempuffergröße und gegebenem Profil der logischen Seitenreferenzen. Dazu wird ein Vorhersagemodell benötigt.

Page 50: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

50

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Vorhersagemodell (1)

Vorhersagemodell: Schätze zukünftigen logischen Seitenreferenzstring ab. Charakterisierung (Logische) Lokalität:

Menge der in gegebenem Zeitintervall benötigten Seiten Gibt es sehr viele Zugriffe auf wenige ausgeprägte Seiten?

Lokale Lokalität: Verhalten einer einzelnen Transaktion. Globale Lokalität: Verhalten einer Menge von Transaktionen.

Charakterisierung (Logische) Sequenzialität: Menge der in gegebenem Zeitintervall benötigten Seiten Gibt

es eine Abfolge von benötigten Seiten?

Page 51: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

51

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Einflussfaktoren (1) Äußere Einflussfaktoren:

Datenmodell, Struktur der physischen DB (Dateien, Satzzugriffsstrukturen) Zugriffsverhalten der Anwendungen (Transaktionsmix).

Klassische Anwendungen (debit/credit Transaktionen, Verwaltung betriebswirtschaftlicher und administrativer Daten): Globale Lokalität entsteht vorwiegend durch gemeinsame

Zugriffe mehrerer Transaktionen auf „wichtige“ Seiten. Bestimmte Seiten mit Verwaltungsdaten haben eine wesentlich

höhere Benutzungswahrscheinlichkeit als „normale“ Datenseiten. Die Zugriffe innerhalb einzelner Transaktionen sind

weitgehend sequenziell (hohe lokale Sequenzialität). Inter-transaction locality, intra-transaction sequentiality.

Page 52: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

52

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Globale Lokalität: Referenzdichte (1)

Relativer Anteil bestimmter Seitentypen in der DB: FPA: Seiten für die Freispeicherverwaltung. DBTT: Seiten für die Adressumsetzung. USER: Benutzerseiten.

Visualisierung der Referenzierungshäufigkeit der Seitentypen: x-Achse: Positionen im logischen Seitenreferenzstring. y-Achse: Relative Häufigkeit der Seitentypen FPA, DBTT,

USER im log. Seitenreferenzstring (seitentyp-spezifische Referenzdichte).

Page 53: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

53

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Globale Lokalität: Referenzdichte (2) Beispiel MIX40: änderungsintensive Last mit relativ hoher Lokalität. FPA: Seiten für die Freispeicherverwaltung (0.1 % aller Seiten). DBTT: Seiten für die Adressumsetzung (6.1 % aller Seiten). USER: Benutzerseiten (93.8 % aller Seiten).

Page 54: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

54

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Folgerungen aus Referenzdichte

Die Referenzdichte-Kurve zu MIX40 zeigt, dass die Benutzung von Seiten stark von dem Seitentyp abhängt, und im zeitlichen Verlauf starken Schwankungen unterworfen ist.

Seiten für die Adressumsetzung und für die Freispeicherverwaltung werden überproportional häufig referenziert; reine Benutzerseiten dagegen unterproportional häufig.

Folgerung: Speicherzuteilung und Seitenersetzung sollte abhängig vom Seitentyp erfolgen.

Page 55: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

55

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Einflussfaktoren (2)

Äußere Einflussfaktoren: Datenmodell, Struktur der physischen DB (Dateien, Satzzugriffsstrukturen) Zugriffsverhalten der Anwendungen (Transaktionsmix).

Nicht-klassische Anwendungen (interaktive Nutzung von Datenbasen, technische Anwendungen bspw. im CAD-Bereich): Hier besteht häufig auch hohe lokale Lokalität durch

Beschränkung einer Transaktion auf eine Teilmenge von Seiten (ein Konstrukteur benötigt bspw. über einen längeren Zeitraum nur die Daten, die das gerade konstruierte Teil beschreiben).

Sequenzielle Zugriffe sind seltener.

Page 56: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

56

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Vorhersagemodell (2)

Vorherrschende Strategie: Einheitliche Behandlung von globaler und lokaler Lokalität.

Grundlage: Vorhersage durch Pufferverwaltung selbst.

Vorgehensweise: Pufferverwaltung beobachtet Logischen Seitenreferenzstring als zeitliche Folge der logischen Seitenreferenzen aller paralleler Transaktionen.

Nachteil: Zur Abschätzung der zukünftigen logischen Seitenreferenzstrings steht nur der vergangene logische Seitenreferenzstring zur Verfügung.

Page 57: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

57

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Lokalität: Stacktiefe (1) Modellierung der Lokalität durch LRU-Stacktiefen-

Verteilungen. LRU: Seiten mit Hilfe eines Kellers verwaltet.

jüngste referenzierte Seite an der Kellerspitze. mit zunehmendem Zurückliegen des Referenzzeitpunkts sinkt

die Seite im Keller ab.

Visualisierung: x-Achse: LRU-Stacktiefe (Position im Keller, an der sich eine

Seite befindet). y-Achse: Wahrscheinlichkeit, dass eine Seite sich in einer

bestimmten Stacktiefe befindet.

Page 58: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

58

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Lokalität: Stacktiefe (2) Beispiel MIX40: änderungsintensive Last mit relativ hoher Lokalität. Logischer Seitenreferenzstring mit 130.366 logischen Seitenreferenzen. Anzahl verschiedener Seiten im String: 3.553 Maximale Anzahl paralleler Transaktionen: 8

Page 59: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

59

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Lokalität: Stacktiefe (3) Beispiel MIX50: Transaktionsmix mit langen sequentiellen

Lesetransaktionen, kaum Änderungsoperationen. Logischer Seitenreferenzstring mit 99.975 logischen Seitenreferenzen. Anzahl verschiedener Seiten im String: 5.245 Maximale Anzahl paralleler Transaktionen: 8

Page 60: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

60

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Gegenstand der weiteren Betrachtungen Demand Paging

Ersetzen genau einer Seite bei Auftreten einer Fehlseitenbedingung.

Einzig sinnvolles Vorgehen bei Vorhersage durch Pufferverwaltung selbst.

Prepaging Austausch mehrerer Seiten bei einem Ersetzungsvorgang mit

Einlesen weiterer Seiten über die angeforderte hinaus. Vorhersage durch jede Transaktionen erforderlich. Sinnvoll bei hoher und vorhersagbarer lokaler Sequenzialität

oder Lokalität Unterstützbar durch physische Bündelung der benötigten Seiten

auf benachbarten Blöcken.

Einlagerungsstrategien

Page 61: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

61

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Seitenersetzungsstrategien (1)

Aufgabe: Festlegen, welche Seiten bei einem Entzug von Seitenrahmen zur Verdrängung ausgewählt werden sollen.

Grundsatz: Falls eine logische Seitenreferenz im Puffer nicht befriedigt werden kann, muss eine Seite zur Ersetzung ausgewählt („verdrängt“) werden, die längere Zeit nicht mehr benötigt wird. Also: Kein flush auf Seite, die bald wieder benötigt wird.

Randbedingung: Faire Behandlung jeder Transaktion.

Page 62: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

62

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Seitenersetzungsstrategien (2) Strategien beruhen darauf, dass ohne Handle nur das

Fixieren beobachtbar ist. Eine Transaktion fixiert eine Seite so lange, bis sie sie nicht

mehr benötigt.

Randbedingungen:

Fixierte Seiten werden mit Hauptspeicheradressen angesprochen; sie dürfen folglich nicht ersetzt werden. Werden daher in den nachfolgenden Verfahren ignoriert!

Referenzen beziehen sich ausschließlich auf den Fixierungszeitpunkt.

Eine Fixierung wird also als genau eine Referenz gezählt, unabhängig von der Anzahl der Zugriffe auf die Seite über ihre Pufferadresse.

Page 63: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

63

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Eingrenzung der realisierbaren Ersetzungsstrategien:

Extremstrategien: RANDOM: Wähle zufällig eine Seite zur Ersetzung aus.

OPT: Wähle diejenige Seite zur Ersetzung aus, deren zeitlicher Abstand bis zur nächsten Referenzierung maximal ist.

Klar: OPT ist nicht realisierbar.

Ziel: Ersetzungsstrategien sollten möglichst nahe an OPT heranreichen.

Visualisierung (Fmax: maximale Fehlseitenrate (in %))

Seitenersetzungsstrategien (3)

Page 64: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

64

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Grundsatz: Abstützen auf den Erwartungswert für eine

Wiederbenutzung. Ersetzung von Seiten, deren Erwartungswert minimal ist.

Zur Bestimmung des Erwartungswerts wird das bisherige Referenzverhalten analysiert und auf das zukünftige Verhalten extrapoliert.

Analysemöglichkeiten: Zeit seit der letzten Einlagerung, Zeit seit der letzten Referenzierung, Anzahl der bisherigen Referenzen.

Jedes dieser Kriterien besitzt für sich allein zu wenig Aussagekraft, daher Kombination von Kriterien wünschenswert.

Praxis der Ersetzung

Page 65: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

65

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

LRU (least recently used) Ersetzungskriterium: Zeit seit der letzten Referenzierung der Seite. Seiten im Systempuffer werden mit Hilfe eines Kellers verwaltet. Bei Referenz kommt die referenzierte Seite an die Kellerspitze. Falls die referenzierte Seite an Position n im Keller war, rutschen alle

Seiten an den Positionen 1 bis n-1 eine Position tiefer. Seite am Kellerboden wird ersetzt.

Ersetzungsverfahren - LRU

C

A

B

C

D

E

F

C

A

B

Page 66: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

66

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Ersetzungsverfahren - LRU

G

A

B

C

D

E

F

GG

A

B

C

D

E

LRU (least recently used) Ersetzungskriterium: Zeit seit der letzten Referenzierung der Seite. Seiten im Systempuffer werden mit Hilfe eines Kellers verwaltet. Bei Referenz kommt die referenzierte Seite an die Kellerspitze. Falls die referenzierte Seite an Position n im Keller war, rutschen alle

Seiten an den Positionen 1 bis n-1 eine Position tiefer. Seite am Kellerboden wird ersetzt.

F

Page 67: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

67

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

CLOCK (second chance) Im Grundsatz LRU mit einfacherer Implementierung. Ersetzungskriterium: Zeit seit der letzten Referenzierung. Jede Seite mit Benutzt-Bit.

Beim Einlagern einer Seite auf 1 gesetzt. Bei jeder Referenzierung einer Seite auf 1 gesetzt.

Auswahl einer zu ersetzenden Seite: Zyklischer Umlauf bis zur nächsten Seite mit 0. Alle überstrichenen Seiten mit 1 werden auf 0 zurückgesetzt.

Ersetzungsverfahren - CLOCK

G

1 A

0 F 1 B

0 C0 E

0 D

1 A

0 F 0 B

0 C0 E

0 D

1 A

1 F 0 B

1 G0 E

0 D

C

Page 68: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

68

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

LFU (least frequently used) Ersetzungskriterium: Zahl der Referenzen. Jede Seite im Puffer mit Referenzzähler, der bei

Seiteneinlagerung mit 1 initialisiert wird. Bei jeder Seitenreferenz wird der Zähler um 1 erhöht. Ersetzt wird die Seite mit dem niedrigsten Zähler.

Bei gleichen Zählerständen wird eine nach dem LRU-Prinzip ausgewählt

Nachteil: keine Berücksichtigung der Zeit seit der letzten Einlagerung (Alter) der Seiten, daher sind Seiten mit kurzzeitiger, sehr hoher Referenzierung kaum mehr zu verdrängen.

Ersetzungsverfahren - LFU

Page 69: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

69

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

GCLOCK (generalized clock) Kombination aus LFU und CLOCK; anstelle Benutzt-Bit

Referenzzähler. Hochzählen des Referenzzählers um 1 bei Seitenreferenz. Herabzählen um 1 bei Überstreichen. Ausgelagert wird die erste Seite, die nach Herabzählen

einen Referenzzähler = 0 besitzt. Verbesserung gegenüber LFU: Referenzhäufigkeit wird

direkt, Alter indirekt berücksichtigt. Nachteil: Wegen indirekter Berücksichtigung des Alters

tendiert auch GCLOCK dazu, die jüngsten Seiten zu ersetzen, unabhängig von ihrer Wiederbenutzungswahrscheinlichkeit.

Ersetzungsverfahren - GCLOCK

Page 70: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

70

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Verbesserungen von GCLOCK: Berücksichtigung des Seitentyps bei

Initialisierung der Referenzzähler, Inkrementierung der Referenzzähler bei einer Referenzierung

oder fest-vorgegebenem Wert, auf den die Referenzzähler bei einer

Referenzierung gesetzt werden.

Protokollierung der Ersetzungshäufigkeiten der Seiten: Dynamische Gewichtung der Inkremente und Initialisierung der

Referenzzähler (höhere Gewichte für „wichtige“ Seiten). Durch die dynamische Gewichtung können sehr hohe

Referenzzählerwerte entstehen, die bei einem Lastwechsel nicht mehr mit dem Referenzierungsverhalten der Anwendungen übereinstimmen.

Daher: Periodisches Herabsetzen der Referenzzähler oder Vorgabe von Maximalwerten.

Ersetzungsverfahren - GCLOCK

Page 71: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

71

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

LRD (least reference density) GZ: Anzahl aller logischen Referenzen insgesamt. SZ: Vektor mit einer Komponente für jede Seite; bei

Einlagerung von Seite i wird SZ(i) mit dem aktuellen Wert von GZ initialisiert.

RZ: Vektor mit einer Komponente für jede Seite; RZ(i) ist die Gesamtanzahl der logischen Referenzen von Seite i während aktuellem Pufferaufenthalt.

Berechnung der mittleren Referenzdichte pro Seite i:

RD(i) = RZ(i) / ( 1 + GZ - SZ(i) ) Grundidee von LFU + direktes Einbringen des Alters. Vorteil gegenüber LFU: Junge Seiten haben

Überlebenschancen

Ersetzungsverfahren - LRD (1)

Page 72: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

72

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

GZ+1= 50

Ersetzungsverfahren - LRD (2)

2 20 A

4 26 B

1 40 C

3 45 D

3 5 E

6 2 F

1 37 G

3 17 H

RZ SZ RD1/15

1/10

1/6

3/5

1/15

1/8

1/13

1/11

zur Ersetzung gewählt

Page 73: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

73

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Verbesserung: Periodisches Altern von Seiten, indem nach 1000 logischen Referenzen die RZ-Werte aller älteren Seiten entsprechend zurückgesetzt werden. Seiten mit weit zurückliegender sehr hoher Referenzdichte werden

dadurch schneller verdrängt. Problem: Zur Bestimmung eines zu verdrängenden Elements

muss für jedes Element der Wert von RD(i) berechnet werden Dieser verändert sich dynamisch bei jeder neuen Seitenreferenz Die Ordnung der Elemente bzgl. den Referenzdichten bleibt dabei

(auch für nicht referenzierte Elemente) nicht konstant Beispiel: Man hat zwei Seiten 1 und 2 mit

RZ(1) = 1 und GZ – SZ(1) = 1, also RD(1) = 1/2 RZ(2) = 7 und GZ – SZ(2) = 15, also RD(2) = 7/16 Es gilt also RD(1) > RD(2) Nach dem nächsten Zugriff (beide Seiten nicht referenziert):

RD(1) = 1/3 = 0.333… und RD(2) = 7/17 = 0.41…Nun gilt also plötzlich RD(2) > RD(1)

Ersetzungsverfahren - LRD (3)

Page 74: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

74

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Kapitel 3.6Kapitel 3.6

BetriebssystemfragenBetriebssystemfragen

Page 75: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

75

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Logische Zuordnung von Datenbank zu virtuellem Speicher zu Hauptspeicher (üblich: M < N < D):

Konflikt Systempuffer und virtueller Speicher

Datenbank auf dem Externspeicher

Systempuffer-verwaltung des DBMS

Datenbankseiten im Systempuffer

Seitenwechsel-algorithmus des Betriebsystems

Pufferseiten im Hauptspeicher

M

page faultN

database fault

D

Anzahl der Datenbasisseite

nAnzahl der

Pufferrahmen Anzahl der

Hauptspeicherkacheln

Page 76: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

76

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Hardware-Realisierung: Datenbank und virtueller Speicher sind auf externem Speicher realisiert.

M

Pufferseiten auf dem Seitenwechsel-speicher

referenzierte Seite

database fault:physische Seitenreferenz

page fault:Ein/ Auslagerungen von Seiten des virtuellen Adressraums

zu ersetzende Seite

D N

Konflikt Systempuffer und virtueller Speicher

Datenbank auf dem Externspeicher

Systempuffer-verwaltung des DBMS

Seitenwechsel-algorithmus des Betriebsystems

Pufferseiten im Hauptspeicher

double page fault

Page 77: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

77

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Fehlseitenbedingungen:1. Page Fault

Benötigte Seite ist im Systempuffer, aber nicht im Hauptspeicher. Kann auch innerhalb der fix-Phase einer Seite auftreten.

1 Blockzugriff.

2. Database Fault Benötigte Seite ist nicht im Systempuffer, zu ersetzende

Seite ist im Hauptspeicherpuffer. 1 – 2 Blockzugriffe (je nach Änderungsvermerk).

3. Double Page Fault Benötigte Seite ist nicht im Systempuffer, zu ersetzende

Seite ist nicht im Hauptspeicherpuffer. 2 – 3 Blockzugriffe (je nach Änderungsvermerk).

Konflikt Systempuffer und virtueller Speicher

Page 78: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

78

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Überlast: Eine Transaktion hält zu einem Zeitpunkt zu viele Seiten mit fix-Vermerk.

Folge: Verknappung an Pufferrahmen, die keinen fix-Vermerk besitzen.

1. Seitenflattern im Puffer (Thrashing) hohe relative Häufigkeit von logischen Seitenanforderungen, die

physische Seitenreferenzen zur Folge haben somit wachsende relative Häufigkeit der Seitenersetzung tritt bei großer Zahl paralleler Transaktionen auf Abhilfe:

Dynamische Beschränkung der Parallelität. Dazu müssen Transaktions- und Systempufferverwaltung

zusammenarbeiten. Bei Puffermangel werden keine neuen Transaktionen zugelassen.

2. Betriebsmittel-Verklemmung Pufferrahmen ohne fix-Vermerk erschöpft. Beseitigung der Verklemmung nur durch Zurücksetzen von

Transaktionen!

Systempuffer als Leistungsengpass

Page 79: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

79

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Die virtuelle Speicherverwaltung in Unix ist ein Beispiel dafür, dass ein Betriebssystem selbst eine Pufferverwaltung bietet (und erzwingt). Dynamische (prozess-)lokale Speicherzuteilung.

Virtueller Speicherbereich von Bytes.

Indirekter Zugriff.

Seitengrenzen sind berechenbar. Daher eine gewisse Kontrolle über Seitentransporte möglich.

Schwäche: Kein Einfluss möglich auf Einlagerungs- und Ersetzungsstrategie.

Virtuelle Speicherverwaltung in Unix (1)

Page 80: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

80

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Virtuelle Speicherverwaltung in Unix (2)

Einzel-prozess

Virtueller Speicher

Hauptspeicher Hintergrundspeicher

Seite Blockgleiche Größe

Zuordnung

Zuordnung

Page 81: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

81

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Virtuelle Speicherverwaltung in Unix (3)

Einzel-prozess

Virtueller Speicher

Hauptspeicher Hintergrundspeicher

Seite Blockgleiche Größe

Zuordnung

Zuordnung

Ein Prozess besitzt einen virtuellen Speicher. Eine Speicheradresse ist normalerweise 4 Bytes lang, damit sind 4 GB

virtueller Speicher adressierbar. Annahme: Seitengröße = 1024 Bytes = 1 KB. Dann sind alle Adressen

im virtuellen Adressraum, die ganzzahlige Vielfache von 1K (1024) sind, gültige Seitenadressen (0, 1K, 2K, 3K, 4K, ...).

Eine virtuelle Speicheradresse lässt sich daher interpretieren als eine Seitenadresse und ein Offset innerhalb der Seite.Bei Seitengröße = 1K: Seitenadresse(22B) Offset(10B)

Page 82: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

82

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Virtuelle Speicherverwaltung in Unix (4)

Einzel-prozess

Virtueller Speicher

Hauptspeicher Hintergrundspeicher

Seite Blockgleiche Größe

Zuordnung

Zuordnung

Haupt- und Hintergrundspeicher werden von allen Prozessen geteilt.

SystempufferSegmente

Page 83: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

83

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Virtuelle Speicherverwaltung in Unix (5)

Einzel-prozess

Virtueller Speicher

Hauptspeicher Hintergrundspeicher

Seite Blockgleiche Größe

Zuordnung

Zuordnung

Zuordnungen mittels page table pro Prozess.

Virtuelle Adresse

HspSeite Nr.

Status Block

0 1K 2K 64K 1917 invalid 1206 65K none invalid none 66K 1036 valid 847

128K 17 ...

Gültigkeit der Adresszuordnung

Page 84: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 3 Kapitel 3 Segment- und Puffer- Verwaltung

84

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 3

Wird auf eine Adresse innerhalb des Bereichs 66K – 67K zugegriffen, dann wird dieser Zugriff auf die Hauptspeicher-Seite 1036 umgelenkt, da der dazu gehörige Eintrag der page table den Status valid besitzt.

Ein Zugriff auf eine Adresse im Bereich 64K – 65K führt dagegen zu einem page fault, da der zugehörige Eintrag invalid ist. Die virtuelle Speicherverwaltung liest Block 1206 von der Platte, kopiert ihn in die Hauptspeicher-Seite 1917 und setzt den Status auf valid.

Ein Zugriff auf eine Adresse im Bereich 65K – 66K oder auf eine Adresse außerhalb des reservierten virtuellen Speichers ( 129K) führt zu einer Speicherverletzung (segmentation fault).

Virtuelle Speicherverwaltung in Unix (6)

Virtuelle Adresse

Seite Nr.

Status Block

0 1K 2K 64K 1917 invalid 1206 65K none invalid none 66K 1036 valid 847

128K 17 ...