Betriebssystemkomponenten
Die Größe eines Betriebssystems schwankt zwischen einigen tausend
und einigen Millionen Programmzeilen. Dementsprechend unterschiedlich sind
die angebotenen Funktionen und Leistungen, die Einfachheit und Sicherheit
in der Benutzung aber auch der zusätzliche Aufwand, der hierfür
in Kauf genommen wird.
Steuerprogramme:
-
Die Steuerprogramme (engl. control program) haben die Bearbeitung
der Benutzeraufträge im Rechner sicherzustellen. Hierzu gehört
die Auftragsverwaltung, die Steuerung der Verarbei-tungsprozesse bei der
Auftragsabwicklung, insbesondere die Zuteilung der benötigten Betriebsmittel
(= Prozeßverwaltung) und die Verwaltung der Benutzerdaten (= Datenverwaltung).
Die Steuerprogramme sind für den Betrieb eines Rechners von so wesentlicher
Bedeutung, dass sie im privilegierten Zustand ablaufen. Das heißt,
dass diese immer dann die Kontrolle erhalten, wenn Konflikte zu lösen
sind, die vom einzelnen Benutzerprogramm nicht bewältigt werden können.
Der Benutzer beschreibt in seinem Auftrag an den Rechner die zu lösende
Aufgabe. Die Formulierung der Aufgabe erfolgt in der Kommandosprache (engl.
job control language JCL). Bei der Dialogverarbeitung werden die Kommandos,
die der Benutzer eingibt, sofort ausgeführt.
Beispiel: Ein namentlich definiertes Programm soll geladen und ausgeführt
werden. Das System könnte fragen, welche Daten verarbeitet werden
sollen und es könnte z. B. verlangen, dass beispielsweise bestimmtes
Papier in den Drucker einzulegen ist.
-
Die Programme der Auftragsverwaltung (engl. job management) koordinieren
und steuern die Auftragsabwicklung für viele, gleichzeitig zur Verarbeitung
anstehende Aufträge. Sie ver-richten alle Aufgaben, die bei der Annahme,
der Einleitung des Verarbeitungsprozesses und dem Abschluss eines Auftrags
bzw. beim Übergang von einem Auftrag zum nächsten anfallen.
Neue Aufträge können auch bei der Eingabe der Datenträger
- bei nicht im Dialog abgesetzten Stapelaufträgen - entgegengenommen
werden. Eine wesentliche Mittlerfunktion übernimmt hierbei der SPOOL-Betrieb
. Während Dialogaufträge in einer Warteschlange zwischengespeichert
werden. Die Auftragsverwaltung entscheidet dann aufgrund der laufenden
Überwa-chung der Systemlast, wann ein weiterer Auftrag begonnen, d.
h ein entsprechender Verarbeitungsprozeß aktiviert werden kann.
Über jeden Auftrag wird in der Auftragsverwaltung Buch geführt,
indem Verwaltungsdaten in eine Datei geschrieben werden.
Die Ausführung der Aufträge erfolgt durch sogenannte Prozesse.
Ein Prozeß (engl.: task) fasst einen definierten Ablauf von Verarbeitungsschritten
(engl. thread) und Zugriffsrechte auf Ressourcen - insbesondere einen Bereich
des Arbeitsspeichers - die von diesem Ablauf benötigt werden, zu einer
Einheit zusammen.
Manche Aufträge lassen sich logisch besser als Zusammenwirken mehrerer
Abläufe beschreiben, die auf gemeinsame Speicherzellen zugreifen.
Prozesse, die aus mehreren solchen Abläufen bestehen bezeichnet man
als mehrläufige Prozesse.
-
Die Programme der Prozeßverwaltung (engl. task management)
steuern die kurzfristige Zuteilung von Betriebsmitteln durch die Verwaltung
der hierauf wartenden Prozesse.
Beim Mehrprogrammbetrieb (= multiprogramming) werden die
Benutzeraufträge zeitlich verzahnt bearbeitet, wobei die benötigten
Betriebsmittel wechselseitig zugeteilt werden. Wird ein laufender Prozeß
unterbrochen, so wird die Prozeßverwaltung aktiviert. Diese analysiert
die Unterbrechungsursache und leitet daraus resultierende Maßnahmen
ein.
Die Prozeßverwaltung organisiert die Zuteilung des Zentralprozessors
auf die hierauf wartenden Prozesse nach Kriterien wie Prioritäten,
Warteschlangenposition, Ein-Ausgabeintensität oder verbrauchte Prozessorzeit.
Eine einfache Methode, bei der die Rechenleistung jedem wartenden Prozeß
reihum eine feste Zeit überlassen wird, bietet das Zeitscheibenverfahren.
Es ist ein Qualtitätsmerkmal von PC-Betriebssystemen, ob die Zuteilung
von Rechnerzeit zu den einzelnen Prozessen beziehungsweise Threads "vollautomatisch"
durch die Prozeßverwaltung erfolgt = präemtives Multitasking
oder ob hierzu die aktive Mitwirkung der Anwendungen = kooperatives
Multitasking nötig ist.
-
Die Programme der Datenverwaltung (engl. data management) katalogisieren
und verwalten Dateien, steuern den Datentransfer zwischen Arbeitsspeicher
und externen Speichern und bieten für die Verarbeitung von Dateien
verschiedene Zugriffsmethoden.
Die Katalogisierung und Verwaltung von Dateien erfolgt durch Kommandos
der Auftragssprache. Mit ihnen kann der Benutzer seine Dateien identifizieren,
speichern, wieder auffinden, kopieren, mit Zugriffsbeschränkungen
und Schutzwörtern versehen, für andere Benutzer verwendbar erklären
und löschen.
Zur Verarbeitung muß eine Datei - oder Teile davon - in den Arbeitsspeicher
gebracht und nach der Verarbeitung wieder auf den externen Speicher zurückgeschrieben
werden. Die Zugriffsmethoden sorgen dabei automatisch für die Zuordnung
der logischen Sätze zu physikalischen Blöcken und erledigen die
Übertragung.
Übersetzungsprogramme
Unter Übersetzungsprogrammen versteht man ein Programm, das Anweisungen
in einer höheren Sprache oder in Assemblersprache liest, analysiert
und in bedeutungsgleiche Maschinenbefehle umwandelt.
Die Sprachübersetzer werden im Rahmen eines Auftrags in Dialog-
oder Stapelbetrieb aufgerufen und laufen wie Anwendungsprogramme ab. Neben
dem eigentlichen Übesetzungsvorgang werden in bezug auf das Quellenprogramm
Syntaxprüfungen durchgeführt und evtl. Fehlermeldungen ausgegeben.
-
Ein Assemblierer oder Assembler ist ein Übersetzungsprogramm,
das in einer Assemblersprache abgefaßte Quellenanweisungen in Zielanweisungen
der zugehörigen Maschinensprache umwandelt (assembliert). Bei der
Assemblierung wird jeweils ein Assemblerbefehl in einen Maschinenbefehl
übersetzt (1 : 1-Übersetzung).
-
Ein Kompilierer oder Compiler ist ein Übersetzungsprogramm,
das in einer höheren Pro-grammiersprache abgefaßte Quellenanweisungen
in Zielanweisungen einer maschinenorien-tierten Programmiersprache umwandelt.
-
Ein Interpreter ist ein Programm, das in einen Computer eingegebene
Quellenanweisungen in einer höheren Programmiersprache sofort übersetzt
und ausführt.
Dienstprogramme
Dienstprogramme (engl. utility program) sind Hilfsprogramme zur
Abwicklung häufig vorkommender, anwendungsneutraler Aufgaben bei der
Benutzung des Rechners. Dazu zählen Binder und Lader, Editoren, Kopierprogramme,
Diagnose-, Test- und Dokumentationsprogramme, Abrechnungsprogramme und
viele mehr.
Binder (engl. linker) und Lader (engl. loader) gehören
zu den am häufigsten benutzten Dienstprogrammen. Sie helfen den Benutzern,
die übersetzten Programme zum Ablauf zu bringen. Die vom Assemblierer
bzw. Kompilierer erzeugten Objektprogramme sind noch nicht ablauffähig,
weil noch im Quellenprogramm verlangte Programmteile, wie z. B. Ein-/Ausgabeprozeduren,
hinzugefügt werden müssen. Ferner müssen in verschiedenen
Übersetzungsläufen erzeugte Objektprogramm-Module "zusammengebunden"
werden. Diese Aufgabe übernimmt der Binder.
Problem / Aufgabe
Struktogramm
Quellenprogramm in problem- oder objektorientierter Sprache
Kompilierung
Programm in Maschinensprache mit offenen Externadressen
Binden
Programm in Maschinensprache, Externadressen erfüllt
Laden
Ablauffähiges Programm mit absoluten virtuellen Adressen
Wg / Dk