Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 6. Übung Abgabe: 8.12. – 14.12.2009 1 Präsenzübungen 1.1 Schnelltest a) Caches und virtueller Speicher können folgendermaßen verglichen werden: 2 2 2 2 2 Die Assoziativität in Caches entspricht der Kachelgröße im virtuellen Speicher. Blöcke und Blockgröße in Caches entsprechen Seiten und Seitengrößen. Der Cache-Index entspricht der Seitennummer. Ein Cache-Miss entspricht einem Seitenfehler (page fault). Caches und virtueller Speicher können nicht sinnvoll verglichen werden. b) Welche der folgenden Aussagen über virtuellen Speicher, die Seitentabelle und die Adressabbildung sind richtig? 2 Jeder Prozess besitzt eine eigene Seitentabelle. 2 Jeder Prozess besitzt Lese- und Schreibzugriff auf die Seitentabelle. 2 Die Seitentabelle ordnet jeder physischen Speicherseite die darin enthaltene virtuelle Speicherseite zu. 2 Die Seitentabelle wird im Hintergrundspeicher gehalten. 2 Die Seitentabelle kann in den Hintergrundspeicher ausgelagert werden. 2 Die Seitentabelle kann mehrstufig sein. 2 Die virtuelle Seitengröße entspricht immer der physischen. 1.2 Caches revisited Wir betrachten noch einmal einen direkt-abbildenden Cache. Folgende Eigenschaften sind gegeben: • 16-Bit Adressgröße • Blockgröße 256 Bytes • 16 Cache-Blöcke a) Ermitteln Sie die Bitbreite von Tag, Index und Blockoffset. b) Ermitteln Sie für die folgenden Zugriffe, ob es sich um Hits oder Misses handelt. Tragen Sie in die untere Tabelle jeweils ein, wie sich der Cacheinhalt verändert. Den ersten Eintrag haben wir für Sie bereits vorgenommen. Zugriff Hit/Miss 0x0D3A Miss 0x0AD0 0x32C7 0x017D 0x1888 0x0A9C 0x4F0E 0x2752 0x6D6A 1 0x510B 0x14B3 0x78B3 0x014B 0x0D8D 0x0AA3 6. Übung Grundlagen der Informatik 3, WS 09/10 Index 0 Valid Tag x 0 Daten 1 2 3 4 5 6 7 8 9 A B C D Mem[0x0D00 - 0x0DFF] E F c) Wir betrachten nun einen zweifach-assoziativen Cache mit denselben Werten wie oben (und derselben Gesamtzahl von Cacheblöcken). Welche Bitbreiten ändern sich hierdurch? Ändert sich die Gesamtgröße des Caches (einschließlich Verwaltungsinformationen)? d) Inwieweit ist eine solche Variante des Caches „besser“ als die aus Aufgabenteil a)? Würden sich weitere Verbesserungen ergeben, wenn man einen 16-fach assoziativen Cache verwenden würde? 1.3 Seitenflattern Gegeben ist ein System mit virtuellem Speicher und der Seitenersetzungsstrategie LRU. Die Seitengröße beträgt 4096 Bytes, ein int ist 4 Bytes groß. Die Matrix int m [256][256]; /* 256 x 256 Matrix */ beginnt mit der zweiten Seite des virtuellen Adressraums (d. h. die virtuelle Adresse von m[0][0] ist 4096). Beachten Sie, dass Matrizen in C zeilenweise abgespeichert werden.1 Das Programm liegt in der ersten Seite des virtuellen Adressraums. 1 Bei der Notation m[i][k] bezeichnet also k den Zeilen- und i den Spaltenindex, wobei alle Elemente einer Zeile aufeinanderfolgend im Speicher liegen. 2 6. Übung Grundlagen der Informatik 3, WS 09/10 a) b) 1 2 3 4 5 1 2 3 4 5 for ( i =0; i <=255; i ++){ for ( k =0; k <=255; k ++){ m [ i ][ k ] = 0; } } for ( i =0; i <=255; i ++){ for ( k =0; k <=255; k ++){ m [ k ][ i ] = 0; } } Einem Prozess stehen zur Ausführung einer dieser beiden Programmvarianten drei physische Speicherseiten zur Verfügung. Das Programm befindet sich bereits in Seite 1, zwei weitere Seiten sind noch frei. Wieviele Seitenfehler werden von den beiden Varianten (a) und (b) erzeugt? 1.4 Virtueller Speicher Ein Prozess bestehe aus 5 Seiten im virtuellen Adressraum und habe zwei Kacheln mit den Adressen A1 und A2 im Hauptspeicher zur Verfügung. Die Referenzreihenfolge auf die virtuellen Seiten sei wie in nachstehender Tabelle angegeben, wobei n l einen Lesezugriff und n s einen Schreibzugriff auf die n-te Seite bedeutet. Wir nehmen LRU als Seitenersetzungsstrategie an. a) Führen Sie Buch über die Speicherbelegung, indem Sie die leeren Felder in der Tabelle wie folgt ausfüllen: • Unter Seitenfehler sollen Sie eintragen, ob die jeweilige Referenz zu einem Seitenfehler führt (ja) oder nicht (nein). • Unter A1 und A2 sollen Sie die Seite angeben, die sich nach der Referenz in der jeweiligen Speicheradresse befindet. • Unter zurückgeschrieben sollen Sie die Seite angeben, die auf die Platte zurückgeschrieben werden muss. Ist kein Zurückschreiben erforderlich, so tragen sie „—“ ein. Referenz 1l Seitenfehler A1 2s A2 - zurückgeschrieben - 4s 2l 5l 3s 2s 3l 1s b) Führen Sie Buch über den Inhalt der Seitentabelle des Prozesses, welche aus einer P-Spalte (Present-Bit) und einer Adr.-Spalte (physische Speicheradresse) besteht. In den unteren Tabellen ist zunächst der Zustand der Seitentabelle vor der Ausführung angegeben. Dabei steht die i-te Zeile jeder Tabelle für die i-te virtuelle Speicherseite. 3 6. Übung Grundlagen der Informatik 3, WS 09/10 Tragen Sie für jeden Zugriff nur die Änderungen gegenüber dem jeweiligen Vorzustand der Tabelle ein. 1l P 0 0 0 0 0 Adr. A2 A1 A1 A2 A1 P 5l P Adr. Adr. 2s P 3s P Adr. Adr. 4s P 2s P Adr. Adr. 2l P 3l P Adr. Adr. 1s P Adr. 2 Hausübungen 2.1 Adressumrechnung Für ein Computersystem mit virtuellem Speicher sind die folgenden Daten bekannt: • 11 Bit Seitenoffset (Byteadressierung) • 32 virtuelle Seiten • 8 physische Seiten a) Wie groß ist der virtuelle Adressraum des Systems? 0,5 Punkte b) Wieviel physischen Speicher hat das System? 0,5 Punkte c) Wieviele Bits werden für die Adressierung der virtuellen Seiten benötigt? 0,5 Punkte d) Wieviele Bits werden für die Adressierung der physischen Seiten benötigt? 0,5 Punkte e) Betrachten Sie die nachstehende Momentaufnahme der Seitentabelle eines Prozesses. Geben Sie für die folgenden Zugriffe auf virtuelle Speicheradressen die vom Betriebssystem zu ermittelnde physische Speicheradresse an. Zur Ihrer Hilfe ist auf der nächsten Seite eine Tabelle vorgegeben. Führt der Zugriff zu einem Seitenfehler, so schreiben Sie unter Phys. Adresse einfach „Seitenfehler“. 0x42ed, 0xb84b, 0xaf1e, 0xe6d8, 0x1f2c, 0x1348, 0xa324, 0xe5b6 0xb8ed, 0x4209, 0xa0d3, 0xb81e, 0x5d93, 0x95d7, 0x10db, 0xe11d Dabei sollen die Zugriffe unabhängig von einander erfolgen. Sie sollen also keine Einoder Auslagerung von Seiten betrachten, so dass sich die Seitentabelle nicht ändert. 8 Punkte 4 6. Übung 0 1 2 3 4 5 6 7 Grundlagen der Informatik 3, WS 09/10 P 0 0 0 0 0 0 0 0 Seitennr. 7 5 6 3 3 4 4 6 Virt. Adresse 0x42ed 0xb84b 0xaf1e 0xe6d8 0x1f2c 0x1348 0xa324 0xe5b6 0xb8ed 0x4209 0xa0d3 0xb81e 0x5d93 0x95d7 0x10db 0xe11d 8 9 10 11 12 13 14 15 Seitennr. P 1 0 0 0 0 0 0 0 Seitennr. 2 4 7 6 5 2 1 6 16 17 18 19 20 21 22 23 Seitenoffset P 0 0 1 0 1 1 0 1 Seitennr. 2 2 1 5 0 5 2 3 24 25 26 27 28 29 30 31 P 1 0 0 1 1 0 0 0 Phys. Adresse 5 Seitennr. 7 1 6 6 4 6 4 4