Betriebssysteme - Grundlagen, Konzepte, Systemprogrammierung
von: Eduard Glatz
dpunkt, 2015
ISBN: 9783864916304
Sprache: Deutsch
718 Seiten, Download: 32382 KB
Format: EPUB, PDF, auch als Online-Lesen
1 Einführung
Lernziele
- Sie erklären den Zweck und die Rolle eines modernen Betriebssystems.
- Sie erkennen wie Rechnerressourcen durch Applikationen genutzt werden, wenn sie das Betriebssystem verwaltet.
- Sie beschreiben die Funktionen eines aktuellen Betriebssystems in Bezug auf Benutzbarkeit, Effizienz und Entwicklungsfähigkeit.
- Sie erklären die Vorteile abstrakter Schichten und ihrer Schnittstellen in hierarchisch gestalteten Architekturen.
- Sie analysieren die Kompromisse beim Entwurf eines Betriebssystems.
- Sie erläutern die Architektureigenschaften monolithischer, geschichteter, modularer und Mikrokernsysteme.
- Sie stellen netzwerkfähige, Client/Server- und verteilte Betriebsysteme einander gegenüber und vergleichen diese.
Als Einstieg in das Thema legen wir fest, welchen Zwecken ein Betriebssystem dient, wie es sich als Begriff definieren lässt und wo es in einem Rechner einzuordnen ist. Danach diskutieren wir die Anforderungen an den Betriebssystementwurf, mögliche Architekturen und weiterführende Ideen aus der Forschung.
1.1 Zweck
Der Begriff »Betriebssystem« kann unterschiedlich aufgefasst werden. Beispielsweise über die Frage: Was leistet ein Betriebssystem? Zwei Grundfunktionen sind:
-
Erweiterte Maschine: Das Betriebssystem realisiert von vielen Applikationen geichartig genutzte Teilfunktionen als standardisierte Dienste. Damit wird die Applikationsentwicklung einfacher als beim direkten Zugriff auf die blanke Rechnerhardware. Die erweiterte Maschine ist eine Abstraktion der Hardware auf hohem Niveau und entspringt einer Top-down-Sicht.
-
Betriebsmittelverwalter: Das Betriebssystem verwaltet die zeitliche und räumliche Zuteilung von Rechnerressourcen. Im Mehrprogrammbetrieb wird im Zeitmultiplex der Prozessor zwischen verschiedenen ablauffähigen Programmen hin und her geschaltet. Im Raummultiplex wird der verfügbare Speicher auf geladene Programme aufgeteilt. Ausgehend von den Ressourcen entspricht dies einer Bottom-up-Sicht.
Detaillierter betrachtet erfüllt ein Betriebssystem sehr viele Zwecke. Es kann mehrere oder sogar alle der folgenden Funktionalitäten realisieren:
-
Hardwareunabhängige Programmierschnittstelle: Programme können unverändert auf verschiedenen Computersystemen ablaufen (auf Quellcodeebene gilt dies sogar für unterschiedliche Prozessorfamilien mit differierenden Instruktionssätzen).
-
Geräteunabhängige Ein-/Ausgabefunktionen: Programme können ohne Änderung unterschiedliche Modelle einer Peripheriegeräteart ansprechen.
-
Ressourcenverwaltung: Mehrere Benutzer bzw. Prozesse können gemeinsame Betriebsmittel ohne Konflikte nutzen. Die Ressourcen werden jedem Benutzer so verfügbar gemacht, wie wenn er exklusiven Zugriff darauf hätte.
-
Speicherverwaltung: Mehrere Prozesse/Applikationen können nebeneinander im Speicher platziert werden, ohne dass sie aufeinander Rücksicht nehmen müssen (jeder Prozess hat den Speicher scheinbar für sich allein). Zudem wird bei knappem Speicher dieser optimal auf alle Nutzer aufgeteilt.
-
Massenspeicherverwaltung (Dateisystem): Daten können persistent gespeichert und später wieder gefunden werden.
-
Parallelbetrieb (Multitasking): Mehrere Prozesse können quasiparallel ablaufen. Konzeptionell stehen mehr Prozessoren zur Verfügung als in der Hardware vorhanden, indem versteckt vor den Anwendungen parallele Abläufe, soweit nötig, sequenzialisiert werden.
-
Interprozesskommunikation: Prozesse können mit anderen Prozessen Informationen austauschen. Die Prozesse können dabei entweder auf dem gleichen Rechner ablaufen (lokal) oder auf verschiedenen Systemen (verteilt) ausgeführt werden.
-
Sicherheitsmechanismen: Es können sowohl Funktionen für die Datensicherung, d.h. die fehlerfreie Datenverarbeitung, als auch Datenschutzkonzepte implementiert sein. Der Datenschutz kann zum Beispiel durch das explizite Löschen freigegebener Bereiche im Hauptspeicher und auf Plattenspeichern sicherstellen, dass empfindliche Informationen nicht in falsche Hände fallen. Die Zugangskontrolle zum Rechner (Anmeldedialoge, Benutzerverwaltung) dient ebenfalls dem Datenschutz.
-
Bedienoberflächen: Moderne Betriebssysteme realisieren grafische Bedienoberflächen mit ausgeklügelten Bedienkonzepten, die Dialoge mit dem System und Anwendungen komfortabel gestalten. Ergänzend existieren Eingabemöglichkeiten für Kommandozeilenbefehle, die geübten Benutzern sehr effiziente Dialogmöglichkeiten, z.B. zur Systemadministration, anbieten.
Die geräteunabhängige Ein-/Ausgabe war eine der wichtigsten Errungenschaften bei der erstmaligen Einführung von Betriebssystemen. Früher war es notwendig, dass Applikationen die Eigenheiten der angeschlossenen Peripheriegeräte im Detail kennen mussten. Mit einem Betriebssystem stehen hingegen logische Kanäle zur Verfügung, die Ein-/Ausgaben über standardisierte Funktionen bereitstellen (siehe Abb. 1–1). Die logischen Kanäle werden häufig mittels sprechender Textnamen identifiziert.
Abb. 1–1 Ein-/Ausgabe ohne und mit Betriebssystem
1.2 Definitionen
Leider existiert keine allgemein verbindliche Definition eines Betriebssystems. Welche Komponenten zu einem Betriebssystem gehören und welche nicht, lässt sich daher nicht endgültig festlegen. Nachfolgend sind drei unterschiedliche Definitionen stellvertretend vorgestellt, die dabei helfen, ein Betriebssystem zu charakterisieren. Eine erste, etwas schwer lesbare Definition nach DIN 44 300 beschreibt ein Betriebssystem wie folgt (Ausschnitt):
... die Programme eines digitalen Rechnersystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten des Rechnersystems bilden und insbesondere die Abwicklung von Programmen steuern und überwachen.
Eine zweite, der Literatur entnommene Definition lautet:
Ein Betriebssystem ist eine Menge von Programmen, welche die Ausführung von Benutzerprogrammen auf einem Rechner und den Gebrauch der vorhandenen Betriebsmittel steuern.
Eine dritte Definition betrachtet das Betriebssystem als Ressourcenverwalter, wobei die Ressource hauptsächlich die darunter liegende Hardware des Rechners ist. Ein Computersystem lässt sich hierbei als eine strukturierte Sammlung von Ressourcenklassen betrachten, wobei jede Klasse durch eigene Systemprogramme kontrolliert wird (siehe Tab. 1–1).
| Zentrale Ressourcen | Periphere Ressourcen |
Aktive Ressourcen | Prozessor(en) | Kommunikationseinheiten 1. Endgeräte (Tastaturen, Drucker, Anzeigen, Zeigegeräte etc.) 2. Netzwerk (entfernt, lokal) etc. |
Passive Ressourcen | Hauptspeicher | Speichereinheiten 1. Platten 2. Bänder 3. CD-ROM/DVD etc. |
Tab. 1–1 Ressourcenklassen
Ein Betriebssystem lässt sich auch mit einer Regierung (government) vergleichen. Wie diese realisiert das Betriebssystem keine nützliche Funktion für sich alleine, sondern stellt eine Umgebung zur Verfügung, in welcher andere Beteiligte nützliche Funktionen vollbringen können. Einige Autoren (z.B. K. Bauknecht, C. A. Zehnder) ziehen die Begriffe Systemsoftware bzw. Systemprogramme der Bezeichnung Betriebssystem vor. In diesem Sinne ist folgende Beschreibung dieser Autoren abgefasst:
»Die Systemprogramme, oft unter dem Begriff Betriebssystem zusammengefasst, lassen sich gemäß Abbildung 1–2 gruppieren.
Abb. 1–2 Softwaregliederung
Die eigentlichen Steuerprogramme sind für folgende Funktionen zuständig:
-
Steuerung aller Computerfunktionen und Koordination der verschiedenen zu aktivierenden Programme.
-
Steuerung der Ein-/Ausgabeoperationen für die Anwendungsprogramme.
-
Überwachung und Registrierung der auf dem Computersystem ablaufenden Aktivitäten.
-
Ermittlung und Korrektur von Systemfehlern.«
Auffallend bei dieser Definition ist der Einbezug von Übersetzern (Compiler, Binder), Testhilfen und Dienstprogrammen. Für klassische Betriebssysteme (z.B. Unix und GNU-Tools) trifft dies vollumfänglich zu, während moderne Betriebssysteme oft die Bereitstellung von Übersetzungstools irgendwelchen Drittherstellern überlassen bzw. diese als separate Applikation ausliefern (z.B. Windows und Visual Studio).
1.3 Einordnung im Computersystem
In einem Rechner stellt das Betriebssystem eine Softwareschicht dar, die zwischen den Benutzerapplikationen einerseits...