Arbeitsspeicher Flashcards
(9 cards)
Warum ist der Arbeits- und der Hintergrungsspeicher in Kacheln eingeteilt?
- erlaubt Strategien der Defragmentierung
- weil die Zuordnung in immer gleich große Pakete effizienter und besser kalkulierbar ist
- weil ständige Schreiblast beim Hintergrundspeicher sehr zeitaufwändig ist, daher nimmt man direkt größere Pakete bzw. Ketten von Befehlen
- erlaubt virtuelle Speicherverwaltung
Warum kann der virtuelle Speicher nicht beliebig groß sein, obwohl er in Wirklichkeit gar nicht existiert?
Wegen der Adressbeschränkung durch 32/64 Bit bzw. der Begrenzung der Swap-Files, die nicht zu groß sein sollten, um das System nicht zu verlangsamen.
Was passiert, falls die Seite, auf die sich die logische Adresse bezieht, nicht im Arbeits-
speicher ist?
- Programm wird per virtueller Speichertabelle im HS gesucht
- Ist Platz im RAM? Wenn nein, dann z.B. not-recently-used-Strategie (Kachel zum Überschreiben wird ausgewählt und ggf. vorher gesichert)
- Programm wird von Hintergrundkachel in den Arbeitsspeicher geschoben und Speichertabelle aktualisiert
Wie setzt sich die virtuelle/logische Adresse zusammen?
Seitennummer + Offset
Seitennummer = virtuelle Kachelnummer
Offset = Nummer des Eintrags der Kachel (hier: 0-9)
Beispiel: Programmzähler misst die 5980
- virtuelle Kachel 598, Offset 0
- entspricht physischer Kachel X, Eintrag 0
Wie ist die Seitentabelle des virtuellen Speichers aufgebaut?
- virtuelle Adresse
- V-Bit (1 = RAM, 0 = HS)
- Access-Bit
- Modified Bit
- physische Adresse
Was beschreibt das Access-Bit mit 0 und 1?
- Access Bit = 1 besagt, dass die Kachel in sepz. Zeitfenster benutzt wurde und besser nicht überschrieben werden sollte, weil sie wahrscheinlich für noch laufenden Prozess gebraucht wird
- Acess Bit = 0 besagt, dass Prozess womöglich ersetzt werden kann, weil akut kein Prozess mehr darauf zugegriffen hat
Was beschreibt das Modified-Bit mit 0 und 1?
- Modified Bit = 1 besagt, dass die Kachel gegenüber dem Original im Langzeitspeicher bereits verändert wurde
- Modified Bit = 0 besagt, dass die Kachel gegenüber dem Original im Langzeitspeicher noch nicht verändert wurde
Was ist die Rangordnung von A-Bit und M-Bit beim Not-Recently-Used-Prinzip?
- bester Fall: A = 0, M = 0
- Kachel wurde kürzlich nicht genutzt und muss vor dem Überschreiben nicht noch mal im Langz.sp. gesichert werden, kann also überschrieben werden - bester Fall: A = 0, M = 1
- Kachel wur kürzlich nicht genutzt, aber seit Aufnahme in RAM verändert, sollte vor dem Freimachen also noch mal im Langzsp. gesichert werden, kann danach überschrieben werden - bester Fall: A = 1, M = 0
- Kachel wurde kürzlich benutzt, aber nicht verändert, kann zur Not also überschrieben werden - bester Fall: A = 1, M = 1
- Kachel wurde kürzlich genutzt und verändert, muss also noch gesichert werden und ist wahrscheinlich auch akut relevant, kann zur absoluten Not überschrieben werden
Was ist das V-Bit?
0 = HS
1 = RAM