Definitionen zum Verschnitt Die absoluten Größen haben eine Einheit. Beim Bilden der Verhältnisgrößen wird die Einheit gekürzt. Man kann bei den Verhältnisgrößen die Größe durch die Anzahl vorgegebener Grundeinheiten ersetzen, die Anzahl hat dann auch keine Einheit mehr. Absolute Größen: interner Verschnitt: f int-abs = Verhältnisgrößen: interner Verschnitt: f int = Größe des belegten, abeicht genutzten Speichers Größe des belegten, abeicht genutzten Speichers Größe des belegten Speichers Anmerkung: Die Größe kann ein konkreter Wert oder ein Erwartungswert sein. Auf Folie 5-30 wurde der Erwartungswert für die Anzahl von Einheiten verwendet. externer Verschnitt: f ext = Größe des freien, abeicht belegbaren Speichers Größe des gesamten Speichers Auslastung: ŋ = Größe des belegten Speichers Größe des gesamten Speichers ŋ = 1 f ext 1
Paging (Folie 5-66) Grundsätzliches: 1byte Speicher wird in Worten adressiert. Soweit nicht anders angegeben, ist die Wortlänge 1 Byte(8 bit). # Adressen Physikalische Startadressen von Seiten im Speicher sind ganzzahlige Vielfache der Seitengröße. Dadurch sind die niedrigeren Bits gleich Null. In der Seitentabelle werden nur die höheren Bits gespeichert. Die physikalische Adresse dieser Tabelle ist die Tabellenbasisadresse. Beispiel: Gesamter Speicher: 1MB=2 20 Byte Größe einer physikalischen Adresse: log 2 (2 20 ) = 20 bit Seitengröße: 4KB=2 12 Byte, Adresse in Seite (Offset, Displacement): log 2 (2 12 ) = 12 bit Anzahl Seiten: 2 8 Logische Adresse: besteht aus Seitennr z.b. 0000 0010. und Offset z.b. 1000 1111 1111 Seitennr. 8 bit 12 bit offset Physikalische Startadresse einer Seite: z.b. 1000 1001 0000 0000 0000 2
Paging (Folie 5-66) Beispiel (Fortsetzung): Tabellenbasisadresse: 20 bit (physikalische Adresse), z.b. 0000 1000 0000 0000 0000 + 0000 0010 Seitennr. 0000 1000 0000 0000 0010 EintraginSeitentabelle: Bei offset von 12 bit bleiben 8 bit pro Seite, also 1 Byte. 1011 1111 Ermittlung der physikalischen Startadresse aus der Seitennr.: 1. Addition von Seitennr (in bit) und Tabellenbasisadresse. 2. Diese Adresse enthält als Wert die oberen Bits der Startadresse. 1byte Ermittlung der gesuchten physikalischen Adresse: 1. Die oberen Bits werden mit dem offset konkateniert, z.b. 1011 1111 und 1000 1111 1111. 2. Das Ergebnis ist die physikalische Adresse: 1011 1111 1000 1111 1111. 3
Paging (Folie 5-66) Eintrag in Seitentabelle kann nur in Worten (hier Bytes) adressiert werden! - weniger Bits auf ein Byte verlängern - Vielfaches von Bytes möglich Letzerer Fall erfordert, dass die Seitennr. mit der Anzahl der Bytes multipliziert wird, bevor sie zu der Tabellenbasisadresse addiert wird. Weiteres Beispiel: Seite 4KB, Speicher 128 MB, 27bit-Adressen, 15bit-Einträge in Seitentabelle, also 2 Byte, daher muss Seitennr. vor Addition mit 2 multipliziert werden! Realität: - In der Seitentabelle werden eben den oberen Bits der physikalischen Adresse noch weitere Bits für Verwaltungsinformationen benötigt. - Die Seitentabelle wird ebenfalls in einer Seite abgelegt. - Die Tabellenbasisadresse ist somit der Anfang einer physikalischen Seite im Speicher. - Es werden zur Adressierung nur die höheren Bits benötigt, die anderen sind Null und werden gaicht erst gespeichert. 4
Clock-Algorithmus (Folie 5-103) Zusätzlich zu den Punkten auf der Folie gilt: Der Zeiger zeigt auf die Seite, bei der die Suche nach einer zu verdrängenden Seite beginnt. Das Referenzbit der eingelagerten Seite wird auf 1 gesetzt (das geht auch aus Folie 5-102 hervor). Der Zeiger wird nach dem Einlagern eins weiter gesetzt. Wird eine Seite nach ihrer Einlagerung erneut referenziert, wird ihr Referenzbit auf 1 gesetzt. (Hinweis: Auf der Folie 5-104 befinden sich 2 Fehler, siehe auch Errata im Netz. Beim zweiten und dritten Referenzvektor muss der Auswahlzeiger eins weiter gesetzt werden.) 5
Clock-Algorithmus (Folie 5-103) Beispiel: Beim Übergang von t=4 nach t=5 passiert folgendes: Zunächst wird das Referenzbit für die Seite 1 auf Null gesetzt, dann wandert der Zeiger weiter. Er findet noch drei weitere Einsen, die auf Null gesetzt werden. Die erste gefundene Null ist das Referenzbit der Seite 1. Deshalb wird diese ausgelagert und die Seite 5 dort eingelagert. r i=2 n r i=1 n r i=2 n 1 1 1 1 i=1 i=2 1 2 i=1 1 2 t=3 t=4 t=5 1 1 1 1 1 2 1 4 1 2 0 4 i=2 i=1 i=2 i=1 i=2 3 1 3 1 3 4 5 1 5 0 3 0 2 i=1 6