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: Lader IBM 704Röhren
1960 2. Generation: Stapelsysteme mit IBM 7090, Zuse Z 23,Halbleiter Spooling (Bänder, Trommeln, Telefunken TR 4Platten später auch Platten).
1970 3. Generation: Dateisysteme, virtueller Sp., IBM OS/360, TSS, ...Hochintegration Teilnehmersysteme; T.H.E., Multics, Unix(LSI) Datenbanksysteme,
Rechnernetze.
1980 4. Generation: Personal Computing MS/DOSHöchstintegr. Fenstersysteme Apple Lisa, Mac(VLSI), „chips“ Client/Server-Systeme SunOS
1990 Schnelle Netze Verteilte Betriebssysteme AmoebaMiddleware CORBA
Perspektive:
2000 Mobile Rechner, eingebettete BS JavaCardallgegenwärtig ... Windows/CE
2010 sichere BS ?
2020
2030 Quantenrechner? QuantenBS ?
Aktuelle Forschung: • 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 undentfernt sich zum Schluss selbst
Ladetaste betätigen:startet Laden eines selbstladenden Ladersund startet diesen Lader
wie , aber Lader im Speicher belassen !
Arbeitsspeicher
Residenter Lader
freier Speicher
0
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)
Rechner
Eingabe lesen
Ausgabe drucken
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)
E/A-Routinen
Lader
Monitor
freier Speicher
0
128 K
Arbeitsspeicher
E/A-Routinen
Lader
Monitor
freier Speicher
0
128 K
Dienstprogrammeauf Magnetband:
Übersetzer,Binder,.....
Arbeitsspeicher
Durchsatzerhöhung durch Überlappung von
Lesen – Verarbeiten – Drucken (off-line input/output)
Eingaberechner Ausgaberechner
Verarbeitungs- Rechner
Eingabebereich Ausgabebereich
Dienstprogramme Benutzerdateien
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!
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.)
Zentraleinheitmit
Teilnehmer-BetriebssystemM
ulti
ple
xer
weitere Peripherie
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
Hardwar
e
. .
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
Hardwar
e
. .
abstrakte Maschine 3
abstrakte Maschine 2
abstrakte Maschine 1
reale Maschine
Systemschnittstelle
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 Benutzerprogramme
5 Fenstersystem Middleware
4 E/A-Verwaltung Netzkommunikation
3 Dateiverwaltung
2 Speicherverwaltung
1 Prozeßverwaltung
0 Hardware
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 x86vmware 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: Diensterbringer ist Prozedur/Modul/Objektund wird vom Klientenprozessmit Aufruf angesprochen
auftragsbasiert: Diensterbringer ist Prozess
und wird vom Klientenprozess
mit Auftragserteilung angesprochen
Bei Betriebssystemen: „Dienst“ ist ein Systemdienst,
entweder an der Systemschnittstelleoder 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
Top Related