1
WS 2009/10
Version vom 05.10.2009
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 2
Organisation
Leitung: Helmut WeberPraktikum: Carlos Dos Santos, Helmut Weber
Vorlesung: 2-stündig
Praktikumsgruppen : 2-stündig
Klausur am Semesterende
Praktikum:
2 Online-Aufgaben (je 30 %) weitere 3 Aufgaben (je 10%) mündl. Leistungen, Praktikumsordner (10%)
2
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 3
Literatur I
R. Brause, Betriebssysteme – Grundlagen und Konzepte, 2. Auflage, Springer-Verlag, Berlin 2001A.S. Tanenbaum, Moderne Betriebssysteme, 2. Auflage, Pearson-Verlag 2002C. Vogt, Betriebssysteme, Spektrum Akademischer Verlag, Heidelberg 2001J. Nehmer, P. Sturm, Systemsoftware – Grundlagen moderner Betriebssysteme, dpunkt-Verlag, Heidelberg 1998A. Silberschatz, P. Gavin, G. Gagne, Applied Operating Systems Concepts, John Wiley&Sons, New York 2000
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 4
Literatur II
W. Stallings, Operating Systems, Prentice Hall, New Jersey 1998
G. Nutt, Operating Systems, Addison-Wesley, Reading 2000
L. Bic, A. Shaw, Betriebssysteme, Hanser-Verlag, 1988
E. Glatz, Betriebssysteme Grundlagen, Konzepte, Systemprogrammierung, dpunkt-Verlag, 2005
R.A. Finkel, An Operating Systems Vade Mecum,Prentice Hall – bei uns als PDF-File vorhanden
H. Weber, Praktische Systemprogrammierung, Vieweg, Wiesbaden 1998
3
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 5
Inhalt der Vorlesung
Übersicht
Prozesse
Prozeßsynchronisation
Speicherverwaltung
Dateiverwaltung
Ein- und Ausgabeverwaltung
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 6
Rechner und Handys sind zu Beginn der Veranstaltung ausDozent und Hörer sind pünktlichEs redet nur eine PersonBei Fragen und Problemen sofort melden / fragenEs wird Eigeninitiative und selbständiges Arbeiten erwartetEine Vorlesung ist keine (wöchentliche) Fernsehserie!aktive Mitarbeit erwünscht und erforderlich
Spielregeln der LV Betriebssysteme I
4
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 7
Eine Vorlesung wird von den Hörern und vom Dozenten gestaltetNicht nur die Studierenden, sondern auch der Dozent will motiviert werdenUmfangreiche Vor- und Nachbereitung notwendigLernen nur kurz vor der Klausur ist tödlich!(kontinuierliches Lernen)Im Praktikum ist viel eigene Programmierarbeit erforderlich
Spielregeln der LV Betriebssysteme II
Übersicht
Kap. 1
5
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 9
Kap. 1 - Inhalt
Einleitung: Was ist ein BetriebssystemBetriebssystemschichtenSchnittstellen und virtuelle MaschinenGeschichteAufbau von BetriebssystemenRechnerarchitekturenWichtige Konzepte
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 10
Betriebssystem-Zoo
6
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 11
Einleitung I
Was ist ein Betriebssystem ?
* die Gesamtheit der Programmteile, die die Benutzung von Betriebsmitteln steuern und verwalten
* die Software (Programmteile), die für den Betrieb eines Rechners anwendungsunabhängig notwendig ist
* virtuelle Maschine, die dem Benutzer Abstraktionen der Hardware zur Verfügung stellt, die wesentlich einfacher zu benutzen sind
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 12
Einleitung II
Definition (Betriebssystem):
Ein Betriebssystem ist ein Programmsystem, das alle Betriebsmittel eines Rechensystems verwaltet und ihre Zuteilung kontrolliert und den Nutzern des Rechensystems eine virtuelle Maschine offeriert, die einfacher zu verstehen und zu programmieren ist als die unterlagerte Hardware.
7
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 13
benutzt
benutzt
benutzt
Benutzer
Benutzerprogramm
Maschinenhardware
Betriebssystem
Betriebssystemschichten I
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 14
Betriebssystemschichten II
User 1 User 2 User 3Compiler Editor ... Spiele
BetriebssystemdiensteHardware HW
Schichtenmodell Zwiebelschalenmodell
8
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 15
Betriebssystemschichten III
Systemsoftware versus Anwendersoftware
Das Betriebssystem ist der Teil der Software, die normalerweise im Kernmodus oder Supervisormodus ausgeführt wird
Die Anwendungsprogramme (Compiler, Editor, E-Mail-Programm etc.) werden im Benutzermodus ausgeführt
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 16
Schnittstellen & virt. Maschinen ISCSI-Operationen fur Festplatten:
FORMAT UNIT RECOVER DATA VERIFYINQUIRY RECOVER ID WRITEMODE SELECT RELEASE UNIT WRITE AND VERIFYMODE SENSE REQUEST SENSE WRITE BUFFERNO OPERATION RESERVE UNIT WRITE EXTENDEDPRIORITY RESERVE REZERO UNIT WRITE LONGREAD SEEK WRITE SAMEREAD BUFFER SEEK EXTENDED .....READ CAPACITY SEND DIAGNOSTICREAD DEFECT DATA SET LIMITSREAD EXTENDED START/STOP UNITREAD LONG TEST UNIT READYREASSIGN BLOCKSRECEIVE DIAGN. RESULTS
Wer will schon mit dieser Schnittstelle Informationenlangfristig speichern und zugreifen wollen ?!?
9
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 17
Schnittstellen & virt. Maschinen II
Eine SchnittstelleSchnittstelle besteht aus
Daten sowie Funktionen bzw. Methoden dafür (Objekte)
Protokolle für die Benutzung der Funktionen und Daten, mit denen das Objekt Dienstleistungen erbringt (Exportschnittstelle)
Die ImplementierungImplementierung benötigt dazuDaten, Funktionen und Protokolle für die Dienstleistungen, die sie zur Erfüllung benötigt (Importschnittstelle).
Virtuelle Maschinen
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 18
Schnittstellen & virt. Maschinen III
Schicht 3
Zeit
Schicht 2
Schicht 1
10
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 19
Schnittstellen & virt. Maschinen IV – Virt. CPU
Software-Hardware-Migration durch virtuelle CPU
Programm in Java- Code Programm in Java- CodeJava- Code / Maschinencode Microcode-
CPU- Hardware und CPU- Hardware
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 20
Schnittstellen & virtuelle Maschinen V - virtuelle logische, physikalische Geräte
Beispiel: Festplattenspeicher
virtuelles Gerät
= logisches Gerät +Verwaltungstreiber
logisches Gerät
= physikalisches Gerät + HW-Treiber.
Kontrolle Daten
Virtuelles Gerät
log. Gerät 1 log. Gerät 2
phys.Gerät 1
Treiber 1
phys.Gerät 2
Treiber 2
Treiber für log. Geräte
11
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 21
Geschichte I
Gliederung (parallel zu Rechnergenerationen):
1. Generation (1945-1955): Röhren und Steckkarten
2. Generation (1955-1965): Transistoren und Stapelverarbeitung
3. Generation (1965-1980): ICs und Mehrprogrammbetrieb
4. Generation (1980-1990): Personal Computer und Netzwerkbetriebssysteme
5. Heute
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 22
Geschichte II
1. Generation (1945-1955):USA: H. Aiken (Harvard), J. v. Neumann (Princeton) u.a.
Deutschland: Konrad Zuse
Eine Gruppe von Personen kümmert sich um Entwurf, Bau,
Programmierung, Operating und Wartung jedes einzelnen
Rechners.
Programmierung durch Verdrahtung von Steckkarten oder in absoluter Maschinensprache (Programmiersprachen unbekannt).
Nutzung fur numerische Berechnungen.
Ab Anfang der 50er Jahre Benutzung von Lochkarten.
Betriebssysteme unbekannt.
12
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 23
Geschichte III
2. Generation (1955-1965):Nach Einführung von Transistoren werden Rechner zuverlässig genug, um an Kunden verkauft zu werden.Unterscheidung zwischen Entwicklern, Herstellern, Operateuren, Programmierern und Wartungspersonal.Zunächst Ausfuhrung einzelner Jobs in Form von Lochkartenstapeln mit hohem Anteil manueller Arbeiten.Rationalisierung des Operating durch Einfuhrung des Stapelbetriebs (Batch-System):
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 24
Geschichte IV
-
Batch- System– bringt Kartenstapel zur 1401– kopiert Karten auf Band– bringt Eingabeband auf 7094, die Berechnung ausführt– bringt Ausgabeband zur 1401, die den Output ausdruckt
13
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 25
Geschichte V
Die Steuerkarten waren Vorläufer der heutigen Kommandosprachen, die Monitore Vorläufer der heutigen Betriebssysteme
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 26
Geschichte VI
3. Generation (1965-1980):ICs und Multiprogramming
Timesharing-Betrieb
Zugriff über Terminals
Multics
UNIX
14
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 27
Geschichte VII
4. Generation (1980-1990): Personal Computer als Individuen zugeordnete Werkzeuge (= Workstation).Netzwerke zur Kommunikation und Kooperation.getrieben durch LSI und VLSI- Entwicklung, preiswert, aber leistungsstark wie Minirechner bzw. Großrechner.hohe Graphikfähigkeit führt zu benutzerfreundlichen OberflächenMarktdominierende Betriebssysteme: MS- DOS und UNIX.Netzwerkbetriebssysteme erlauben Zugang zu anderen Rechnern, Dateitransfer, gemeinsame Benutzung von Informationen (z. B. TCP/ IP Netzwerk Utilities, Novell Netware, Network File System)
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 28
Geschichte VIII
5. Heute: Neue Anwendungen gekennzeichnet durch:
steigende Komplexität und neue geforderte Funktionalitäten:Verteiltheit (Client/ Server),Offenheit,Heterogenität,Skalierbarkeit"Cooperative Computing"Sicherheit (Security)RealzeitfähigkeitFehlertoleranz / RobustheitMultimediaWWW- Anbindung
15
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 29
Geschichte IX
Aktuelle Entwicklungsrichtungen:
Verteilte Betriebssysteme
Multiprozessing
Standardisierung von Schnittstellen
Mehrere BS-Schnittstellen auf einem Rechner
Konfigurierbarkeit
Realzeitfähigkeit
Administration grosser Netzwerke
Multimediaunterstützung
Erhöhung der Sicherheit
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 30
Geschichte X - Fragen
Gestern:Welche Betriebssysteme haben Sie benutzt?
...
Heute:Welche Betriebssysteme benutzen Sie ?
...
Welche Systeme sind nützlich für diese LV?
16
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 31
Aufbau I - Aufgabengebiete von BSn
Mainframe-Betriebssysteme
Server-Betriebssysteme
Multiprozessor-Betriebssysteme
PC Betriebssysteme
Echtzeit-Betriebssysteme
Betriebssysteme für eingebettete Systeme
Betriebssysteme für Chipkarten
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 32
Aufbau II - Betriebssystemgliederung
Benutzerschnittstelletextuelle und graphische Interaktion mit demBenutzer
Dienstprogramme, Werkzeugeoft benutzte Programme wie Editor, Linker, ...
ÜbersetzungsprogrammeInterpreter, Compiler, Translator, ..
OrganisationsprogrammeSpeicher-, Prozessor-, Geräte-, Netzverwaltung
17
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 33
Aufbau III - Benutzerschnittstelle
Ein Blick auf die Benutzerschnittstelle:
1. Benutzeroberfläche (Kommandointerpreter, Grafische Oberflächen) einschließlich der Schnittstellen zu Dienstprogrammen (Tools) wie etwas Editoren, Übersetzer (Compiler), Binder (Linker), ...
2. Bibliotheksschnittstellen (Standardbibliotheken und spezielle Bibliotheken), zur Programmierung benutzt.3. Betriebssystemdienst-Schnittstelle enthält Systemaufrufe (system calls), d.h. „erweiterte Befehle“ = Operationen zum Umgang mit den Abstraktionen, die der Kern offeriert. Wesentliche Kernabstraktionen: Prozesse (processes) = Programme in Ausführung, damit verbunden Mechanismen zur Prozess-Synchronisation und –KommunikationDateien (files) , damit verbunden Dateisysteme (file systems) und Verzeichnisse (directories) IO-Geräte (devices)
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 34
Aufbau IV - Typischer Betriebssystemaufbau
Systemaufruf
Maschinencode
BenutzeroberflächeUser Interface Management System
BetriebssystemkernOperating System Kernel
Hardware
Anwen-dung 1
Dienst-programm
Werk-zeug…
Benutzer 1 … Benutzer N
18
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 35
Aufruf mittels Traps(Falltüren)
Aufbau V - Der Betriebssystemkern
EingangAusgang
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 36
Aufbau VI - Systemaufrufe: Traps und Interrupts
Synchrone, indirekte Methodenaufrufe (Traps)...Move A,R1 Tabelle von Interruptvektoren
Trap 7Move R1, A...
Adresse PC der ISR 6Adr 0012
Status PS der ISR 6Adr 0013
Adresse PC der ISR 7Adr 0014
Status PS der ISR 7Adr 0015
Adresse PC der ISR 8Adr 0016
Status PS der ISR 8Adr 0017
Asynchrones HW-Interrupt- Signal 7
ISR = Interrupt Service Routines = TreiberPS = Processor Status Word (prio, mode,..)
19
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 37
Aufbau VII - Aufruf des Betriebssystemkerns
Interrupt{PC+1, PS=user mode}→stack return from interrupt
BS →PC, kernel mode →PS stack→{PC, PS=user mode}
Programm-instruktionen
Programm-instruktionen
Betriebssystem-kerndienste
Umschaltung vom Usermodus in Kernmodus und zurück !!
BS : Bootstrap
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 38
Aufbau VIII - UNIX-Betriebssystemkern
…
…user mode
kernel mode
Benutzer-Programm 1
System-Programm 1
System-Programm 2
Benutzer-Shell 1
Benutzer-Shell 2
Überprüfbare Schnittstelle und FunktionsverteilungSpeicher-
verwaltung Serielle Ein/Ausgabe Dateisystem Prozess-Dis-play TTY Drucker Maus Platte
Floppy Netz manage-ment
Hardware
MultiMulti--UserUser
MultiMulti--programmingprogramming
Implementierungsunabhängige Schnittstellen:PPortable OOperating SSystem IInterface based on UniXX
20
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 39
Aufbau IX - UNIX Systemsoftware I
Systemprogramme ar build & maintain archivescat concatenate files→standard outgcc compile C programchmod change protection modecp copy fileecho print argumentgrep file search including a patternkill send a signal to a process
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 40
Aufbau X - UNIX Systemsoftware II
ln link a filelp print a filels list files and directoriesmv move a filesh start a user shelltee copy standard in to standard out and
to a filewc word count
21
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 41
Aufbau XI – Monolitisches System
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 42
Aufbau XII – Geschichtetes System
Struktur des THE Betriebssystems
22
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 43
Aufbau XIII – Virtuelle Maschinen
Struktur von VM/370 mit CMS
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 44
Aufbau XIV – Client-Server Modell
23
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 45
Aufbau XV – Client-Server Modell in einem verteilten System
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 46
Aufbau XVI – Bsp.: MACH- Betriebssystemkern
Mach-Kern
Scheduler, Nachrichtenübermittlung, Basic I/O, Speicherobjekte
SpeicherManager
FileManager
TerminalI/O
Benutzer-programm
user modekernel mode
Hardware
MikrokernVorteile: minimaler Kern, alle Funktionen modularisiert austauschbar Nachteile: Kommunikationsdauer zwischen Managern
24
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 47
Aufbau XVII – Bsp.: Windows NT - Anforderungen
kompatibel zu vorhandenen Systemen Unix, DOS, ..
zuverlässig und robust
leichte Portierbarkeit
leicht veränderbar und anpassungsfähig
leistungsstark
Geht das überhaupt ?
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 48
Aufbau XVIII – Bsp.: Windows NT - Lösungen
Kompatibilitätpro emuliertes BS ein extra Subsystem (Server), von Kunden(Clients) durch Nachrichten (local procedure calls LPC) angefordert. Sie setzen auf Dienstleistungen der NT Executive (Syscalls) auf.
RobustheitTrennung der Programmablaufumgebungen(virt. Maschinen), kein direkter Hardwarezugrifffehlertolerantes Dateisystem, Netzdienste,
PortierbarkeitIn C geschriebene Module, auf Hardwaremodell aufsetzend
25
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 49
Aufbau XIX – Bsp.: Windows NT - Betriebssystemkern
user modekernel mode
SystemdiensteObject
ManagerProcess
ManagerLocal
Proc. CallsMemoryManager
SecurityMonitor
I/OSystem
KernelHardware Abstraction Layer HAL
Hardware
POSIXClient
Win/DOSClient
OS/2Client
Win32Subsys-
tem
POSIXSubsys-
tem
OS/2Subsys-
temLogon
SecuritySubsys-
tem
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 50
Rechnerarchitekturen I
Einprozessorsystem
Massen-speicher
ProgrammeDaten
Prozessor
BS-Kern
Nutzer 1Programm
... Nutzer nProgramm
Hauptspeicher
Bis max. N (~ 16) CPUs erweiterbar. Problem: Speicherzugriff (Systembus)
26
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 51
Rechnerarchitekturen II
Multiprozessorsystem
Verbindungsnetzwerk„Tanzsaal “
BS-Kern
Nutzer 1Programm
... Nutzer nProgramm
P1 P2 … Pn
Problem: Performance- Einbussen bei häufigen Speicherzugriffen
Arbeitsspeicher
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 52
Rechnerarchitekturen III
Mehrrechnersystem
Verbindungsnetzwerk„Vorzimmer“
BS-Kern
Nutzer 1Programm
P1 … Pn
BS-Kern
Nutzer nProgramm Arbeitsspeicher
27
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 53
Rechnerarchitektur IV
Rechnernetz
VerbindungsnetzwerkLAN, WAN
P1 … Pn
BS-Kern
Nutzer 1Programm
BS-Kern
Nutzer nProgramm
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 54
Wichtige Konzepte I
Prozesse
Dateien
Systemaufrufe
Shells
28
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 55
Konzepte II - Prozesse
Prozess- Baum
– A hat zwei Kind- Prozesse B and C erzeugt
– B hat drei Kind- Prozesse D, E, und F erzeugt
Prozeß : Programm in seiner Ausführung
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 56
Konzepte III - Dateissytem
29
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 57
Konzepte IV – Mounten von Dateisystemen
• Vor dem Mounten,Files auf Floppy sind nicht benutzbar
• Nach dem Mounten der Floppy auf b,Files auf Floppy sind Teil der Filehierarchie
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 58
Konzepte V - Systemaufrufe
Es gibt 11 Schritte beim Ausführen des Systemaufrufs
read (fd, buffer, nbytes)
30
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 59
Konzepte VII – Systemcalls für File Management
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 60
Konzepte VII – Directory Management
31
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 61
Konzepte IX - Verschiedene
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 62
Konzepte X – UNIX/Windows32 - Systemaufrufe
32
Betriebssysteme © H. Weber, FH WiesbadenÜbersicht Folie 63
Konzepte XI – Eine kleine Shell
while (TRUE) { /* repeat forever */type_prompt( ); /* display prompt */read_command (command, parameters) /* input from terminal */r = fork(); /* fork child process */ if (r > 0) {/* Parent code */
waitpid( -1, &status, 0); /* wait for child to exit */} else if (r == 0){/* Child code */
execve (command, parameters, 0); /* execute command */} else { /* fork error */ }
}