bs-1.2

Werbung
1.2 Entwicklungsgeschichte
Begriff Operating System
wurde in den 60er Jahren in den USA geprägt
und in Deutschland als Betriebssystem übernommen.
Zunächst
Stapelbetrieb,
später
Teilnehmerbetrieb,
dann
Einplatzsysteme,
dazu
Client/Server-Betrieb.
Hardware
Betriebssoftware
Beispiele
1950 1. Generation:
Röhren
Lader
IBM 704
1960 2. Generation:
Halbleiter
Platten
Stapelsysteme mit
Spooling (Bänder, Trommeln,
später auch Platten).
IBM 7090, Zuse Z 23,
Telefunken TR 4
1970 3. Generation:
Dateisysteme, virtueller Sp.,
Hochintegration Teilnehmersysteme;
(LSI)
Datenbanksysteme,
Rechnernetze.
IBM OS/360, TSS, ...
T.H.E., Multics, Unix
1980 4. Generation:
Personal Computing
Höchstintegr. Fenstersysteme
(VLSI), „chips“ Client/Server-Systeme
MS/DOS
Apple Lisa, Mac
SunOS
1990 Schnelle Netze
Amoeba
CORBA
Verteilte Betriebssysteme
Middleware
Perspektive:
2000 Mobile Rechner,
allgegenwärtig ...
eingebettete BS
2010
sichere BS ?
JavaCard
Windows/CE
2020
2030 Quantenrechner?
Aktuelle Forschung:
QuantenBS ?
•
•
•
•
Betriebssystem-Familien
Persistente Betriebssysteme
Sichere Betriebssysteme
Middleware
1.2.1 Residenter Lader
(resident loader) kann als „Vorläufer“ des Betriebssystems gelten
Wie kommt mein Programm in den Speicher? Alternativen:
 manuell eingeben an Tasten- und Schalterfeld
 Ladeprogramm manuell eingeben und starten:
liest Programm z.B. von Lochkarten und
entfernt sich zum Schluss selbst
 Ladetaste betätigen:
startet Laden eines selbstladenden Laders
und startet diesen Lader
 wie , aber Lader im Speicher belassen !
Arbeitsspeicher
0
Residenter Lader
freier Speicher
16 K
1.2.2 Stapelsystem
(batch system)
bearbeitet ohne manuellen Eingriff eine Folge von
Aufträgen (jobs), die als Lochkartenpakete beim
Operateur (operator) abgegeben werden.
Es gibt Programmkarten, Datenkarten, Steuerkarten.
Steuerkarten enthalten Steuerbefehle in einer
Auftragssteuersprache (job control language)
Ausgabe drucken
Rechner
Eingabe lesen
Residente Systemsoftware:

Lader

Ein/Ausgabe-Routinen („braucht jedes Programm“)

Auftragssteuerung (monitor)
überprüft jede Karte,
erkennt Steuerkarten,
veranlasst Auftragswechsel,
Laden von Übersetzern,
von übersetzten Programmen
Auftragsabbruch bei Fehler
wird nach Anschalten des Rechners
geladen von Urlader (bootstrap loader)
Arbeitsspeicher
E/A-Routinen
0
Lader
Monitor
freier Speicher
128 K
Arbeitsspeicher
E/A-Routinen
0
Lader
Monitor
freier Speicher
Dienstprogramme
auf Magnetband:
Übersetzer,
Binder,
.....
128 K
Durchsatzerhöhung durch Überlappung von
Lesen – Verarbeiten – Drucken (off-line input/output)
Verarbeitungs-
Eingaberechner
Rechner
Ausgaberechner
Alle drei Aktivitäten von einem Rechner ausführen lassen

Spooling (simultaneous peripheral operation on-line)
vorzugsweise mit Trommel, später Platte:
!
Vorstufe von
Mehrprozeßbetrieb
!
Eingabebereich
Ausgabebereich
Dienstprogramme
Benutzerdateien
1.2.3 Teilnehmersystem
(time-sharing system)
An einem Rechner hängen viele
Arbeitsplätze, Datenstationen (terminals)
(= Tastatur + Druckwerk, später Bildschirm)
Benutzer steuert die gewünschten Vorgänge
interaktiv mittels Befehlssprache (command language)
Ausführung im Mehrprozessbetrieb
(Oft auch noch Stapelbetrieb und Teilnehmerbetrieb zugleich.)
Multiplexer
weitere Peripherie
Zentraleinheit
mit
TeilnehmerBetriebssystem
1.3 Architektur von Betriebssystemen
Zentrale Aspekte:
 Schichtenstruktur
 Monolithischer Kern oder Mikrokern
 aufrufbasiert oder auftragsbasiert
 Objektorientierung
1.3.1 Schichtenstruktur
Eine Schicht (layer) des Betriebssystems
• ist zuständig für Verwaltung eines Betriebsmitteltyps,
• benutzt andere Schichten (durch Aufrufe),
• wobei „benutzt“ eine lineare Ordnung ist; man sagt auch:
die Schichten bilden eine funktionale Hierarchie.
1.3.1 Schichtenstruktur
Eine Schicht (layer) des Betriebssystems
• ist zuständig für Verwaltung eines Betriebsmitteltyps,
• benutzt andere Schichten (durch Aufrufe),
• wobei „benutzt“ eine lineare Ordnung ist; man sagt auch:
die Schichten bilden eine funktionale Hierarchie.
.
.
Schicht 3
Schicht 2
Schicht 1
Hardware
Schicht n benutzt die
Schichten n-1, n-2, ...
Andere – äquivalente – Betrachtungsweise:
an der Schnittstelle von Schicht 1 sieht man eine
abstrakte Maschine (abstract machine), die nicht mehr mit der
realen Maschine (Hardware) identisch ist, d.h. Teile von deren
Funktionalität verbirgt und dafür neue
Funktionalität hinzufügt – entsprechend für Schicht 2,3,..
Andere – äquivalente – Betrachtungsweise:
an der Schnittstelle von Schicht 1 sieht man eine
abstrakte Maschine (abstract machine), die nicht mehr mit der
realen Maschine (Hardware) identisch ist, d.h. Teile von deren
Funktionalität verbirgt und dafür neue
Funktionalität hinzufügt – entsprechend für Schicht 2,3,..
.
.
Schicht 3
Schicht 2
Schicht 1
Hardware
Systemschnittstelle
abstrakte Maschine 3
abstrakte Maschine 2
abstrakte Maschine 1
reale Maschine
Historisches Beispiel: Einführung des Schichtenprinzips durch
T.H.E.
(Technische Hogeschool Eindhoven,
Dijkstra 1967)
Stapelsystem für die Electrologica X8
5
Benutzerprogramme
4
E/A-Verwaltung (Lochstreifen, Drucker)
3
Konsolverwaltung (Operateur-Konsole)
2
Speicherverwaltung (Arbeitsspeicher, Trommel)
1
Prozeßverwaltung
0
Hardware
Typische Schichtung heutiger Betriebssysteme:
6 Befehlsinterpretierer
5 Fenstersystem
4 E/A-Verwaltung
3
Dateiverwaltung
2
Speicherverwaltung
1
Prozeßverwaltung
0
Hardware
Benutzerprogramme
Middleware
Netzkommunikation
Verwandter Begriff:
Virtuelle Maschine (virtual machine, VM)
= komplett simulierte reale Maschine
Mehrere Exemplare einer VM auf einer realen Maschine

Koexistenz mehrerer Betriebssysteme möglich
Beispiele:
CP
simulierte IBM 360/370 (1969)
bochs simuliert Intel x86
vmware simuliert Intel x86
1.3.2 Kern oder Mikrokern
Monolithischer Kern (kernel):
das gesamte Betriebssystem (im engeren Sinn)
ist in einem Adressraum untergebracht, der auch
häufig im Ganzen speicherresident gehalten wird.
Mikrokern (microkernel):
das Betriebssystem ist auf verschiedene Adressräume
aufgeteilt, daher leicht erweiterbar und partiell auslagerbar;
keine fest definierte „Systemschnittstelle“ mehr;
Mikrokern verwaltet Benutzer- und System-Adressräume.
1.3.3 Aufruf- oder auftragsbasiert
Zur Erinnerung:

aufrufbasiert:

auftragsbasiert: Diensterbringer ist Prozess
und wird vom Klientenprozess
mit Auftragserteilung angesprochen
Diensterbringer ist Prozedur/Modul/Objekt
und wird vom Klientenprozess
mit Aufruf angesprochen
Bei Betriebssystemen: „Dienst“ ist ein Systemdienst,
entweder an der Systemschnittstelle
oder an einer systeminternen Schnittstelle
Aufrufbasierte Systeme:
• Prozess wandert durch verschiedene Adressräume
• dynamische Prozesserzeugung für asynchrone Dienste
Auftragsbasierte Systeme:
• Adressraumwechsel nur bei Prozessumschaltung
• Diensterbringung in der Regel asynchron
1.3.4 Objektorientierung bei Betriebssystemen

Implementierung eines Betriebssystems:
• Assembler war lange gebräuchlich (bis etwa 1970)
• Systemimplementierungssprache (C, Modula, ...)
Schicht besteht aus mehreren Modulen,
aber ein Modul kann sich auch
über mehr als eine Schicht erstrecken
• objektorientierte Sprache (C++)
höhere Schicht kann Klasse aus tieferer Schicht
erweitern

Objektorientierung an der Systemschnittstelle:
• Betriebssystem verwaltet Systemtypen
(z.B. Prozess, Semaphor, Datei, Port, ...),
von denen Objekte erzeugt werden können
(die im Adressraum des Betriebssystems liegen)
• Betriebssystem verwaltet ausschließlich Typen und Objekte,
auch für die Benutzerprogramme –
unterstützt durch entsprechende Adressraum-Strukturierung
Beachte:
Das Objektmodell eines objektorientierten
Betriebssystems ist programmiersprachenunabhängig
Herunterladen