Skip to main content
main-content

Über dieses Buch

Das vorliegende Lehrbuch gibt eine fundierte und vielschichtige Einführung in die Konzepte und Funktionen moderner Betriebssysteme. Die grundlegenden Mechanismen eines Betriebssystems werden dabei anhand konkreter Programmlistings des Linux-Kernels analysiert und vergegenständlicht.

Die Komplexität eines Betriebssystems und der beeindruckende Einfallsreichtum der zugrunde liegenden Algorithmik und deren geschickter Implementierung in C-Kode stehen im Zentrum des Buches. Der Leser erhält damit ein solides Verständnis der System-Architektur und deren konkreter Realisierung.

Der Text ist für das Grundstudium ab dem dritten Semester geeignet und setzt neben grundlegenden Kenntnissen von Algorithmen und Datenstrukturen ein solides Verständnis der C-Programmierung voraus.

Inhaltsverzeichnis

Frontmatter

1. Einführung

Ein Versuch, den Begriff Betriebssystem zu definieren, scheitert sehr schnell. Wichtig sind jedoch die Beobachtungen, die wir bei diesem Versuch machen können:
  • Auf ein und demselben Rechner können unterschiedliche Betriebssysteme laufen: So kann auf einem gängigen PC mit x86-Prozessor sowohl Linux — ein Unix-ähnliches Betriebssystem — als auch Windows eingesetzt werden.
  • Auf Rechnern unterschiedlicher Hardware kann das gleiche Betriebssystem arbeiten: So kann Linux auf einem PC, aber auch auf leistungsstarken Servern diverser Hersteller implementiert sein.

2. System Calls

System Calls stellen für Benutzer-Prozesse die einzige Schicht zum Zugriff auf die Funktionalität des Betriebssystems und damit zur Benutzung der Hardware dar (vgl. S. 6). Dadurch wird es überhaupt erst möglich, ein Betriebssystem so zu entwickeln, dass es auf unterschiedlichen Hardware-Plattformen installiert werden kann, und die Besonderheiten von Peripheriegeräten vor dem Anwender zu verbergen, so dass auf derselben Plattform diverse Peripheriegeräte ohne Änderung des Benutzerprogramms eingesetzt werden können. Weiterhin dienen System Calls der Sicherheit, indem alle übergebenen Parameter einschließlich aller Rechte zentral sorgfältig geprüft werden. Nur dadurch ist es möglich, eine vernünftige Vergabe der Ressourcen und eine Stabilität des Systems zu garantieren.

3. Prozesse und Threads

Grundlegend für das Verständnis von Betriebssystemen ist der Begriff „Prozess“, der spätestens dann benötigt wird, wenn ein System Multitasking-Betrieb unterstützen soll.

4. Scheduling

Scheduling hat die Aufgabe, die Ressourcen insbesondere die CPU eines Rechners — möglichst gut auszunutzen. Dabei müssen häufig eine Reihe von zusätzlichen Anforderungen beachtet werden:
  • Fairness gegenüber Benutzern: alle sollen möglichst gleich berücksichtigt und bedient werden,
  • Prioritäten: manche Prozesse sind ggf. wichtiger als andere,
  • hoher Durchsatz: CPU-lastige Prozesse sollen möglichst effektiv bearbeitet werden,
  • schnelle Reaktionszeit: im Timesharing-Bereich möchte der Benutzer eine schnelle Reaktion des Systems erleben,
  • Realtime-ähnliche Anforderungen: bei Multimedia-Anwendungen müssen Prozesse innerhalb vorgegebener sehr kurzer Zeiten die CPU zugeteilt bekommen.

5. Speicherverwaltung

In einer Maschine, in der mehrere Prozesse gleichzeitig ablaufen und damit im Speicher bereitstehen müssen, ist eine Verwaltung des Speichers dringend erforderlich. Zum einen muss einem Prozess freier Speicher zugeteilt werden, zum anderen rnuss das System darauf achten, dass ein Prozess nicht im Speicherbereich eines anderen Prozesses — oder gar des Betriebssystems selbst — lesen oder schreiben darf.

6. Synchronisation

In den vorigen Kapiteln wurden mehrfach Probleme entdeckt, bei denen verschiedene Prozesse aufeinander Rücksicht nehmen müssen. So darf es in einem Mehrprozessor-System nicht vorkommen, dass von einem Prozessor Load Balancing angestoßen wird, während ein anderer Prozessor gleichzeitig auf die zu bearbeitenden Prozess-Queues zugreift. Wenn Prozesse auf gemeinsame Daten zugreifen, müssen sie so synchronisiert werden, dass keine Fehler in der Bearbeitung der Daten entstehen und die Prozesse sich nicht gegenseitig behindern. Dies betrifft nicht nur bestimmte Kernel-Prozesse, sondern auch Benutzerprozesse, die auf gemeinsamen Daten operieren.

7. Interrupts

Bereits die Betrachtung auf S. 87 zeigte, dass Interrupts und deren Bearbeitung eine wichtige Rolle in einem Betriebssystem spielen. Interrupts sollen das Eintreffen eines Ereignisses mitteilen. Es gibt zwei unterschiedliche Arten von Interrupts in einem Betriebssystem: asynchrone und synchrone.

8. Dateisysteme und Plattenverwaltung

Für den Benutzer gehört das Filesystem zu den am deutlichsten wahrnehmbaren Teilen eines Betriebssystems. Die Aufgabe des Filesystems ist es, dem Benutzer einen einheitlichen Zugriff auf gespeicherte Daten zu ermöglichen, der unabhängig von den speziellen physischen Eigenschaften des Speichermediums — Magnetband, Platte usw. — ist. Bei dem Zugriff wird der logische Name, unter dem der Benutzer die Datei sieht, umgewandelt in den physischen Speicherort der Datei, und es werden die benötigten Zugriffsmethoden herangezogen. Das Filesystem muss eine Reihe von Informationen über die gespeicherten Daten enthalten, damit bei einem Multiuserbetrieb nur derjenige auf die Daten zugreifen kann, der auch die nötigen Rechte dazu besitzt. Deshalb gehören zu den „Metainformationen“ neben dem logischen Dateinamen und der Abbildung auf den Speicherort in der Regel solche Informationen wie: Eigentümer (das ist derjenige Benutzer, der die Datei angelegt hat), das Erstellungsdatum, das Datum der letzten Änderung, Zugriffsrechte.

9. Kommunikation zwischen Prozessen

Ein einfaches Beispiel zeigt, dass ein Betriebssystem nicht nur Mittel bereitstellen muss, damit Prozesse synchronisiert werden können, sondern auch dafür sorgen muss, dass Prozesse Daten untereinander austauschen können: Programme wie 1s zum Auflisten des Directory-Inhalts und more1 zum seitenweisen Anzeigen gibt es für nahezu alle Betriebssysteme. Gelingt es, die Ausgabe des ersten in die Eingabe des zweiten umzulenken, so kann man, wenn das Directory viele Einträge enthält, trotzdem in Ruhe lesen und dann den Bildschirm weiterblättern.

10. Der Bootvorgang

Beim Starten eines Rechners liegen ungeklärte Verhältnisse vor: Während ausführbare Programme auf der Platte gespeichert sind, herrscht in der CPU und im Speicher des Rechners Chaos, das erst in geregelte Bahnen gelenkt werden muss. Dabei kann man nicht erwarten, dass mit dem Anschalten sofort das Betriebssystem geladen werden kann, vielmehr müssen eine Reihe von Schritten durchlaufen werden, bis das Betriebssystem zur Verfügung steht.

Backmatter

Weitere Informationen

Premium Partner

BranchenIndex Online

Die B2B-Firmensuche für Industrie und Wirtschaft: Kostenfrei in Firmenprofilen nach Lieferanten, Herstellern, Dienstleistern und Händlern recherchieren.

Whitepaper

- ANZEIGE -

Best Practices für die Mitarbeiter-Partizipation in der Produktentwicklung

Unternehmen haben das Innovationspotenzial der eigenen Mitarbeiter auch außerhalb der F&E-Abteilung erkannt. Viele Initiativen zur Partizipation scheitern in der Praxis jedoch häufig. Lesen Sie hier  - basierend auf einer qualitativ-explorativen Expertenstudie - mehr über die wesentlichen Problemfelder der mitarbeiterzentrierten Produktentwicklung und profitieren Sie von konkreten Handlungsempfehlungen aus der Praxis.
Jetzt gratis downloaden!

Bildnachweise