Betriebssystem
Ein Betriebssystem ist die Software, die die Verwendung (den Betrieb)
eines Computers ermöglicht. Es verwaltet Betriebsmittel wie Speicher,
Ein- und Ausgabegeräte und steuert die Ausführung von Programmen.
Betriebssystem heißt auf Englisch operating system (OS). Dieser
englische Ausdruck kennzeichnet den Sinn und Zweck: Die in den Anfängen
der Computer stark mit schematischen und fehlerträchtigen Arbeiten
beschäftigten Operatoren schrieben Programme, um sich die Arbeit
zu erleichtern; diese wurden nach und nach zum operating system zusammengefasst.
Betriebssysteme bestehen in der Regel aus einem Kern (englisch: Kernel),
der die Hardware des Computers verwaltet, sowie grundlegenden Systemprogrammen,
die dem Start des Betriebssystems und dessen Konfiguration dienen.
Unterschieden werden Einbenutzer- und Mehrbenutzersysteme, Einzelprogramm-
und Mehrprogrammsysteme, Stapelverarbeitungs- und Dialogsysteme. Betriebssysteme
finden sich in fast allen Computern: als Echtzeitbetriebssysteme auf
Prozessrechnern, auf normalen PCs und als Mehrprozessorsysteme auf
Hosts und Großrechnern.
Definitionen und Abgrenzung
Unterschiedliche Autoren fassen den Begriff Betriebssystem
unterschiedlich eng. So beschränkt Andrew S. Tanenbaum den Begriff
auf den Betriebssystemkern. Er schreibt:
Editoren, Compiler, Assembler, Binder und Kommandointerpreter
sind definitiv nicht Teil des Betriebssystems, auch wenn sie bedeutsam
und nützlich sind.
In diesem Sinn stellt das Betriebssystem selbst lediglich eine Schnittstelle
für Systemfunktionen (auch Systemrufe oder Systemaufrufe genannt)
bereit, die von Programmen genutzt werden können. Die meisten
aktuellen Betriebssystem-Lehrbücher und Universitätsvorlesungen
folgen dieser Sichtweise und behandeln daher ausschließlich
die Aufgaben des Betriebssystemkerns.
Andere Autoren zählen u. a. auch eine Kommandosprache zum Betriebssystem:
Besides managing the hardware resources [...], modern operating
systems also provide numerous services, such as inter-process communication,
file and directory systems, data transfer over networks, and a command
language
Eine darüber hinaus gehende Ausdehnung des Begriffes, die beispielsweise
auch Editoren und Compiler umfasst, geht zum Teil auf ältere
Werke des deutschen Sprachraums zurück, lässt sich aber
auch in aktueller Literatur noch finden. So zählen die Autoren
des Informatik-Dudens[3] auch Übersetzungsprogramme
und Dienstprogramme zu den wesentlichen Komponenten eines
Betriebssystems. In jüngerer Zeit kann der GNU/Linux-Namensstreit
als Beispiel für die Abgrenzungsprobleme angesehen werden.
Ungeachtet dessen, wie weit oder wie eng man den Begriff Betriebssystem
fasst, enthalten Installationsmedien für Betriebssysteme für
gewöhnlich zusätzliche Dienst- und Anwendungsprogramme.
Betriebssystemarten
Betriebssysteme können als das direkte Ergebnis des zugrundeliegenden
Systems und den zu erfüllenden Aufgaben betrachtet werden. Deshalb
ist es unerlässlich sich neben den verschiedenen Systemen ebenfalls
mit den zugehörigen Systemen zu beschäftigen.
Lochkarten gehören mittlerweile der Vergangenheit an. Jedoch
sind die so genannten Batch-Systeme (engl. batch systems, queued systems)
ein guter Ansatz zur Betrachtung der Systementwicklung. Diese riesigen
Systeme wurden von nur einer Person dem Operator bedient
oder besser gesagt gefüttert. Programmierer fertigten Lochkarten
an und übergaben den Kartenstapel dem Operator. Dieser ließ
die Karten von der Maschine einlesen und händigte den Programmierern
anschließend die Ergebnisse in ausgedruckter Form aus. Diese
Maschinen besaßen kein konventionelles Betriebssystem, wie es
heute geläufig ist. Lediglich ein Kontrollprogramm (resident
monitor) wurde im Speicher gehalten und sorgte für den reibungslosen
Ablauf, indem es die Kontrolle an die momentan auszuführenden
Programme übergab.
Eine Weiterentwicklung Multiprogrammed Batch System
konnte nun wenigstens mehrere Programme und Daten im Speicher halten
und ermöglichte eine schnellere Abarbeitung der Kartenstapel
(Zeit für Lesen und Schreiben war verschenkte Zeit). Hier wurden
Mechanismen, wie das Spooling und die Möglichkeit des Offline-Betriebs
bereits ausgiebig genutzt. Jedoch war ein Programm nötig, dass
sich Aufgaben wie E/A-Verwaltung, Speicherverwaltung und vor allem
CPU-Scheduling annimmt. Ab diesem Zeitpunkt konnte man von dem Beginn
eines Betriebssystems reden.
Die nächsten Schritte waren dann Folgen der jeweiligen Aufgabenbereiche,
die den Systemen zu Teil kamen. Folgende Systeme sind bis zum heutigen
Tage entstanden und im Einsatz: Parallele Systeme, Verteilte Systeme,
Personal-Computer-Systeme, Time-Sharing-Systeme, Real-Time-Systeme
und in neuester Zeit auch die so genannten Handheld-Systeme.
Im PC-Bereich sind derzeit die meistgenutzten Betriebssysteme die
verschiedenen Varianten von Microsoft Windows, Apple Mac OS X, Linux
(GNU-Lizenz), ZETA, OS/2 bzw. eComStation, DOS (Novell-DOS, MS-DOS)
mit GUIs wie zum Beispiel PC/GEOS sowie BSD-Unix. Für spezielle
Anwendungen (Beispiel: industrielle Steuerung) werden auch experimentelle
Betriebssysteme für Forschungs- und Lehrzwecke eingesetzt.
Neben den klassischen Varianten gibt es noch spezielle Betriebssysteme
für verteilte Systeme, bei denen zwischen dem logischen System
und den physikalischen System(en) unterschieden wird. Der logische
Rechner besteht aus mehreren physikalischen Rechnereinheiten. Viele
Großrechner, Number-Cruncher und die legendären Systeme
aus dem Hause Cray arbeiten nach diesem Prinzip. Eines der bekanntesten
Betriebssysteme im Bereich verteilte Systeme ist Amoeba.
Siehe auch: Liste der Betriebssysteme
Die Aufgaben des Betriebssystems lassen sich mit den folgenden Stichworten
zusammenfassen:
* Benutzerführung
* Laden und Unterbrechung von Programmen
* Verwaltung der Prozessorzeit
* Verwaltung des Speicherplatzes für Anwendungen
* Verwaltung der angeschlossenen Geräte
Programme, Speicher- und Geräteverwaltung
Zu den Aufgaben eines Betriebssystems gehören meist:
* Speicherverwaltung
o Zuweisung und Überwachung des Betriebsmittels Speicher (Haupt-
und Hintergrundspeicher).
o Führung von Tabellen der Speicherbelegung durch Benutzerjobs
bzw. Prozesse (laufende Programme).
o Bedienung von Anforderungen und Freigabe von Speicher.
* Programm-(Prozess)-Verwaltung
o Betreuung sämtlicher Prozesse (im Ablauf befindlicher Programme)
im Rechnersystem.
o Erzeugung von neuen Prozessen auf Anforderung des Betriebssystems
bzw. anderer existierender Prozesse,
o Entfernung von Prozessen aus dem System.
o Kommunikation und Synchronisation von Prozessen untereinander (Interprozesskommunikation)
* Geräte- und Dateiverwaltung
o Effiziente Zuweisung von Ein-/Ausgabegeräten und Vermittlungseinheiten
(Datenkanäle, Steuereinheiten), Vermeidung von Konflikten
o Initiierung, Überwachung der Ausführung, Terminierung
von Ein-/Ausgabevorgängen.
o Verwaltung des Dateisystems. Erzeugung eines Namensraums mit zugehörigen
Speicherobjekten und gegebenenfalls weiteren Objekten.
* Rechteverwaltung. Voneinander unabhängige Benutzer/Programme
dürfen sich gegenseitig nicht stören.
* Abstraktion
o Verbergen der Komplexität der Maschine vor dem Anwender
o Abstraktion des Maschinenbegriffes (nach Coy):
+ Reale Maschine = Zentraleinheit + Geräte (Hardware)
+ Abstrakte Maschine = Reale Maschine + Betriebssystem
+ Benutzermaschine = Abstrakte Maschine + Anwendungsprogramm
Als Gerät aus der Sicht eines Betriebssystems bezeichnet man
aus historischen Gründen alles, was über Ein-/Ausgabekanäle
angesprochen wird. Dies sind nicht nur Geräte im herkömmlichen
Sinn, sondern mittlerweile auch interne Erweiterungen wie Grafikkarten,
Netzwerkkarten und anderes. Die (Unter-)Programme zur Initialisierung
und Ansteuerung dieser Geräte bezeichnet man zusammenfassend
als Gerätetreiber.
Betriebsmittelverwaltung und Abstraktion
Als Betriebsmittel oder Ressourcen bezeichnet man alle von der Hardware
eines Computers zur Verfügung gestellten Komponenten, also den
Prozessor (bei Mehrprozessorsystemen die Prozessoren), den physikalischen
Speicher und alle Geräte wie Festplatten-, Disketten- und CD-ROM-Laufwerke,
Netzwerk- und Schnittstellenadapter und andere. Die Hardware Compatibility
List enthält alle Hardware-Produkte, die im Zusammenhang mit
einem bestimmten Betriebssystem auf ihre Funktionalität hin getestet
wurden.
Einführendes Beispiel: Zeitgeberbausteine
Moderne Rechnersysteme besitzen Zeitgeberbausteine (Timer). In frühen
PCs wurde z. B. der Baustein 8284 der Firma Intel eingesetzt. Dieser
Baustein muss zunächst initialisiert werden. Er kann dann nach
Ablauf einer Zeitspanne oder periodisch den Prozessor unterbrechen
und ihn zur Abarbeitung einer eigenen Routine veranlassen. Neben der
Initialisierung ist eine Unterbrechungsroutine zu erstellen, deren
Aufruf in einer dafür geeigneten Sprache (meist Assembler) programmiert
werden muss. Da Unterbrechungen asynchron auftreten, sind komplexe
Verhältnisse hinsichtlich der Datenstrukturen zu berücksichtigen.
Genaue Kenntnisse des Bausteins (Datenblatt), der Computerhardware
(Unterbrechungsbehandlung) und des Prozessors sind erforderlich. Die
einzelnen Komponenten, die an diesem Prozess beteiligt sind, fasst
man unter dem Begriff Rechnerarchitektur zusammen.
Virtuelle Prozessoren
Ein modernes Mehrprogrammbetriebssystem verwendet einen solchen Zeitgeberbaustein,
um den normalerweise einzigen Prozessor periodisch (normalerweise
im Millisekundenbereich) zu unterbrechen und eventuell mit einem anderen
Programm fortzufahren (so genanntes präemptives Multitasking).
Die Initialisierung und die Unterbrechungsroutine werden dabei vom
Betriebssystem implementiert. Auch wenn nur ein einzelner Prozessor
zur Verfügung steht, können mehrere Programme ausgeführt
werden, jedes Programm erhält einen Teil der Prozessorzeit (Scheduling).
Jedes Programm verhält sich, bis auf die verlangsamte Ausführungszeit,
so, als hätte es einen eigenen virtuellen Prozessor.
Virtuelle Zeitgeber
Über einen Systemruf, zum Beispiel alarm, wird jedem Programm
darüber hinaus ein eigener virtueller Zeitgeber zur Verfügung
gestellt. Das Betriebssystem zählt die Unterbrechungen des Original-Zeitgebers
und informiert Programme, die den alarm-Systemruf verwendeten. Die
einzelnen Zeitpunkte werden über eine Warteschlange verwaltet.
Abstraktion
Die Hardware des Zeitgebers ist damit vor den Programmen verborgen.
Ein System mit Speicherschutz erlaubt den Zugriff auf den Zeitgeberbaustein
nur über den Kernel und nur über exakt definierte Schnittstellen
(meist Systemrufe genannt, die über spezielle Prozessorbefehle
wie TRAP, BRK, INT realisiert werden). Kein Programm kann somit das
System gefährden, die Verwendung des virtuellen Zeitgebers ist
einfach und portabel. Der Anwender oder Programmierer braucht sich
nicht um die (komplexen) Details zu kümmern.
Virtualisierung weiterer Betriebsmittel
So wie Prozessoren und Zeitgeber virtualisiert werden, ist dies auch
für alle anderen Betriebsmittel möglich. Dabei werden einige
Abstraktionen teilweise nur als Software implementiert, andere erfordern
spezielle Hardware.
Dateisysteme
Über Dateisysteme werden die Details der externen Speichersysteme
(Festplatten-, Disketten- oder CD-ROM-Laufwerke) verborgen. Dateinamen
und Verzeichnisse erlauben den bequemen Zugriff, die eigentlich vorhandene
Blockstruktur und die Geräteunterschiede sind vollkommen unsichtbar.
Interner Speicher
Der interne Speicher (RAM) wird in Blöcke (Kacheln) aufgeteilt
und den entsprechenden Programmen zur Verfügung gestellt. Über
virtuellen Speicher wird bei vielen Systemen jedem Programm ein kontinuierlicher
(zusammenhängender) Bereich zur Verfügung gestellt. Dieser
Speicher ist physikalisch nicht zusammenhängend, es können
sogar unbenutzte Teile auf den externen Speicher ausgelagert sein.
Der virtuelle Speicher eines Programms kann sogar größer
als der reale Speicher sein.
Netzwerk
Die Details der Netzwerkzugriffe werden verborgen, indem auf die
eigentliche Hardware (Netzwerkkarte) ein Protokollstapel aufgesetzt
wird. Die Netzwerksoftware erlaubt beliebig viele virtuelle Kanäle.
Auf der Ebene der Sockets (Programmierung) ist die Netzwerkkarte vollkommen
unsichtbar, das Netzwerk hat viele neue Fähigkeiten (bidirektionale,
zuverlässige Datenströme, Adressierung, Routing) bekommen.
Bildschirm
Als Grafische Benutzeroberfläche (GUI, Abk. für engl. Graphical
User Interface) wird generell eine Bildschirmausgabe beschrieben,
wenn sie über einen Prompt hinausgeht. Mit den richtigen Grafikkarten
und Bildschirmen ist die Darstellung von geometrischen Objekten (Linien,
Kreisen, Ellipsen, aber auch Schriftattributen und Farben) auf dem
Bildschirm möglich, aus denen sich komplexere geometrische Elemente
wie Knöpfe, Menüs, etc. Benutzeroberflächen zum einfachen
Steuern von Programmen erstellen lassen.
Die Grafikkarte als Hardware ist für den Programmierer und Anwender
vollkommen verborgen.
Geschichte und Beispiele der Betriebsmittelverwaltung
Artikel Betriebssystem. In: Wikipedia, Die freie Enzyklopädie.
Bearbeitungsstand: 25. Januar 2007, 20:55 UTC. URL: http://de.wikipedia.org/w/index.php?title=Betriebssystem&oldid=26921600
(Abgerufen: 3. Februar 2007, 09:12 UTC)
|