14.11.2012 Aufrufe

Vorlesung Betriebssysteme

Vorlesung Betriebssysteme

Vorlesung Betriebssysteme

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!