Technische Praxis der Computersysteme Teil 1 - Universität Wien
Technische Praxis der Computersysteme Teil 1 - Universität Wien
Technische Praxis der Computersysteme Teil 1 - Universität Wien
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2.3 Aufbau eines Unix/Linux-Systems 2 TECHNISCHE EINLEITUNG<br />
Multitasking<br />
mehrere Prozesse laufen (scheinbar) gleichzeitig ab<br />
Kontextwechsel<br />
– aktuellen Prozeß anhalten/Kontext sichern<br />
– nächsten Prozeß aussuchen<br />
– nächsten Prozeß in seinem Kontext wie<strong>der</strong>herstellen<br />
Preemptive Scheduling (Zeitscheiben)<br />
Active Waiting (Polling)<br />
Folie 25<br />
auch nur <strong>Teil</strong>e eines Prozesses sein. Sie arbeiten im Kontext des Prozesses (Speicher, etc.)<br />
und dienen dazu, die Aufgaben des Prozesses in kleinere funktionelle Einheiten aufzuteilen,<br />
die dann in einer für die Gesamtperformance des Systems günstigen Weise abgewickelt<br />
werden können.<br />
2.3 Aufbau eines Unix/Linux-Systems<br />
Wie wir gesehen haben, besteht jedes Betriebssystem aus mehreren Komponenten, die im<br />
Folgenden am Beispiel eines Unix-Systems mit beson<strong>der</strong>er Berücksichtigung von Linux vorgestellt<br />
werden.<br />
Grob gesehen besteht ein Unix-Betriebssystem aus einem Betriebssystemkern, dem sog.<br />
Kernel, dem Filesystem, Systemprogrammen und eventuell weiteren Applikationen.<br />
Der Kernel ist das Herz des Betriebssystems. Er verwaltet die Dateien, die im Filesystem<br />
gespeichert sind, ist für das Scheduling und die Systemressourcenvergabe an die Prozesse<br />
zuständig (insbeson<strong>der</strong>e die Speicherverwaltung) und bewerkstelligt die Kommunikation mit<br />
<strong>der</strong> Hardware.<br />
Der Kernel führt nur wenige Funktionen selbst aus, bietet aber die notwendigen Werkzeuge<br />
an, mit <strong>der</strong>en Hilfe alle Dienste erzeugt werden können. Auch verhin<strong>der</strong>t <strong>der</strong> Kernel<br />
das direkte Ansprechen <strong>der</strong> Hardware und zwingt die Prozesse, die bereitgestellten Werkzeuge<br />
zu verwenden. Damit bietet <strong>der</strong> Kernel den Prozessen und Benutzern Schutz vor einan<strong>der</strong><br />
und stellt somit die grundlegende Systemsicherheit her. Die bereitgestellten Werkzeuge des<br />
Kernels können mittels ”<br />
Systemaufrufen“ (System Calls) verwendet werden.<br />
Wichtige Aufgaben des Kernels sind Prozeßmanagement und Speichermanagement. Letzteres<br />
kümmert sich um die Vergabe von Speicherbereichen und Swapbereichen (Auslagerunsgspeicher<br />
auf <strong>der</strong> Festplatte; virtueller Speicher in <strong>der</strong> MS-Welt) an Prozesse, den Kernel<br />
selbst und an den Buffer. Das Prozeßmanagement erzeugt Prozesse und implementiert das<br />
Multitasking.<br />
In <strong>der</strong> untersten Schicht enthält <strong>der</strong> Kernel einen Treiber für jede Hardwarekomponente,<br />
die er unterstützt. Da die Welt voll von verschiedener Hardware ist, ist die Anzahl <strong>der</strong><br />
einzelnen Treiber riesig. Allerdings gibt es für spezifische Hardwaregeräte standardisierte<br />
Funktionen, die sich nur in <strong>der</strong> untersten Schicht <strong>der</strong> Implementation unterscheiden. Zum<br />
Beispiel haben alle Festplattentreiber Befehle, wie ”<br />
initialisiere Festplatte“, ”<br />
lese Sektor N“<br />
und ”<br />
schreibe Sektor N“. Diese Ähnlichkeiten machen es möglich, die Treiber in Klassen<br />
24