6. Übungsblatt

Werbung
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
Herunterladen