Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Plain Text by abc ( 13 years ago )
1. Virtueller Speicher ist der Adressraum, der Prozessen zur Verfügung steht. Hierbei ist nicht
sämtlicher Speicher im Hauptspeicher: Über virtuelle Adressen kann auf die entsprechenden
Adressen im sekundären Speicher zugegriffen werden, als befinden sie sich im Hauptspeicher.
Die virtuellen Adressen werden dabei automatisch in reale, physische Adressen umgerechnet.
2. Der Prozess kann ohne Anpassung der entsprechenden Adressen unterbrochen und ausgelagert
werden und anschließend an einer anderen Stelle im Hauptspeicher wieder eingefügt
werden. Durch die dynamische Übersetzung zur Laufzeit kann der Prozess außerdem in
Segmente aufgespalten werden und so zusammenhanglos im Speicher verteilt werden. Außerdem
spart man Speicherplatz im Hauptspeicher, da nicht alle Daten immer vorhanden
sein müssen, die ein Prozess später zur Ausführung braucht.
3. Der ”resident set” ist der Teil eines Prozesses, der sich aktuell im Hauptspeicher befindet.
4. Wenn der Prozessor auf eine logische Adresse zugreift, die sich aktuell nicht im Speicher
befindet, generiert er einen Interrupt, der auf einen Speicherfehler hinweist. Das Betriebssystem
blockiert dann den Prozess und muss den Teil des Prozesses in den Hauptspeicher laden,
der zum Speicherfehler geführt hat, damit der Prozessor diesen später weiter ausführen
kann.
5. ”Thrashing” ist, wenn das Betriebssystem Teile eines Prozesses aus dem Hauptspeicher
entfernt, damit Platz ist für Teile des aktuell laufenden Prozesses. Wird dabei ein Teil
entfernt, der in nächster Zeit benötigt wird, kann es dazu führen, dass das System mehr
Zeit damit verbringt, Daten aus und in den Hauptspeicher zu bringen als tatsächlich
Instruktionen auszuführen. Um das zu vermeiden ”schätzt” das Programm anhand der
kürzeren Vergangenheit ab, welcher Teil am ehesten in näherer Zukunft nicht mehr gebraucht
wird (Lokalität).
6. Das ”P” Bit gibt an, ob die Seite bereits im Speicher ist. Das ”M” Bit gibt an, ob der
Inhalt der Seite bereits verändert wurde, seitdem die Seite in den Speicher geladen wurde.
7. Nach gegebenem Verfahren: Ist die Seitengröße keine Zweierpotenz, so existieren physikalische
Adressen, die man nicht ansteuern kann. Eine Zweierpotenz belegt gerade alle
möglichen Bit von alle Bit ”0” bis alle Bit ”1”. Bei einer Seitengröße ungleich einer Zweierpotenz
ist dies nicht der Fall. Z.B. bei einer Größe von 256 Byte bekommt man binär
einen Offset von ”000000” bis ”111111” und beginnt anschließend eine neue Seite. Bei einer
Größe von 60 Byte hingegen belegt man nur ”000000” bis ”111100”, und beginnt eine neue
Sebastian Hubenschmid, Marc Schmid 1 von 2 Betriebssysteme – 9
Seite mit Offset ”000000”. Adressen mit Offset ”111101” bis ”111111” bleiben ungenutzt.
Indirekt verliert man so Speicherplatz, da man bestimmte Bereiche im Speicher ja nicht
ansteuern kann.
Will man dies vermeiden, so muss man umständlich eine neue Methode erstellen, die diese
”Lücken” füllt. Dies benötigt aber unnötig Zeit.
8. Die ”Root Page Table” muss immer im Hauptspeicher bleiben, ansonsten gibt es einen
Seitenfehler. Die ersten 10 Bit der virtuellen Adresse verweisen auf einen Eintrag in ihr, in
dem wiederum ein Verweis auf die ”User Page Table” steht. Die ”User Page Table” enthält
die gesuchten Daten. Da diese aber sehr groß werden kann und somit zu viel Speicher
verbraucht, werden mehrere ”User Pages” in einer der ”Root Pages” gespeichert.

 

Revise this Paste

Your Name: Code Language: