Vorlesung Betriebssysteme
Vorlesung Betriebssysteme
Vorlesung Betriebssysteme
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Vorlesung</strong> <strong>Betriebssysteme</strong><br />
Hochschule Darmstadt<br />
Studiengang: CNAM<br />
Dozent: Günther Fröhlich<br />
Literatur: A. Tanenbaum, Moderne<br />
<strong>Betriebssysteme</strong>, 3. Auflage (2009)<br />
<strong>Vorlesung</strong> WS 2010 - Samstags 11:00 Uhr
Aus der Einführung von Tanenbaum<br />
https://www.amazon.de/Moderne-<strong>Betriebssysteme</strong>-Andrew-S-Tanenbaum/dp/3827370191/ref=sr_1_1?s=gateway&ie=UTF8&qid=1285840922&sr=8-1
Einführung<br />
Prozesse und Threads<br />
Speicherverwaltung<br />
Dateisysteme<br />
Eingabe und Ausgabe<br />
Deadlocks<br />
Multimediasysteme<br />
Linux und Windows Vista<br />
Gliederung<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 3
Was ist ein Betriebssystem?<br />
Die Abgrenzung ist schwierig<br />
1. Versuch: BS ist Software, die im Kernelmode läuft<br />
(Hardwareschutz !)<br />
2. Versuch funktional: BS übernimmt zwei unabhängige<br />
Aufgaben:<br />
Bietet (saubere) Abstraktion der Betriebsmittel für<br />
Programme und Programmierer<br />
Verwaltung der Hardwareresourcen<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 4
Was ist ein Betriebssystem ?<br />
Das Betriebssystem als eine erweiterte Maschine<br />
Top-Down-Sicht<br />
Architektur eines Rechners auf Ebene der<br />
Maschinensprache ist simpel (nicht abstrakt) und schwer<br />
zu programmieren<br />
Gutes Beispiel ist die Ein-/Ausgabe mit einer alten<br />
einfachen Diskette und Diskettenlaufwerk.<br />
Der IBM-PC Disketten-Controller kennt 16 Steuerbefehle<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 5
Was ist ein Betriebssystem ?<br />
Das Betriebssystem als eine erweiterte Maschine<br />
Elementare Kommandos sind read und write mit je 13<br />
Parametern in 9 Byte und bestimmen<br />
die Adresse des zu lesenden Diskettenblocks<br />
die Anzahl der Sektoren pro Spur<br />
den Aufzeichnungsmodus des physikalischen<br />
Mediums<br />
den Abstand zwischen den Sektoren<br />
Die Behandlung der deleted data address Marke<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 6
Was ist ein Betriebssystem ?<br />
Das Betriebssystem als eine erweiterte Maschine<br />
Nach Abschluss der Operation liefert der Controller 23<br />
Status und Fehlerfelder, die in 7 Byte gepackt sind.<br />
Zusätzlich muss der Programmierer eines<br />
Diskettensystems berücksichtigen, ob der Motor an oder<br />
ausgeschaltet ist.<br />
Ist er ausgeschaltet, muss er mit einer Anlaufverzöge-rung<br />
angeschaltet werden, bevor Daten gelesen / geschrieben<br />
werden<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 7
Was ist ein Betriebssystem ?<br />
Das Betriebssystem als eine erweiterte Maschine<br />
Motor darf nicht zu lange eingeschaltet sein, um die<br />
Diskette zu schonen<br />
Mit der Programmierung des Controllers will sich ein<br />
Anwendungsprogrammierer nicht beschäftigen, er will eine<br />
einfache Abstraktion auf oberster Ebene:<br />
Diskette enthält Dateien, die geöffnet, gelesen, geschrieben<br />
und geschlossen werden können. Details der Ausführung<br />
sollen in der Abstraktion nicht auftreten<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 8
Was ist ein Betriebssystem ?<br />
Das Betriebssystem als eine erweiterte Maschine<br />
Hardware ist hässlich: eine der Hauptaufgaben eines BS ist<br />
es, die Hardware zu verstecken<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 9
Was ist ein Betriebssystem ?<br />
Das Betriebssystem als Ressourcenverwalter<br />
Bottom-Up-Sicht<br />
BS soll die Hardware (Prozessoren, Speicher, Ein-Ausgabegeräte wie Tastaturen,<br />
Mäuse, Druckern, Netzwerkschnittstellen etc. ) geordnet und kontrolliert den<br />
um sie konkurrierenden Programmen zuteilen (z.B.<br />
Druckausgaben)<br />
Braucht man kein BS, wenn nur ein Programm laufen<br />
kann?<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 10
Was ist ein Betriebssystem ?<br />
Das Betriebssystem als Hardwareschutz<br />
Auch wenn nur ein Programm läuft, muss verhindert<br />
werden, dass ein fehlerhaftes Programm<br />
die Maschine zum Absturz bringt<br />
die Hardware beschädigt<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 11
Geschichte der <strong>Betriebssysteme</strong><br />
Die erste Generation (1945 1955)<br />
Rechner auf Basis von Relais oder Röhren<br />
Eine Gruppe von Ingenieuren entwarfen, bauten,<br />
betrieben und warteten einen Rechner<br />
Programmierung erfolgte in Maschinensprache -<br />
Assembler und höhere Programmiersprachen waren<br />
noch unbekannt<br />
<strong>Betriebssysteme</strong> gab es nicht<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 12
Geschichte der <strong>Betriebssysteme</strong><br />
Die zweite Generation (1956- 1965) - Transistoren und<br />
Stapelverarbeitungssysteme<br />
Mit Einführung der Transistoren wurden Rechner kleiner,<br />
zuverlässig und in Serie hergestellt.<br />
Erstmals Trennung zwischen Entwicklern, Herstellern,<br />
Operateuren und Wartungspersonal<br />
Mainframes wurden in geschützten klimatisierten<br />
Räumen von Operateuren betrieben<br />
Besitzer: Große Unternehmen, Behörden und<br />
Universitäten<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 13
Geschichte der <strong>Betriebssysteme</strong><br />
Die zweite Generation (1956- 1965) - Transistoren und<br />
Stapelverarbeitungssysteme<br />
Einführung von Assembler und Fortran<br />
Programme wurden auf Papier entwickelt und dann auf<br />
Lochkarten gestanzt<br />
Lochkartenstapel (Stapelverarbeitung !) wurde dann den<br />
Operateuren übergeben, die sie<br />
in den Rechner zum Lesen einlegten<br />
Compiler-Kartenstapel dazu holten<br />
ein ausführbares Programm erstellten<br />
das Programm ausführen ließen<br />
das Ergebnis dem Programmierer übergaben<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 14
Geschichte der <strong>Betriebssysteme</strong><br />
Die zweite Generation (1956- 1965) - Transistoren und<br />
Stapelverarbeitungssysteme<br />
Lochkartenstapel wurde dann den Operateuren<br />
übergeben, die sie<br />
in den Rechner zum Lesen einlegten<br />
Compiler-Kartenstapel dazu holten<br />
ein ausführbares Programm erstellten<br />
das Programm ausführen ließen<br />
das Ergebnis dem Programmierer übergaben<br />
Dabei wurde viel Rechenzeit für Laufarbeiten<br />
verschwendet → Konzept der Stapelverabeitung<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 15
Geschichte der <strong>Betriebssysteme</strong><br />
Die zweite Generation (1956- 1965)<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 16
Geschichte der <strong>Betriebssysteme</strong><br />
Die zweite Generation (1956- 1965) - Transistoren und<br />
Stapelverarbeitungssysteme<br />
Ziel: optimale Auslastung der Rechenkapazität<br />
Trennung von Programmerzeugung, Ausführung und<br />
Ergebnisausgabe<br />
Bei der Ausführung auf der 7094 wurde ein spezielles<br />
Programm geladen, das den ersten „Job“ vom Band<br />
geladen und ausgeführt hat. Dieses Programm ist ein<br />
Vorläufer der heutigen <strong>Betriebssysteme</strong><br />
Nach Abschluss eines Jobs las das BS automatisch den<br />
nächsten Job vom Band<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 17
Geschichte der <strong>Betriebssysteme</strong><br />
Die zweite Generation (1956- 1965)<br />
FMS = Fortran Monitor<br />
System<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 18
Geschichte der <strong>Betriebssysteme</strong><br />
Die zweite Generation (1956- 1965)<br />
Struktur des Jobs:<br />
$JOB-Karte Maximale Laufzeit, Abrechnungsnummer und -name<br />
$FORTRAN Betriebssystem lädt Compiler vom Band und compiliert<br />
$LOAD Das übersetzte Programm wird in den Speicher geladen<br />
$RUN Das BS startet die Ausführung des Programms<br />
$END Markiert das Ende des Jobs<br />
Diese Kontrollkarten waren die Vorläufer der modernen<br />
Kommandozeileninterpreter und Shells<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 19
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
Zwei grundlegende Rechnerarchitekturen:<br />
wortorientierte wissenschaftliche Rechner (numerische<br />
Berechnungen )<br />
zeichenorientierte kommerzielle Rechner (z.B. IBM 1401)<br />
für Listenerstellen, -sortieren und -drucken<br />
IBM System/360 verband beide Produktlinien und führte<br />
die Rechnerfamilienbildung ein.<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 20
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
IBM System/360 verband beide Produktlinien und führte die<br />
Rechnerfamilienbildung ein, um<br />
nur ein Betriebssystem (OS360) entwickeln und warten<br />
zu müssen<br />
mit einer Befehlssatzarchitektur (ISA) die gleiche<br />
Software auf unterschiedlichen Generationen der<br />
Rechnerfamilie benutzen zu können<br />
Kommerziell bis heute erfolgreiches Konzept mit den<br />
Generationen 360, 370, 3080, 3090... bis SystemZ.<br />
Werden heute noch als DB- und WWW-Server eingesetzt<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 21
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
Die Stärke von OS360 war seine größte Schwäche:<br />
Es sollte universell einsetzbar sein, bestand aus einigen<br />
Millionen Zeilen Assemblercode und enthielt tausende<br />
von Fehlern.<br />
Jede Version beseitigte Fehler und erzeugte neue.<br />
Die Anzahl der Fehler blieb über die Laufzeit konstant!<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 22
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
Wichtige neue Konzepte:<br />
Multiprogrammierung<br />
Spooling<br />
Timesharing<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 23
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
Multiprogrammierung<br />
Ziel: Bessere Auslastung der CPU<br />
Mehrere Jobs liegen im Speicher in eigenen durch<br />
Hardware geschützten Partitionen<br />
Muss ein Job pausieren, um eine Ein-/Ausgabe<br />
abzuwarten, kann das BS einem<br />
anderen Job die CPU<br />
zuteilen<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 24
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
Spooling<br />
Die Job-Karten wurden wurden statt auf Bändern auf<br />
eine (schnelle) Platte geschrieben<br />
Wurde ein Job beendet, lud das BS einen neuen von<br />
Platte in eine freie Partition<br />
BS der 3. Generation waren im Kern Stapelverarbeitungssysteme<br />
mit entsprechend langen<br />
Antwortzeiten<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 25
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
Timesharing<br />
Ist eine Variante der Multiprogrammierung<br />
Vorteil: Erlaubt kurze Antwortzeiten für viele Benutzer<br />
und Stapelverarbeitung im Hintergrund<br />
Verfahren: BS teilt jedem Job/Benutzer für kurze Zeit die<br />
CPU zu<br />
Erstes universelles System war CTSS (Compatible<br />
Timesharing System) vom M.I.T.<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 26
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
MULTICS (Multiplexed Information and Computing System)<br />
wurde Nachfolger von CTSS.<br />
Projekt von M.I.T, Bell Labs und General Electric<br />
Vorbild war die Elektrizitätsversorgung<br />
Damalige verfügbare Hardware (Rechenleistung) wurde<br />
dem Anspruch, mit einer Maschine mehrere hundert<br />
Anwender zu bedienen<br />
Kommerziell kein großer Erfolg<br />
Lief in einigen Unternehmen bis in die 90ger Jahre<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 27
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
Neue Rechnergeneration: Minicomputer (PDP-1 bis PDP-<br />
11) von DEC<br />
PDP-1Speicher nur 4096 Worte á 18 Bit<br />
Sehr preiswert – 5% des Preises einer IBM 7094<br />
Kommerziell sehr erfolgreich, neuer Markt wurde<br />
geschaffen<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 28
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
UNIX<br />
Bell Labs und MULTICS Mitarbeiter Ken Thompson schrieb<br />
für eine PDP-7 ein Einbenutzer-bestriebssystem von<br />
MULTICS, also ein abgespecktes MULTICS<br />
Dies bildete die Grundlage für das spätere BS UNIX<br />
Freier Quellcode !<br />
System V von AT&T und BSD Unix (Berkeley Software<br />
Distribution)<br />
Nach chaotischer, inkompatibler Entwicklung: POSIX als<br />
Standard für UNIX von IEEE (Institute of Electrical and<br />
Electronics Engineers)<br />
POSIX definiert einen Teil der Systemschnittstelle<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 29
Geschichte der <strong>Betriebssysteme</strong><br />
Die dritte Generation (1966- 1980)<br />
MINIX<br />
UNIX Klon für Ausbildungszwecke von Tanenbaum.<br />
Unter www.minix3.org ist der Quellcode frei erhältlich<br />
POSIX kompatibel<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 30
Geschichte der <strong>Betriebssysteme</strong><br />
Die vierte Generation (1981 – heute)<br />
Fortschritte der Halbleitertechnik → Zeitalter der<br />
Personalcomputer<br />
PC <strong>Betriebssysteme</strong> waren<br />
CP/M (Control Program for Mikrocomputers) von<br />
Digital Research<br />
MS-DOS<br />
16 Bit Systeme ohne grafische Benutzerschnittstelle<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 31
Geschichte der <strong>Betriebssysteme</strong><br />
Die vierte Generation (1981 – heute)<br />
Entwicklungsphasen bei PC und Homecomputer:<br />
BS war ursprünglich fest im ROM eingebaut und enthielt<br />
meistens BASIC, das als Kommando- und auch als<br />
Programmier-Sprache diente. (z.B: C64)<br />
BS benötigten mehr Speicherplatz und wurden von<br />
Platte/Disk nachgeladen („Bitte legen Sie die Systemdiskette in Laufwerk A“ ) oder<br />
auf einer Platte installiert. (CP/M, DOS, Linux oder Unix)<br />
DOS und CP/M bestanden aus mehreren Teilen: dem<br />
Kommandointerpreter (COMMAND.COM), sowie<br />
Zusatzprogrammen, die bestimmte Aufgaben<br />
übernahmen. COMMAND.COM enthielt nur rudimentäre<br />
Befehle (z.B. Starten von Programmen, Kopieren und Löschen von Dateien)<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 32
Geschichte der <strong>Betriebssysteme</strong><br />
Die vierte Generation (1981 – heute)<br />
Entwicklungsphasen bei PC und Homecomputer:<br />
In Verbindung mit Zusatzprogrammen war es möglich,<br />
Texte zu bearbeiten (EDIT), Disketten zu formatieren<br />
(FORMAT) und zu überprüfen (SCANDISK), oder<br />
gelöschte Dateien wiederherzustellen (UNDELETE). Um<br />
Peripherie und Computerkomponenten anzusprechen ,<br />
wurden die nötigen Treiber in den Autostartdateien wie<br />
z.B. (bei DOS) CONFIG.SYS und AUTOEXEC.BAT<br />
eingebunden; bei vielen gleichzeitig vorhandenen<br />
Hardwarekomponenten eine schwierige Aufgabe.<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 33
Geschichte der <strong>Betriebssysteme</strong><br />
Die vierte Generation (1981 – heute)<br />
Entwicklungsphasen bei PC und Homecomputer:<br />
Grafische Benutzeroberflächen: GEM, MacOS, OS/2,<br />
Windows → Benutzerfreundlichkeit, weniger<br />
Expertenwissen notwendig.<br />
1985-1995: Windows war (nur) grafische<br />
Benutzerumgebung auf MS-DOS<br />
1995: Windows 95 benötigte DOS nur noch zum<br />
Hochfahren des Rechners (Booten)<br />
Windows 98 war auch noch ein 16 Bit System, lief aber<br />
in der Regel auf 32 Bit Prozessoren (ab 80386 von 198x)<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 34
Geschichte der <strong>Betriebssysteme</strong><br />
Die vierte Generation (1981 – heute)<br />
Entwicklungsphasen bei PC und Homecomputer:<br />
WINDOWS NT erstes 32 Bit BS-System von Microsoft<br />
Sollte MS-DOS und Windows 3.x und Windows 95<br />
ersetzten. Setze sich nicht durch<br />
Weitere Versionen bis zur Erweiterung auf 64 Bit<br />
NT 4.0<br />
Windows 98<br />
Windows ME<br />
Windows XP<br />
Windows Vista<br />
Windows 7<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 35
Geschichte der <strong>Betriebssysteme</strong><br />
Die vierte Generation (1981 – heute)<br />
Entwicklungsphasen bei PC und Homecomputer:<br />
Unix Familie<br />
Linux wurde die Alternative zu Windows auf Intel<br />
Pentium (IA32) Rechnern<br />
FreeBSD ist bekannter UNIX Ableger, läuft auf modernen<br />
Macintosh Rechnern<br />
Standard im Workstation-Bereich bei HP und SUN<br />
Benutzeroberflächen (GUIs) sind X11-basiert<br />
KDE, GNOME setzen auf X11 auf<br />
Solaris auf Basis von SunOs ist ein Unix-BS und<br />
kompatibel zu System V (siehe bei Wikipedia)<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 36
Geschichte der <strong>Betriebssysteme</strong><br />
Die vierte Generation (1981 – heute)<br />
Netzwerkbetriebssysteme<br />
Für Netzwerke mit Workstations und PCs benötigt man<br />
Netzwerkbetriebssysteme.<br />
Einloggen auf entfernten Maschinen und Zugriff auf<br />
entfernte Dateien möglich<br />
Auf jedem Rechner läuft ein lokales BS, das mit<br />
Kommunikationsfähigkeiten erweitert wurde.<br />
Die Struktur des BS bleibt gleich<br />
Die Hoheit über den Rechner hat das lokale BS<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 37
Geschichte der <strong>Betriebssysteme</strong><br />
Die vierte Generation (1981 – heute)<br />
Verteilte <strong>Betriebssysteme</strong><br />
Benutzer sieht nur einen Rechner, der aus vielen Rechnern<br />
bestehen kann.<br />
Das BS organisiert und verbirgt dem Benutzer, auf<br />
welchem Rechner sein Programm läuft und wo seine<br />
Daten liegen<br />
Läuft eine Anwendung gleichzeitig auf mehreren<br />
Rechnern (Paralleles Rechnen), benötigt das BS<br />
zusätzliche Sychronisationsmechanismen<br />
Struktur des BS ändert sich, ein BS auf einem Rechner<br />
hat nicht mehr die Hoheit über das Gesamtsystem<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 38
Geschichte der <strong>Betriebssysteme</strong><br />
Die vierte Generation (1981 – heute)<br />
OpenVMS für Mini-Computer – und Workstation<br />
http://de.wikipedia.org/wiki/Virtual_Memory_System<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 39
Computerhardware<br />
Das Betriebssystem als erweiterte Maschine, Resourcenverwalter<br />
und Schützer der Hardware muss die Hardware<br />
genau kennen. Deshalb ein prinzipieller Exkurs in die<br />
Hardware eines Computers<br />
Prozessoren<br />
Arbeitsspeicher<br />
Festplatten<br />
Magnetbänder<br />
Ein-/Ausgabegeräte<br />
Bussysteme<br />
Hochfahren des Computers<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 40
Computerhardware<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 41
Computerhardware - Prozessoren<br />
Der Prozessor, die Central Processing Unit (CPU) führt<br />
ein Programm aus, dessen Code und Daten im Speicher<br />
stehen.<br />
Eine CPU besteht in der Regel aus (mindestens)<br />
n Allzweckregistern zum Speichern von Variablen<br />
Programcounter (PC)<br />
Instructionregister (IR)<br />
Arithmetic and Logical Unit (ALU)<br />
Stackpointer (SP)<br />
Framepointer (FP)<br />
Program Status Word (PSW)<br />
Control Unit (CU)<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 42
Computerhardware - Prozessoren<br />
(CPU ist Thema bei Rechnerarchitektur und wird dort behandelt.siehe bei )<br />
BS – CPU<br />
BS muss die Register kennen, weil es bei<br />
Prozessumschaltung (s. Multiprocessing,<br />
Timesharing) den Status (die Register) des zu<br />
suspendierenden Prozesses sichern muss.<br />
BS muss Programmausnahmen behandeln (z.B<br />
Programm beenden nach Division durch null)<br />
BS läuft im Kernelmode, privilegierten Mode der<br />
CPU und hat Zugriff auf komplette Hardware<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 43
Computerhardware - Prozessoren<br />
Multithreading fähige CPU: für BS erscheint das als<br />
mehrere CPUs<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 44
Computerhardware - Prozessoren<br />
Multicore-CPU: BS muss mit mehreren Kernen<br />
umgehen können !<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 45
Computerhardware - Speicher<br />
Speicher soll schnell, groß und billig sein<br />
Das erreicht man mit einer Speicherhierarchie:<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 46
Computerhardware - Speicher<br />
Register schnell wie CPU, relativ wenige<br />
(eins bei Akkumulator-Prozessoren, 2*128 bei<br />
Intel Itanium<br />
Gesteuert von Anwendungsprogramm-, BS und<br />
Cache<br />
Hardware<br />
●Wird von Hardware gesteuert<br />
●L1 im Prozessor (KB) statisches RAM<br />
●L2 auf dem Prozessorchip oder eigenem Chip<br />
(MB)<br />
●oftmals gibt es schon L3 Cache<br />
●Caching ist weitverbreitetes Konzept in der<br />
Informatik<br />
●Verschiedene Cacheorganisationen (direct<br />
maped … vollassoziativ)<br />
●Cache-Ersetzungsstrategien<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 47
RAM<br />
Nichtflüchtige<br />
Speicher<br />
Computerhardware - Speicher<br />
●Eigentlicher Arbeitsspeicher, dynamisches RAM<br />
(Random Access Memory)<br />
●Hieß früher Kernspeicher -Magnetkernspeicher<br />
●Entwicklung von einigen KB auf einige GB in 40<br />
Jahren.<br />
●Wird vom BS verwaltet<br />
ROM, PROM EPROM FLASH-EPROM<br />
BIOS früher im ROM, heute FLASH-EPROM<br />
FLASH-EPROM ist wie RAM, aber langsamer<br />
FLASH-EPROM ist schneller als Festplatte mit<br />
kürzerer Abnutzungszeit<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 48
Computerhardware - Speicher<br />
Festplatten Kapazität: früher Megabyte, heute Terabyte<br />
Faktor 100 pro Bit billiger als RAM, aber 1000<br />
mal langsamer, weil es ein mechanisches,<br />
rotierendes Gerät ist (bis 10000 mal pro Minute)<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 49
Computerhardware - Speicher<br />
Festplatten Einteilung in Spuren (tracks), Segmente und<br />
Zylinder<br />
Bewegung des Arms von einem Zylinders zum<br />
nächsten braucht etwa 1 ms<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 50
Computerhardware - Speicher<br />
Festplatten BS muss die Festplatte verwalten (Formatieren,<br />
Partitionieren, Listen über beschädigte Segmente<br />
führen, Fragmentierung von Dateien vermeiden ,<br />
Defragmentieren<br />
BS kennt Verfahren, Festplattenzugriffe zu<br />
optimieren (Caching, Fragen des Dateisystems)<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 51
Computerhardware - Ein-/Ausgabegeräte<br />
E/A-Geräte bestehen aus Controller und dem Gerät.<br />
Controller nehmen über spezielle Treiber Aufträge vom<br />
BS an (z.B. lese Sektor 10120) und wandelt die lineare<br />
Nummer in gerätespezifische Parameter um (Spur,<br />
Sektor, Zylinder) und führt die Aktion geordnet aus<br />
Controller ist eine spezialisierte CPU<br />
Applikation liest Datei<br />
Betriebssystem kennt Datei und ihren<br />
Aufbewahrungsort<br />
Gerätetreiber (Teil des BS) wandelt in<br />
controllergemäße Parameter<br />
Controller wandelt in gerätespezifische<br />
Parameter<br />
Gerät<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 52
Computerhardware - Ein-/Ausgabegeräte<br />
Treiber<br />
Jeder Controllertyp braucht seinen speziellen Treiber<br />
( z.B. IDE (integrated drive electronics ) Controller für IDE-Festplatten)<br />
Controllerhersteller liefert Treiber für Betriebssystem(e)<br />
Treiber müssen ins BS integriert werden.<br />
Drei Verfahren der Integration:<br />
1.Treiber wird in Kern eingebunden, Systemneustart<br />
(ältere Unix-Systeme)<br />
2.Treiber wird in einer Datei als notwendig eingetragen<br />
und nach Neustart geladen (Windows)<br />
3.Neuer Treiber wird zur Laufzeit geladen und zur<br />
Verfügung gestellt (Hot-Plug-fähige Geräte über<br />
USB)<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 53
Computerhardware - Ein-/Ausgabegeräte<br />
Zugriff auf Controller<br />
Zwei Varianten:<br />
1. Jedes Controllerregister ist über einen Port (eine<br />
Portadresse) mittels IN und OUT-Befehlen ansprechbar.<br />
IN und OUT sind nur im Kernmodus verfügbar,<br />
Geräteschutz ist damit gewährleistet<br />
2. Controllerregister werden in den Adressraum des BS<br />
eingeblendet (memory mapped devices), benötigen<br />
keine speziellen IN/OUT Befehle.<br />
Treiber in Hochsprache möglich<br />
Geräteschutz: Applikation hat keinen Zugriff auf<br />
Adressraum des Betriebssystems<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 54
Computerhardware - Ein-/Ausgabegeräte<br />
Methoden der Ein-/Ausgabe<br />
Synchrones IO<br />
durch Aktives<br />
Warten<br />
Asynchrones<br />
IO durch<br />
Interruptsteuerung<br />
1.Applikation führt Systemaufruf aus und springt in den Kern<br />
2.Betriebssystem ruft Treiber auf<br />
3.Gerätetreiber programmiert den Controller und fragt solange den<br />
Controller immer wieder ab, bis dieser Vollzug meldet (steht in<br />
einem Register des Controllers)<br />
4.BS übergibt an Applikation<br />
1. Wie oben<br />
2. Wie oben<br />
3.Gerätetreiber programmiert den Controller<br />
4.Controller führt Aktion aus<br />
5.Controller signalisiert Vollzug einem Interrupt-Controller<br />
6.Interrupt-Controller signalisiert der CPU, dass Daten vorliegen<br />
7.Interrupt-C. teilt CPU mit, von welchem Gerät die Daten kommen<br />
8.CPU rettet Befehlszähler und Programm-Status-Wort und schaltet in<br />
Kernmodus<br />
9. Der Interrupt-Handler für das entsprechende Gerät wird gestartet<br />
10. Rückkehr ins Beutzerprogramm<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 55
Computerhardware - Ein-/Ausgabegeräte<br />
Methoden der Ein-/Ausgabe<br />
DMA<br />
Direct Memory<br />
Access<br />
Spezieller auf Ein-/Ausgabe optimierter Chip, der Datenfluss zwischen<br />
Speicher und Controller ohne die CPU organisiert<br />
CPU gibt Auftrag an DMA-Controller, wieviele Byte von A nach B in<br />
welcher Richtung zu übertragen sind<br />
● Schneller als über die CPU<br />
● CPU kann entweder warten oder etwas anderes ausführen<br />
Nach Abschluss wird ebenfalls ein Interrupt erzeugt und das<br />
Betriebssystem kann das wartende Programm wieder aktivieren<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 56
Computerhardware - Ein-/Ausgabegeräte<br />
Interrupt während Interruptausführung<br />
Wird ein Interrupt bearbeitet, werden andere<br />
Interrupts blockiert<br />
Interruptauslöser senden solange ihr Interruptsignal,<br />
bis die Blockierung aufgehoben ist<br />
Interrupts-Priörität legt fest, welcher als nächstes<br />
ausgeführt wird<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 57
Computerhardware -Ein-/ Ausgabegeräte<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 58
Computerhardware - Bussysteme<br />
Historisch typisches Bussystem<br />
Reicht für heutige Anforderungen nicht aus wegen<br />
Steigender Zahl von Peripherigeräten<br />
Unterschiedlicher Arbeitsgeschwindigkeit der<br />
Komponenten z.B:<br />
● Sehr schnelle Verbindung zum Speicher und<br />
Grafikkarte notwendig<br />
● Langsame Verbindung zur Tastatur reicht aus<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 59
Computerhardware - Bussysteme<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 60
Computerhardware - Bussysteme<br />
ISA (IBM-PC/AT) 16 Bit parallel 8.3 MHz 16.67 MB/s<br />
PCI<br />
Nachfolger ISA<br />
PCI-Express 64 Bit parallel<br />
USB für langsame<br />
IO-Geräte<br />
Tastatur, Maus...)<br />
IDE für<br />
Festplatten, CD-<br />
ROM<br />
64 Bit parallel 60 MHz 528 MB/s<br />
bitseriell Anschluss zur<br />
Laufzeit des<br />
Rechners möglich<br />
1.5 MB/s USB 1<br />
60 MB /s USB 2<br />
300 MB/s USB 3<br />
SCSI 8 /16 Bit parallel 300 MB/s<br />
FireWire bitseriell 100 MB/s<br />
BS muss wissen, welche Peripheriegeräte angeschlossen sind<br />
und muss diese konfigurieren. Heute mit Plug und Play (zuerst<br />
bei MacIntosh) – früher feste Interruptnummern und Adressen<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 61
Die Betriebssystemfamilie<br />
<strong>Betriebssysteme</strong> für<br />
Großrechner<br />
Server<br />
Multiprozessorsysteme<br />
Personalcomputer<br />
Handheld-Computer<br />
Eingebettete Systeme<br />
Echtzeitsysteme<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 62
Betriebssystemfamilie- Großrechner<br />
Großrechner werden z.B als WebServer, als Server im<br />
Bereich E-Commerce (Banken, Versicherungen...)<br />
eingesetzt<br />
Hohe I/O-Leistung mit mehr als 1000 Festplatten und<br />
vielen Terabyte Daten<br />
Kombination von Batch-, Dialog- und Timesharingsystem<br />
Immer noch aktuell: IBM OS390, Tendenz nach Linux<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 63
Betriebssystemfamilie<br />
Server<br />
Hardware: Workstations, PCs, auch Großrechner<br />
Webdienste, Internetanbieter setzen viele Server ein<br />
Typische Bertiebssysteme:<br />
Solrais,<br />
FreeBSD,<br />
Linux ,<br />
Windows Server 200x<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 64
Betriebssystemfamilie<br />
Multiprozessorsysteme<br />
Multicomputer, Multiprozessorsysteme, Parallelcomputer<br />
Sind oft erweiterte Server <strong>Betriebssysteme</strong> – erweitert<br />
um<br />
Kommunikation<br />
Anschlussfähikeit<br />
Konsistenz<br />
Multicoreprozessoren in PCs benötigen heutzutage<br />
Eigenschaften eines Multiprozessor-Betriebssystems.<br />
Windows und Linux sind bereits Multiprozessorfähig<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 65
Betriebssystemfamilie<br />
Personalcomputer<br />
Moderne PC <strong>Betriebssysteme</strong> unterstützen<br />
Multiprogrammierung mittels Timesharing, aber:<br />
ausgelegt auf optimale Unterstützung eines Benutzers<br />
also: Multitasking, aber nicht Multiusersyteme<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 66
Betriebssystemfamilie<br />
Handheld-Computer<br />
PDA (Personal Digital Assistent)<br />
Westentaschencomputer<br />
PDA und Mobiltelefon sind intern mittlerweile sehr<br />
ähnlich<br />
Enthalten mittlerweile einen 32 Bit Prozessor<br />
Vertreter:<br />
Palm OS<br />
Symbian OS<br />
Unterschied zu PC: keine mechanische Festplatte<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 67
Betriebssystemfamilie<br />
Eingebettete Systeme<br />
Eingebettete Systeme steuern andere Geräte. Z.B:<br />
Mikrowelle<br />
Fernsehgeräte<br />
Autos<br />
DVD-Recorder<br />
MP3-Player<br />
Gesamte Software steht im ROM<br />
Schutzmechanismen zwischen Applikationen sind nicht<br />
nötig<br />
Typische Vertreter: QnX, VxWorks<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 68
Betriebssystemfamilie<br />
Echtzeitsysteme<br />
Typischer Einsatz: Prozesssteuerung, aber auch<br />
Multimediaanwendungen haben Echtzeit-Anforderungen<br />
Zeit ist wichtiger Parameter der Resourcenvergabe<br />
(Deadline)<br />
Hartes Echtzeitsystem (hard-realtime-system). Bietet<br />
absolute Garantie, dass Aktionen in definierter Zeit<br />
ausgeführt werden (Prozesssteuerung)<br />
Weiches Echtzeitsystem (soft-realtime-system) Eine<br />
verpasste Deadline ist nicht erwünscht, aber tolerabel<br />
(Multimediaanwendungen).<br />
Harte Echtzeitsysteme sind oft nur eine Bibliothek, die<br />
an die Applikation angebunden ist ohne Schutz zwischen<br />
den Systemteilen<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 69
Betriebssystemkonzepte<br />
Prozesse<br />
Adressräume<br />
Dateien<br />
Ein-/Ausgabe<br />
Datenschutz und Datensicherheit<br />
Die Shell<br />
Ontogenese rekapituliert die Phylogenese<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 70
Betriebssystemkonzepte - Prozesse<br />
Prozesse sind die Abstraktion des Prozessors, denn für<br />
jeden Prozess scheint es einen Prozessor zu geben<br />
Ein Prozess<br />
ist das Schlüsselkonzept von <strong>Betriebssysteme</strong>n<br />
ist ein Programm in Ausführung (mit vielen<br />
Einschränkungen)<br />
Bekommt einen einen Adressraum zugeordnet, nicht<br />
einfach Speicher. Der Adressraum enthält<br />
das ausführbare Programm<br />
die Programmdaten<br />
den Stack<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 71
Betriebssystemkonzepte - Prozesse<br />
Ein Prozess<br />
bekommt Ressourcen zugeordnet wie<br />
Register<br />
Programcounter<br />
Programstatusword<br />
Stackpointer<br />
Liste von geöffneten Dateien<br />
und vieles mehr<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 72
Betriebssystemkonzepte - Prozesse<br />
Bei Multiuser-Systemen gibt<br />
es mindestens soviel<br />
Prozesse wie angemeldete<br />
Benutzer<br />
Auch beim PC als Single<br />
User System befinden sich<br />
viele Prozesse (s. Taskliste)in<br />
der Ausführung<br />
Die Prozessliste zeigt noch<br />
zusätzliche Prozesse des<br />
Betriebssystems<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 73
Betriebssystemkonzepte - Prozesse<br />
Bei Einprozessormaschinen (das war bis vor kurzem die Regel, das<br />
Prozesskonzept ist aber Jahrzente alt) kann zu einem Zeitpunkt nur<br />
ein Prozess den Prozessor benutzen<br />
Ein Prozess muss vom BS die CPU zugeteilt und später<br />
wieder abgenommen bekommen<br />
Diese Verwaltung der Ressource CPU zwischen den<br />
Prozessen ist eine aufwendige und damit CPUbelastende<br />
Aufgabe des Betriebssystems (Context-<br />
Switch)<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 74
Betriebssystemkonzepte - Prozesse<br />
Systemaufrufe zur Prozessverwaltung<br />
Prozess erzeugen<br />
....<br />
Prozess beenden<br />
Typisches Beispiel unter Linux:<br />
1. Ein Prozess - Shell (Kommandozeileninterpreter) – liest<br />
Kommandos vom Terminal ein. Benutzer gibt das<br />
Kommando „Kompiliere Datei xx“.<br />
2. Die Shell startet einen neuen Prozess, der den Compiler<br />
ausführt<br />
3. Am Ende des Kompilierens beendet sich der Prozess<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 75
Betriebssystemkonzepte - Prozesse<br />
Prozessbaum<br />
Jeder Prozess kann einen<br />
weiteren Prozess - einen<br />
Kindprozess – erzeugen<br />
Arbeiten diese Prozesse<br />
gemeinsam an einer Aufgabe,<br />
müssen sie sich synchronisieren(Interprozesskommunikation)<br />
BS muss Bibliothek für<br />
Kommunikation anbieten<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 76
Betriebssystemkonzepte - Prozesse<br />
Systemaufrufe zur Prozessverwaltung:<br />
Anforderung von zusätzlichem Speicher<br />
Freigabe von nicht mehr benötigtem Speicher<br />
Warten auf das Ende eines Kindprozesses<br />
Signalerzeugung und Behandlung<br />
22.10.10 <strong>Betriebssysteme</strong> - Kapitel 1 - Einführung 77