02.11.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!