Linux Memory Management Flashcards
1
Q
Was ist das Problem ohne virtuelle Adressierung?
A
- wenn mehr VPFN vom Prozess vorhanden sind, als auf dem RAM, kann der Prozess nur solange laufen, bis der RAM voll ist und dann stürzt das Programm ab
- durch virtuelle Adressierung kann stattdessen (Page-Out) Daten vom RAM in die Festplatte verschoben werden und in einer Map der Verweis für die Daten auf die Festplatte geändert werden
2
Q
Wie funktioniert virtuelle Adressierung?
A
- Prozesse haben VPFN, welche eine Page Table haben
- die Page Table mapped VPFN auf PFN
- Mapping kann gleiche PFN wie andere Programme vergeben um Kooperation zu ermöglichen
- kann auch gleiche VPFN auf verschiedene PFN legen, um Programme zu trennen
- bessere Ausnutzung vom RAM Platz
3
Q
Wie sieht eine Page Table im Detail aus?
A
- Valid Flag
- Zugriffsrechte
- Page Dirty Flag
- PFN
4
Q
Welche 4 Fälle kann es für Page Tables geben und was bedeuten sie?
A
- Valid und PFN gesetzt -> Seite ist vorhanden und im RAM
- Valid gelöscht und PFN gelöscht -> Seite ist ungültig, Page fault
- Valid gesetzt und PFN gelöscht -> Demand paging, Seite nicht im RAM
- Valid gelöscht und PFN gesetzt -> Seite im Swap
5
Q
Was passiert wenn ein Page Fault -> Demand Paging passiert?
A
- RAM muss frei gemacht werden und Page muss von der Disk geladen werden
1. RAM freimachen -> älteste Page auslagern -> ist die Page dirty oder nicht?
2. a Page ist dirty -> muss auf Disk wieder gespeichert werden, weil sie seit dem letzten Mal laden geändert wurde
2. b Page ist nicht dirty -> kann einfach verworfen werden, weil sie genauso ist, wie sie zuletzt geladen wurde
3. Page von Disk kann nun an die Stelle im RAM die frei geworden ist
4. OS muss die Page Table anpassen
5. Instruktion die auf die Page zugreifen wollte wird erneut ausgeführt und kann nun die Page im RAM verwenden
6
Q
Wie funktioniert der Zugriff auf eine Page mit virtueller Adressierung?
A
- Offset und VPFN aus der Virtuellen Adresse extrahieren
- auf Page Table mit der VPFN zugreifen und die PFN auslesen
- mit Offset und PFN die Physikalische Adresse generieren
7
Q
Ist Paging immer sinnvoll?
A
- nein, weil es sehr sehr langsam ist
- man will es nie benutzen, aber es ist gut, dass es geht da ansonsten das Programm einfach abstürzen würde
- je mehr RAM man hat, umso seltener muss man Paging nutzen
8
Q
Was ist TLB?
A
- Translation Lookaside Buffer
- behebt das Problem, dass man die Page Table Einträge nachschlagen muss, was pro Adresse 2 Memory Zugriffe bedeutet (1x Page Table, 1x Adresse)
- wenn Page Table Einträge angefragt werden, wird geguckt ob TLB die Einträge hat, wenn nein, wird die Page Table in TLB geladen, wenn ja wird TLB einfach benutzt