Begonnen amDienstag, 30. Juli 2024, 17:03
StatusBeendet
Beendet amDienstag, 30. Juli 2024, 17:04
Verbrauchte Zeit9 Sekunden
Bewertung0,00 von 24,00 (0%)

Frage 1

Nicht beantwortet
Erreichbare Punkte: 1,00

Fragetext

Beim Paging...

Frage 1 Antwort
a.

... muss die Seitentabelle bijektiv sein.

b.

... wird der gesamte Prozessspeicher am Stück in den physischen Speicher geladen.

c.

... wird eine sogenannte Seitentabelle verwendet, die Seiten (Virtueller Adressraum) auf Kacheln (Physikalischer Adressraum) abbildet.

d.

... wird der virtuelle Adressraum eines Prozesses in Seiten gleicher Größe unterteilt, die unabhängig voneinander im physischen Speicher platziert werden können.

e.

... gibt es keine Möglichkeit, Seiten zwischen Hauptspeicher und Sekundärspeicher auszutauschen.

Feedback

Frage 2

Nicht beantwortet
Erreichbare Punkte: 4,00

Fragetext

Beim Paging/Segmentierung verwendet man meistens einen Übersetzungspuffer (Translation Look-Aside Buffer, kurz TLB) um einen schnellen Zugriff auf die Seitenabbildungen zu ermöglichen. Der
TLB bietet Platz für einige Abbildungen der Seiten/Segmenttabelle. In der Vorlesung haben Sie bereits den vollassoziativen TLB kennengelernt. Bei dieser TLB-Variante werden mehre Basisadressen in einer assoziativen Tabelle festgehalten und bei bedarf durch einen Ersetzungsalgorithmus ersetzt.

Neben den voll- und mengenassoziativen TLB finden auch nicht-assoziative TLBs Anwendung. Bei dieser Variante wird die virtuelle Adresse in einen Tag und einen Index zerlegt. Zu jedem Index wird im TLB genau eine Basisadresse festgehalten. Bei jedem Zugriff wird geprüft, ob die Basis für den jeweiligen Index mit dem Tag übereinstimmt. Ist dies der Fall spricht man von einem TLB-Hit. Stimmt der Tag nicht mit der Basis überein, handelt es sich um einen TLB-Miss. Bei einem TLB-Miss muss die Abbildung aus der Seiten/Segmenttabelle geladen werden. Die Basis wird in diesem Fall mit dem angeforderten Eintrag ersetzt.

Die ’Addition’ in den oberen beiden Blockschaltbildern ist als Konkatenation der Kachelnummer aus dem TLB mit dem Offset innerhalb der Seite zu verstehen, da die Seiten gleich groß sind und die Größe einer Zweierpotenz besitzen.

In dieser Aufgabe soll der Tag aus fünf Bits und der Index aus zwei Bits bestehen. Simulieren Sie den nicht assoziativen TLB für fünf Zugriffe indem Sie die vorbereitete Tabelle vervollständigen. Schreiben Sie die Basen als Binärzahlen im Format BBBBB.

- Die Basis für den Index 00 lautet 10000.
- Die Basis für den Index 01 lautet 10101.
- Die Basis für den Index 10 lautet 11100.
- Die Basis für den Index 11 lautet 10110.

Die erste Spalte der Tabelle enthält eine Nummerierung der Zeilen.
Die zweite und dritte Spalte enthalten den angeforderten Tag (5 Bits) und Index (2 Bits)
Die vierte Spalte enthält die Basis des Index 00, die fünfte Spalte enthält die Basis des Index 01, die sechste Spalte enthält die Basis des Index 10 und die letzte Spalte enthält die Basis des Index 11.

Schreiben Sie die Basen als Binärzahlen im Format BBBBB:

1 | 10000 | 00 | | | |
2 | 10101 | 01 | | | |
3 | 01101 | 10 | | | |
4 | 10110 | 11 | | | |
5 | 11000 | 11 | | | |
6 | 01101 | 10 | | | |
7 | 01101 | 00 | | | |
8 | 01101 | 11 | | | |

Dieser Aufgabentyp ist nicht relevant für die Klausur und ist hier als Zusatzaufgabe zu verstehen. Ein Verständnis von Paging, Segmentierung und TLBs ist aber sehr wohl relevant.

Frage 3

Nicht beantwortet
Erreichbare Punkte: 1,00

Fragetext

Übersetzen Sie mit Hilfe der Speichersegmentierung die virtuelle Adresse 0x0F0ADDAA in eine physikalische Adresse. 


Die höchstwertigen 8 Bit der logischen Adresse geben die Position innerhalb der Segmenttabelle an. Tragen Sie die berechnete Adresse als Hexadezimalzahl 0x???????? im Format ???????? (also ohne den sonst üblichen Präfix 0x...) ein. Löst eine Speicheranfrage eine Speicherschutzverletzung aus, machen Sie dies bitte durch XXXXXXXX kenntlich. Verwenden Sie ausschließlich Ziffern und die Großbuchstaben A, B, C, D, E, F und X für die Antwort.

Für die Klausur ist es möglicherweise notwendig, dass Sie sicher mit Hexadezimalzahlen rechnen können!

Feedback

Frage 4

Nicht beantwortet
Erreichbare Punkte: 1,00

Fragetext

Übersetzen Sie mit Hilfe der Speichersegmentierung die virtuelle Adresse 0x00AABB in eine physikalische Adresse. 


Die höchstwertigen 8 Bit der logischen Adresse geben die Position innerhalb der Segmenttabelle an. Tragen Sie die berechnete Adresse als Hexadezimalzahl 0x???????? im Format ???????? (also ohne den sonst üblichen Präfix 0x...) ein. Löst eine Speicheranfrage eine Speicherschutzverletzung aus, machen Sie dies bitte durch XXXXXXXX kenntlich. Verwenden Sie ausschließlich Ziffern und die Großbuchstaben A, B, C, D, E, F und X für die Antwort.

Für die Klausur ist es möglicherweise notwendig, dass Sie sicher mit Hexadezimalzahlen rechnen können!


Feedback

Frage 5

Nicht beantwortet
Erreichbare Punkte: 1,00

Fragetext

Bei einem Kontextwechsel...

Frage 5 Antwort
a.

... wird der Zustand des aktuell laufenden Prozesses gespeichert und der Zustand des nächsten zu laufenden Prozesses geladen.

b.

... muss der Inhalt der Translation Lookaside Buffer (TLB) invalidiert werden, da sich die virtuelle zu physikalische Adressübersetzung ändert.

c.

... kann die Effizienz des Systems beeinträchtigt werden, da der Wechsel zwischen Prozessen Zeit und Ressourcen kostet.

d.

... werden alle Daten im Cache automatisch beibehalten, um die Leistung zu verbessern.

e.

... wird nur zwischen Benutzerprozessen durchgeführt, nicht zwischen Kernelprozessen.

f.

... werden die Hardware-Komponenten wie CPU und Speicher komplett neu initialisiert.

g.

... bleibt der TLB unverändert, da er keine spezifischen Prozessinformationen speichert.

h.

... muss der aktuelle Prozess immer auf den Abschluss aller seiner Fäden warten, bevor er gespeichert wird.

Feedback

Frage 6

Nicht beantwortet
Erreichbare Punkte: 4,00

Fragetext

Sowohl im Zusammenhang mit Übersetzungspuffern (TLB) von voll- bzw. mengenassoziativen Speichern als auch bei der Arbeit mit Caches werden Ersetzungsalgorithmen eingesetzt. Mit einem solchen Algorithmus lässt sich entscheiden, welcher TLB-Eintrag bzw. welche Seite/Kachel optimalerweise zu entfernen ist, wenn kein weiterer Eintrag bzw. keine weitere Seiten/Kachel mehr aufgenommen werden kann. Ersetzungsalgorithmen approximieren also eine Lösung für das Ersetzungsproblem.

In der Vorlesung wurde unter anderem der LFU-Algorithmus eingeführt. Naiv lässt sich der LFU-Algorithmus folgendermaßen implementieren: Die CPU besitzt einen Zähler, der bei jedem Speicherzugriff inkrementiert wird. bei jedem Zugriff wird der aktuelle Zählerwert in den jeweiligen Seitendeskriptor geschrieben. Wird eine nicht eingelagerte Kachel aufgerufen, so wird die am seltensten aufgerufene Kachel mit dieser ersetzt.

Beim LRU-Algorithmus wird im Gegensatz dazu die am längsten nicht mehr aufgerufene Kachel ersetzt.

Führen Sie den LFU-Algorithmus für die in der Tabelle gegebene Referenzfolge aus. Tragen Sie die in jedem Zeitschritt eingelagerten Seiten in die Registertabelle ein und verwenden Sie X für einen noch unbelegten Rahmen.

Referenzfolge: 1 5 3 3 5 4 4 2 7 4 4 4 5 6





Frage 7

Nicht beantwortet
Erreichbare Punkte: 4,00

Fragetext

Sowohl im Zusammenhang mit Übersetzungspuffern (TLB) von voll- bzw. mengenassoziativen Speichern als auch bei der Arbeit mit Caches werden Ersetzungsalgorithmen eingesetzt. Mit einem solchen Algorithmus lässt sich entscheiden, welcher TLB-Eintrag bzw. welche Seite/Kachel optimalerweise zu entfernen ist, wenn kein weiterer Eintrag bzw. keine weitere Seiten/Kachel mehr aufgenommen werden kann. Ersetzungsalgorithmen approximieren also eine Lösung für das Ersetzungsproblem.

In der Vorlesung wurde unter anderem der LRU-Algorithmus eingeführt. Naiv lässt sich der LRU-Algorithmus folgendermaßen implementieren: Die CPU besitzt einen Zähler, der bei jedem Speicherzugriff inkrementiert wird. bei jedem Zugriff wird der aktuelle Zählerwert in den jeweiligen Seitendeskriptor geschrieben. Wird eine nicht eingelagerte Kachel aufgerufen, so wird die am am längsten nicht mehr aufgerufene Kachel mit dieser ersetzt.

Führen Sie den LRU-Algorithmus für die in der Tabelle gegebene Referenzfolge aus. Tragen Sie die in jedem Zeitschritt eingelagerten Seiten in die Registertabelle ein und verwenden Sie X für einen noch unbelegten Rahmen.

Referenzfolge: 1 5 3 3 5 4 4 2 7 4 4 4 5 6






Frage 8

Nicht beantwortet
Erreichbare Punkte: 4,00

Fragetext

Eine weitere Möglichkeit zur Implementierung des LRU-Algorithmus besteht darin, die Einträge durch eine ’Ist älter als oder gleich alt wie’-Relation (bezeichnet mit ⪯) miteinander in Beziehung zu setzen. Ein Eintrag ist genau dann ’älter’ als ein anderer Eintrag, wenn er länger nicht mehr aufgerufen wurde als der andere. Wird ein Eintrag neu hinzugefügt oder aufgerufen, wird dieser automatisch zum jüngsten Eintrag. Der älteste Eintrag wird bei bedarf entfernt. Die Relation ändert sich also bei jedem Zugriff. Im Rechner wird die Relation ⪯ in Form einer Adjazenzmatrix 'Adj' festgehalten.

Adj[i, j] bezeichnen den Eintrag in der i-ten Zeile und der j-ten Spalte der Adjazenzmatrix. Adj[i, j] = 1 gilt also immer genau dann, wenn i älter als oder gleich alt wie j ist (j ⪯ i). Andernfalls gilt Adj⪯[i, j] = 0.

Gegeben sei die folgende Adjazenztafel einer Relation ⪯:


⪯ soll hier die Einträge eines vollständig befüllten, vollassoziativen TLBs bzgl. ihres Alters in Relation setzen.

Welcher Eintrag ist der älteste? Antworten Sie mit einer Ziffer:

Welcher Eintrag ist der jüngste? Antworten Sie mit einer Ziffer:

Nun wird eine virtuelle Adresse aufgerufen, dessen Übersetzung zur physikalischen Adresse nicht in der TLB-Menge vorliegt. Der korrekte Eintrag wird nun also aus der Seitentafel geholt und soll im TLB eingelagert werden. Dazu wird der älteste Eintrag mit dem geholten Eintrag überschrieben. Die oben gegebene Adjazenztafel sei so zu verändern, dass nun der älteste Eintrag zum jüngsten wird. Statt der X soll hier nun unter Berücksichtigung der Reflexivität und Antisymmetrie auch jeweils konkret 0 bzw. 1 eingetragen werden.









Welcher Eintrag ist nun der älteste? Antworten Sie mit einer Ziffer:


Frage 9

Nicht beantwortet
Erreichbare Punkte: 1,00

Fragetext

Gegeben sei die folgende Instanz des Zweite-Chance-Algorithmus (Clock-Algorithmus):


Welche Kachel wird als nächstes entfernt? (Durchlauf im Uhrzeigersinn!)

Feedback

Frage 10

Nicht beantwortet
Erreichbare Punkte: 1,00

Fragetext

Die folgende Speicherlandkarte zeigt das Speicherlayout eines UNIX-Prozesses:

Welche Segmente finden sich auch in einer ELF-Datei wieder und werden bei der Programmausführung in den Arbeitsspeicher kopiert?

Schieben Sie die Segmente an die jeweils richtigen Stellen!

Hintergrundbild, auf das die Markierungen gezogen werden
leer 
leer 
leer 

Feedback

Frage 11

Nicht beantwortet
Erreichbare Punkte: 1,00

Fragetext

Gegeben sei das folgende C-Programm:


Der C-Code wird kompiliert und auf einem UNIX-System ausgeführt.

Der Compiler stellte fest, dass g an keiner Stelle im Programm geändert wird und wandelte g daher in eine Konstante um.

Man betrachte nun das Speicherlayout des UNIX-Prozesses.


In welche Segmente müssen die unten stehenden Funktionen/Variablen/Konstanten eingeordnet werden?

Sollten mehrere Funktionen/Variablen/Konstanten zu einem Segment gehören, ordnen Sie aufsteigend alphabetisch.

Das '-' sei den verbleibenden Drop-Zonen beizuordnen.

.text:  Leer 1 Frage 11  Leer 2 Frage 11
.rodata:  Leer 3 Frage 11
.data:  Leer 4 Frage 11
.bss:  Leer 5 Frage 11
.heap:  Leer 6 Frage 11
.stack:  Leer 7 Frage 11  Leer 8 Frage 11  Leer 9 Frage 11
.kernel:  Leer 10 Frage 11

vv flaecheflaeche luftdichteluftdichte mainmain massemasse luftreibungluftreibung endgeschwindigkeitendgeschwindigkeit gg

Feedback

Frage 12

Nicht beantwortet
Erreichbare Punkte: 1,00

Fragetext

Der Heap muss von jedem UNIX-Prozess selbst verwaltet werden. Dem C-Programmierer stehen dazu die Methoden malloc(n) und free(p) zur Verfügung, mit denen n Byes im Heap reserviert werden können bzw. ein Block mit der Startadresse p wieder fregegeben werden kann.

malloc(n) und free(p) können auf unterschiedlichste Art und Weise implementiert werden. Aus der Vorlesung sind unter anderem Next-Fit, Best-Fit oder auch das Buddy-Verfahren bekannte Platzierungsstrategien. Das Buddy-Verfahren kann zum Beispiel dann eingesetzt werden, wenn die geforderten n immer einer Zweierpotenz entsprechen. Sollte bei der Anwendung des Buddy-Verfahrens n keiner Zweierpotenz entsprechen, wird n auf die nächste Zweierpotenz 'aufgerundet'. Was würde in diesem Fall im Heap entstehen?

Antworten Sie präzise mit dem Begriff aus der Vorlesung.

Feedback