|
Übung: SpeicherverwaltungSpeicherverwaltung
Geplante Bearbeitungszeit: drei Wochen
1. Aufgabe:
Eine Möglichkeit, mehrere Programme gleichzeitig laufen zu
lassen, ist die Einteilung des Speichers in feste Partitionen.
Erklären Sie die damit verbundenen Probleme und ihre Lösung.
2. Aufgabe:
Der Übergang von festen zu variablen Partitionen (Segmenten)
erfordert eine entsprechende Verwaltung. Dazu werden im
wesentlichen – unter Nutzung von Listen oder Bitmaps –
verschiedene Einlagerungsstrategien oder das Buddy-Verfahren
verwendet (s Tanenbaum,
Kap. 3.2). Erläutern Sie die generellen Vor- und Nachteile
dieser Vorgehensweise. Erklären und bewerten Sie die
Einlagerungsstrategien an folgendem
Beispiel:
![]() 3. Aufgabe:
Diskutieren Sie das Buddy-Verfahren (Vorgehen,
Vorteile und Probleme) anhand des folgenden Beispiels. Ein
Speicher kann 16 Seiten aufnehmen. Nacheinander sind
Segmente A,…,F einzulagern, die aus 5 – 1 – 3 – 4 – 2 – 3
Seiten bestehen (kann ein Segment bei seiner Anforderung nicht
eingelagert werden, so wird es für den nächstmöglichen
Zeitpunkt vorgemerkt). Danach wird Segment E und schließlich
Segment B freigegeben. Geben Sie den Ablauf der Einlagerungen
und die Lage der Segmente im Speicher an.
![]() 4. Aufgabe:
Geben Sie einen Überblick über den Begriff „virtueller
Speicher“ (Anliegen, Aufgaben, Begriffe, Vorgehensweise, Vor-
und Nachteile). Verdeutlichen Sie das Problem von Platzbedarf
und Tabellenauslastung bei der Verwendung einfacher
Seitentabellen anhand des nachfolgenden Beispiels, und
diskutieren Sie Lösungen für dieses Problem.
5. Aufgabe:
Betrachtet werde ein System mit folgenden Eigenschaften:
Geben Sie sowohl die einfachen Seitentabellen als auch die
invertierte Seitentabelle für folgenden Systemzustand an:
Was ändert sich, wenn in Prozess P2 die virtuelle
Adresse 0x1ABD auf 0x5ABD statt auf 0x4ABD
abgebildet werden soll?
6. Aufgabe:
Erläutern und bewerten Sie die verschiedenen Strategien zur
Verdrängung (Ersetzung) von Seiten beim virtuellen Speicher
anhand der folgenden Beispiele, wobei jeweils ein Speicher mit
vier Rahmen (Kacheln) zugrunde gelegt wird.
7. Aufgabe:
Aufgrund der Seitenreferenzen dreier Prozesse möge sich die in
unten stehender Abbildung dargestellte resultierende
Referenzfolge ergeben. Erläutern Sie den Begriff „Arbeitsmenge“
an diesem Beispiel. Tragen Sie in der Tabelle die entstehende
Speicherbelegung ein unter der Annahme, dass fünf Rahmen
verfügbar sind und dass jeder Prozess einen
Arbeitsmengenparameter (Fenstergröße) von 2 Seiten besitzt.
Erklären Sie ferner den Thrashing-Effekt.
![]()
Die restlichen Aufgaben basieren auf der x86-Prozessor-Familie
und gehen daher von folgenden Voraussetzungen aus:
8. Aufgabe:
Machen Sie sich mit Hilfe der auf der Webseite zur Verfügung
gestellten Web-App noch einmal mit dem Prinzip der
Adressumsetzung in mehrstufigen Seitentabellen vertraut. Wählen
Sie dazu folgende Adressen (wie üblich sind führende Nullen
weggelassen) und Zugriffsmodi aus, entscheiden Sie vorab über
die resultierende physische Adresse bzw. den resultierenden
Fehler und überprüfen Sie anschließend mit Hilfe der
App Ihr Ergebnis.
9. Aufgabe:
Gegeben sei der durch die abgebildete zweistufige Seitentabelle
beschriebene Adressraum, wobei 0x1000
die Eintrittsadresse für das Page
Directory ist. Alle angegebenen
Zahlen sind Hexadezimal notiert, ein freies Feld in den letzten
drei Spalten bedeutet, dass das entsprechende Bit nicht gesetzt
ist. Betrachtet werde eine Menge von Speicherzugriffen aus dem
normalen „user mode“ heraus (siehe Tabelle, Bedeutung der
Abkürzungen siehe Aufgabe 8). Entscheiden Sie für jeden
Speicherzugriff, ob der Zugriff gestattet ist und geben Sie in
diesem Fall die physische Adresse an. Bestimmen Sie andernfalls
den Grund der Ablehnung, die Art des Fehlers (Schutzverletzung
oder normaler Seitenfehler) und beschreiben Sie die Reaktion
des Betriebssystems.
![]()
10. Aufgabe:
Zum Erzeugen eines neuen Prozesses wird in Unix der Systemruf
fork() benutzt. Der Adressraum des
dadurch erzeugten Prozesses ist eine identische Kopie des
Adressraums des erzeugenden Prozesses. Da in der Regel der neue
Prozess sofort ein execve() ausführt
und dabei den Inhalt seines Adressraums ersetzt, versucht man
das tatsächliche Kopieren zu vermeiden. Die zugehörige Technik
heißt copy on write. Erläutern Sie, wie copy on write prinzipiell funktioniert, und führen Sie es für den
folgenden, durch eine einfache Seitentabelle beschriebenen
Adressraum exemplarisch durch (die 2. Spalte der Tabelle werde
dabei für das COW-Bit genutzt). Was geschieht, wenn nach dem
Kopieren zunächst der Kind-Prozess und danach der Vater-Prozess
schreibend auf Seite 7 zugreifen?
![]() 11. Aufgabe:
Im Unix-Teil der Vorlesung wurde die logische Struktur des
Adressraums eines Unix-Prozesses vorgestellt. Die Bereiche
innerhalb dieses Adressraums werden durch das Betriebssystem
mittels geeigneter Datenstrukturen – analog zum
Prozesssteuerblock – verwaltet.
|
Kontakt
Dipl.-Inf.
Michael Roitzsch Tel.: 463 42043 Fax: 463 38284 Regelungen
Zeit und OrtDieser Kurs wird in diesem Semester nicht angeboten. |