Version [22485]
Dies ist eine alte Version von BSys07Speicherverwaltung erstellt von RonnyGertler am 2013-03-26 20:50:59.
Betriebssysteme (Betriebssystemtheorie) - Kapitel 7 - Speicherverwaltung
File | Last modified | Size |
---|---|---|
BSys35.gif | 2023-10-06 18:35 | 7Kb |
BSys36.gif | 2023-10-06 18:35 | 7Kb |
BSys37.gif | 2023-10-06 18:35 | 11Kb |
BSys38.gif | 2023-10-06 18:35 | 11Kb |
BSys39.gif | 2023-10-06 18:35 | 11Kb |
BSys40.gif | 2023-10-06 18:35 | 5Kb |
BSys41.gif | 2023-10-06 18:35 | 16Kb |
BSys42.gif | 2023-10-06 18:35 | 5Kb |
BSys43.gif | 2023-10-06 18:35 | 13Kb |
BSys44.gif | 2023-10-06 18:35 | 23Kb |
BSys45.gif | 2023-10-06 18:35 | 23Kb |
BSys46.gif | 2023-10-06 18:35 | 4Kb |
BSys47.gif | 2023-10-06 18:35 | 14Kb |
BSys48.gif | 2023-10-06 18:35 | 9Kb |
BSys49.gif | 2023-10-06 18:35 | 5Kb |
BSys50.gif | 2023-10-06 18:35 | 2Kb |
BSys51.gif | 2023-10-06 18:35 | 12Kb |
BSys52.gif | 2023-10-06 18:35 | 12Kb |
Inhalte von Dr. E. Nadobnyh
7.1 Einführung
Aufgaben der Speicherverwaltung
1) Zuteilung (Allokation) und Freigabe von Speicherbereichen für mehrere Adressräume.
2) Die Abbildung der logischen Adressen auf die physische Adresse.
3) Führung einer Übersicht über freie und belegte Teile des Arbeitsspeichers.
4) Speicherbereinigung und Speicherverdichtung.
5) Auslagerung von Speicherbereichen auf einen Sekundärspeicher.
6) Speicherschutz der Adressräume von unbefugten Speicherzugriffen anderer Prozesse.
Grundbegriffe
1) Eine logische Adresse (Programmadresse) wird von einem Prozess generiert und von der CPU verwendet. Sie ist z.B. der Inhalt des Zeigers.
2) Eine physische Adresse (Speicheradresse) wird beim Speicherzugriff verwendet.
Varianten der Speicherabbildung
1) Mit der vollständigen oder unvollständigen Belegung.
Eine vollständige (komplette) Belegung findet statt, wenn das gesamte Programm in den Speicher geladen wird.
2) Mit der kontinuierlichen oder diskontinuierlichen Belegung.
Eine kontinuierliche Belegung findet statt, wenn verschiedene Teile des Programms zusammenhängend im Speicher platziert werden.
3) Mit oder ohne Auslagerung.
Eine Auslagerung ist eine regelmäßige Speicherung des Programms vom Hauptspeicher in Sekundärspeicher, z.B. auf die Festplatte und zurück.
⇒ Demo 1
Überblick
1) Realer Speicher: Ein Prozess kann nur dann laufen, wenn sich sein Adressraum vollständig im Speicher befindet.
2) Virtueller Speicher: Ein Prozess kann auch dann laufen, wenn sich nur ein Teil seines Adressraums im Speicher befindet.
7.2. Realer Speicher
Systeme ohne Speicherabstraktion
Im Hauptspeicher steht das Betriebssystem und ein einziges Anwenderprogramm.
Besonderheiten:
1) Logische und physische Adressen sind gleich.
2) Physische Adressen können zur Übersetzungszeit schon bekannt sein.
3) Es gibt keinen Speicherschutz. Ein Fehler im Anwendungsprogramm kann das Betriebssystem aushebeln, wenn es sich nicht im ROM befindet.
4) Diese Technik ist für Monoprogrammierung (Singletasking, Einprogrammbetrieb) geeignet und wird heute höchstens in einfachen eingebetteten Systemen verwendet. Frühes Beispiel: MS-DOS.
Variable Partitionierung
Definition:
Variable Partitionierung (Partitionierung variabler Größe) ist eine dynamische Aufteilung des Speichers in eine variable Anzahl von Bereichen variabler Größe.
Sachverhalt:
1) Speichersystem bedient die beliebige Reihenfolge von Reservierungen und Freigaben.
2) Reservierungen fordern Bereiche mit verschiedenen Größen.
Legende: P1, P2, P3, P4 – Prozesse.
Zeitpunkte:
- Drei Prozesse am Laufen.
- Prozess P1 endet. Freigabe. Lücke entsteht.
- Prozess P4 kommt. Reservierung. Neue Lücke entsteht.
- Prozess P2 endet. Rekombination von zwei Lücken
Dynamische Relokation
Bei der Partitionierung wird die Anfangsadresse eines Programms erst zur Ladezeit bekannt. Damit wird auch die Adresstransformation erst zur Ladezeit möglich.
Dynamische Relokation ist eine Technik für die Speicherabbildung zur Laufzeit:
1) Der Adressraum jedes Prozesses wird komplett in den Speicher geladen.
2) Die Adresstransformation findet bei jedem Speicherzugriff statt. Zu der logischen Adresse wird der Inhalt eines Basisregisters (oder Relokationsregisters) addiert. Das Basisregister enthält die physikalische Partitionsstartadresse.
Das Programm kann auch zur Laufzeit mit logischenAdressen arbeiten.
3) Für die korrekte Speicherabbildung ist der Zugriffsschutz notwendig. Bei jedem Speicherzugriff wird überprüft, ob die Adresse
innerhalb des Adressraums liegt. Dazu dient ein Grenzregister (Schutz-Register, Limitregister), das die Größe des Adressraums enthält.
4) Beim Prozesswechsel werden beide Register umgesetzt.
Bemerkungen:
1) Dynamische Relokation bietet eine Abstraktion vom physischen Speicher. Die Speicherverwaltung ist für den Programmierer transparent.
3) Eine frühere Lösung war die statische Relokation. Dabei werden alle Adressen im Programm reloziert, wenn das Programm in den Speicher geladen wird.
CategoryBSys