next up previous contents
Nächste Seite: Die Benutzerschnittstelle Aufwärts: Betriebssystem UNIX Vorherige Seite: Die Prozessverwaltung   Inhalt

Das Speichermanagement

Jedes Programm (jeder Prozess), das in einem Rechnersystem läuft, benötigt Speicher, um seine Daten abzulegen. Da in einem Unix-System mehrere Prozesse ,,gleichzeitg`` laufen können, muss gewährleistet sein, dass es nicht zu gegenseitigen Beeinflussungen kommt. Es gibt in einem Rechnersystem verschiedene Speicherformen, die meist eine hierarchische Ordnung besitzen, s. Abbildung 3.4. Diese gliedert sich nach den Zugriffszeiten. Zusammengefasst ergibt sich daraus ein virtueller Adressraum, der dem Betriebssystem zur Verfügung steht.

Abbildung: mögliche Speicherhierarchie eines PCs
\begin{figure}\begin{center}
\begin{picture}(140,100)
\put(0,0){\framebox (140,1...
... u m}}
\put(118,10) {\framebox (8,60){}}
\end{picture}\end{center}\end{figure}

Da Speicherbausteine, die eine sehr geringe Zugriffszeit ermöglichen, verhältnismäßig teuer sind, ist auch die Größe hierarchisch. So sind Cache-Bausteine und ihre Ansteuerung wesentlich teurer als RAM (engl. Random Access Memory). Da ein Prozess nicht weiß, an welchen Stellen im Speicher seine Daten zur Laufzeit abgelegt werden, arbeitet er mit virtuellen Adressen, die jeweils bei 0 beginnen. Das Betriebssystem muss mit seiner Speicherverwaltung nun dafür sorgen, dass eine Abbildung der virtuellen Adressen auf die eigentlichen physikalischen Adressen stattfindet. Außerdem muss jedem Prozess ein eigener physikalischer Speicherabschnitt zugeordnet werden, damit es nicht zu Störungen der Prozesse untereinander kommt. Speicherbereiche müssen auch vor unberechtigtem Zugriff geschützt werden. Die Speicherverwaltung wird hardwaremäßig durch die Memory Management Unit -- MMU unterstützt.

Nun ist es natürlich wünschenswert, dass laufende Programme immer in Speicherbereichen mit geringen Zugriffszeiten liegen. Da aber jede Hierarchiestufe nur begrenzte Kapazitäten hat, muss es Methoden der Zuteilung geben. Wir wollen hier nicht näher darauf eingehen, sondern nur LRU -- Last Recently Used als eine Strategie erwähnen. Es wird durch sinnvolles Ein- und Auslagern von Daten versucht, den Prozessor in möglichst hoher Geschwindigkeit mit den Daten zu versorgen. Zu einer signifikanten Verschlechterung der Systemleistung kommt es, wenn mehrere Prozesse mit jeweils hohem Speicherbedarf rechnen wollen und der Hauptspeicher nicht ausreicht. Dann werden Daten auf die Festplatte ausgelagert und müssen von dort regelmäßig neu in den Hauptspeicher geladen werden -- swapping.


next up previous contents
Nächste Seite: Die Benutzerschnittstelle Aufwärts: Betriebssystem UNIX Vorherige Seite: Die Prozessverwaltung   Inhalt
Lars Tornow 2003-04-02