Betriebssysteme VO - IAIK

Werbung
Betriebssysteme VO
Einleitung und Geschichte
BS1 WS 2007/2008
IAIK
1
Am Anfang war die Hardware…
CPU
IAIK
2
Hardware
Monitor
Bus
ƒ Komponenten eines einfachen PCs
IAIK
3
CPU
ƒ Holt Instruktion aus Speicher und führt ihn aus
ƒ Befehlssatz
ƒ
ƒ
ƒ
ƒ
Einfache Operationen (OR, AND, ADD)
Lade- und Speicheroperationen
Sprünge
Unterprogramme
ƒ Registersatz
ƒ
ƒ
ƒ
ƒ
Für Berechnungen
Program counter
Stack pointer
PSW (Program Status Word)
ƒ Kernel mode: voller Zugriff auf Speicher und Register,
alle Instruktionen
ƒ User mode: beschränkter Zugriff auf Speicher und
Register, Teilmenge der Instruktionen
IAIK
4
Speicher
ƒ Menge von Speicherstellen (Adressen)
die Daten halten können
ƒ RAM (random access memory)
IAIK
5
Speicher
ƒ Speicherhierarchie
ƒ Registers (Zugriffszeit 1 nsec)
ƒ Cache memory (Zugriffszeit 2 nsec)
ƒ Main memory - RAM (Zugriffszeit 10 nsec)
ƒ Hard disk (Zugriffszeit 10 msec)
IAIK
6
Speicher
ƒ ROM (Read only memory)
ƒ Speichert Werte permanent
ƒ oder semi-permanent (EPROM)
IAIK
7
Festplatten
ƒ Eine oder mehrere Scheiben die mit
konstanter Geschwindigkeit rotieren
(z.B. 5400 rpm, 7200 rpm)
ƒ konzentrische Spuren
ƒ Zusammengehörende Spuren
verschiedener Scheiben: Zylinder
ƒ Spur in Sektoren gegliedert
IAIK
8
Festplatten
IAIK
9
Festplatten
ƒ Mechanischer Arm mit Köpfen (einer
pro Oberfläche)
ƒ Bewegt sich über Scheiben und
liest/schreibt Sektoren
ƒ Zur richtigen Spur (1 to 10 msec)
ƒ Auf passenden Sektor warten (5 to 10
msec)
ƒ Lesen/Schreiben ausführen
IAIK
10
Busse
ƒ Datentransfer zwischen Komponenten
ƒ Verschiedene Funktionen, Geschwindigkeiten
etc
ƒ Cache bus
ƒ Memory bus
ƒ ISA (Industry Standard Architecture) bus
ƒ PCI (Peripheral Component Interconnect) bus
ƒ USB (Universal Serial Bus)
ƒ SCSI (Small Computer System Interface) bus
ƒ IDE (integrated drive electronics) bus
IAIK
11
Computer Hardware
ƒ Struktur eines größeren Pentium-Systems
IAIK
12
Es werde Licht
Strom
IAIK
13
Es werde Strom
ƒ CPU startet und ladet Instruktionen beginnen bei
Adresse 0xFFFF0
ƒ Befehl springt in den BIOS-code
ƒ BIOS (Basic Input/Output System) wird gestartet
Einfache tests (memory, keyboard, etc)
ƒ Identifiziert “boot device” (Hard disk, Floppy, CD-ROM)
ƒ Lädt Inhalt des ersten Sektors (Master Boot Record - MBR
– Zylinder 0, Kopf 0, Sektor 1) in den Speicher auf
Adresse 0x7C00 - 0x7DFF
ƒ
ƒ Sprung nach 0x7C00
ƒ MBR-code findet ein “aktives” Filesystem, lädt
entsprechenden Boot-Sektor in den Speicher und
springt hin
ƒ Boot-Sektor-Code lädt das
IAIK
14
IAIK
15
Position des Betriebssystems
IAIK
16
Position des Betriebssystems
IAIK
17
Was ist ein Betriebssystem?
ƒ Eine erweiterte Maschine
ƒ Versteckt die unangenehmen Details, die
ausgeführt werden müssen
ƒ Präsentiert seinem Benutzer eine virtuelle
Maschine, die einfacher verwendbar ist
ƒ Schichtenmodell
ƒ Gewünschte Funktionalität aufbauen auf
Funktionalität niedriger Ebene
IAIK
18
Was ist ein Betriebssystem
ƒ Programm wie jedes andere
ƒ Wird kompiliert, gelinkt und exekutiert
ƒ Sonderstatus
ƒ Nur eine Kopie
ƒ Über Service-Aufrufe aktiviert
IAIK
19
Was ist ein Betriebssystem?
ƒ Ein Ressourcen-Verwalter
ƒ Jedes Programm bekommt die Ressource
für eine Zeit
ƒ Jedes Programm bekommt etwas Platz auf
der Ressource
IAIK
20
Ressourcenverwaltung
ƒ Multiplexen
ƒ Illusion mehrerer logischer Ressourcen bei
nur einer physischen Ressource
ƒ Transformation
ƒ Erzeugen einer neuen logischen Ressource
aus einer bestehenden
ƒ Verwaltung
ƒ Wer darf was verwenden und wer
verwendet gerade was
IAIK
21
Multiplexen
ƒ Zeit-multiplexen
ƒ Time-sharing
ƒ Aufteilen einer seriell-wiederverwendbaren
Ressource (serially-reusable) unter
verschiedenen Benutzern
ƒ Z.B. CPU oder Drucker
ƒ Raum-multiplexen
ƒ Platz aufteilen
ƒ Teilen einer mehrfach verwendbaren
Ressource unter verschiedenen Benutzern
ƒ Z.B. Speicher, Platte
IAIK
22
Virtuell
ƒ Das Betriebssystem
als IllusionsErzeuger…
IAIK
23
Virtueller Computer
ƒ Ein Betriebssystem erzeugt mehrere
Prozesse (simulierte Prozessoren) aus
einer CPU
ƒ Zeit-multiplexen der CPU
ƒ Ein Betriebssystem erzeugt mehrere
Adressräume (Speicher für die
Exekution eines Prozesses) aus dem
vorhandenen Speicher
ƒ Raum-Multiplexen des Speichers
IAIK
24
Virtuelle Computer
ƒ Ein Betriebssystem implementiert ein
File- und I/O-System so, dass Prozesse
Platten und I/O-Geräte simultan
verwenden können
ƒ Raum-multiplexen der Platte
ƒ Zeit-multiplexen der I/O-Kanäle
ƒ Ein Betriebssystem erzeugt virtuelle
Computer aus einer physischen
Maschine!
IAIK
25
Mehrere virtuelle Computer
ƒ Mehrfache Prozessoren
ƒ Können mehrere Instruktionsflüsse zur
selben Zeit abarbeiten
ƒ Mehrfache Speicher
ƒ Information mehrerer Applikationen zur
selben Zeit speichern
ƒ Zugriff auf Filesystem als Abstraktion
der Festplatte
ƒ Zugriff auf andere I/O-Geräte auf
einheitliche Art
IAIK
26
Betriebssytemmodell
ƒ Betriebssystem bietet API zur Hardware
ƒ Entfernt privilegierte Befehle
ƒ Erzeugt neue Befehle (system calls)
ƒ Erzeuge neue Virtuelle Computer (Prozesse)
ƒ Kommuniziere mit anderen VCs
ƒ Speicheranforderungen
ƒ I/O
ƒ Zugriffe aufs Filesystem
IAIK
27
Virtueller Speicher
ƒ Speicher des VC ähnlich dem HardwareSpeicher (Bytefolge)
ƒ Betriebssystem teilt Speicher in Teile
und gibt jedem VC einen Teil
ƒ Betriebssystem erzeugt Illusion, dass
jeder VC Speicher hat der bei Adresse 0
anfängt
ƒ Betriebssystem erzeugt Illusion dass
der VC mehr Speicher hat als
physischer Speicher vorhanden ist
IAIK
28
Virtuelle Festplatte
ƒ Gespeichert wird
ƒ Physisch auf Sektoren
ƒ Virtuell auf Files
ƒ VC sieht ein Filesystem mit benannten
Files beliebiger Größe
IAIK
29
Virtuelle I/O
ƒ I/O im VC ganz anders als im
physischen Computer
ƒ Komplexe Kontroll- und Statusregister
ƒ Virtuelle I/O einfach und leicht verwendbar
IAIK
30
Zugriff aufs Betriebssystem
ƒ System-Calls
ƒ Parameter in bestimmten Stellen speichern
(Register, Speicher)
ƒ Software-Interrupt oder Trap aufrufen
ƒ Umschalten in Kernel-Mode
ƒ Betriebssystem übernimmt die Kontrolle
IAIK
31
Geschichte
IAIK
32
Geschichte
ƒ Erste Generation 1945 - 1955
ƒ Vakuum-Röhren, Schaltbretter
ƒ Eine Personengruppe entwarf, baute,
programmierte, betrieb und wartete jede
Maschine
ƒ Programmierung in Maschinensprache
ƒ Betriebssysteme unbekannt
IAIK
33
Vakuumröhren
IAIK
34
ENIAC
IAIK
35
Geschichte
ƒ Zweite Generation 1955 - 1965
ƒ Transistoren, Batch-Systeme
ƒ Trennung zwischen Entwurf, Bau,
Betrieb, Programmierung und Wartung
ƒ Spezielle Räume nötig
ƒ Sehr teuer
IAIK
36
BRLESC-I
IAIK
37
Lochkarten
IAIK
38
Geschichte
ƒ Struktur eines typischen Jobs
IAIK
39
Geschichte
ƒ Zyklus:
ƒ Denke
ƒ Loche
ƒ Abgabe
ƒ Trinke Bier
ƒ Hole Output
ƒ …
ƒ Nicht sehr effizient
ƒ Viel Zeit verloren
IAIK
40
Geschichte
ƒ frühes Batch-system
ƒ Bringe Karten zu 1401
ƒ Lies Karten auf Band
ƒ Band auf 7094 - rechnet
ƒ Band auf 1401 – druckt Ergebnis
IAIK
41
Geschichte
ƒ Dritte Generation 1965 – 1980
ƒ ICs and Multiprogramming
ƒ Programme, die wenig rechnen und viel I/O
machen:
CPU (sehr teuer) ist oft untätig (idle).
ƒ Speicher in viele Teile teilen
ƒ Ein Programm pro Partition
IAIK
42
Geschichte
ƒ Multiprogramming-System
ƒ Drei Jobs im Speicher
IAIK
43
Geschichte
ƒ Spooling
ƒ Jobs von Karte auf Platte
ƒ Von Platte laden wenn benötigt
ƒ Im Grunde immer noch Batch-Systeme
ƒ Timesharing
ƒ Erste Online-Terminals
ƒ Jeder Benutzer bekommt Zeitscheibe
ƒ Erste Unix-Systeme
IAIK
44
Geschichte - UNIX
1965
ƒ
Eine Gruppe Computerwissenschaftler der Bell Labs und
GE schlossen sich 1965 einem Projekt am MIT an das
Multics Großrechner Timesharing System genannt wurde
(Multiplexed Information and Computing Service)
1969
ƒ
Bell Labs zogen sich zurück
1970
ƒ
Ken Thompson und Dennis Ritchie entwickelten UNIX
(UNIX ist ein Wortspiel auf Multics) für eine PDP-7 und
portierten es auf eine PDP-11
1972
ƒ
IAIK
Thompson and Ritchie entwickelten die
Programmiersprache C um darin UNIX neu zu schreiben
45
Geschichte - UNIX
1976-77
ƒ Ken Thompson ging als Gastprofessor an die
Computer Science Abteilung der University of
California at Berkeley (UCB)
ƒ Ergebnis: Berkeley Software Distribution (BSD)
1984
ƒ AT&T entwickelt UNIX System V
ƒ Viele verschiedene Unix... SunOS/Solaris (Sun
Microsystems), Xenix(Microsoft), HP-UX (HewlettPackard), Ultrix (DEC), AIX (IBM),
ƒ Linux, FreeBSD
IAIK
46
Unix-Geschichte
Dennis Ritchie und Ken Thompson von den Bell Labs portieren
das Betriebssystem Unix auf einen PDP-11 Großrechner
IAIK
47
Geschichte
ƒ Vierte Generation 1980 – Heute
ƒ Personal-Computer
ƒ CP/M
ƒ DOS
ƒ Graphische Benutzerinterfaces
ƒ Windows
ƒ X Windows
IAIK
48
The Operating System Zoo
ƒ Mainframe operating systems
ƒ Data processing centers
ƒ Difference: I/O-capacity
ƒ Lots of disks with terabytes of memory
ƒ Many jobs at once, batch, transaction processing
and timesharing
ƒ Batch: routine job without user intervention
ƒ Transaction processing: large number of small
requests, e.g. check processing at banks or airline
reservations
ƒ Timesharing: many users run jobs at once
ƒ Example: IBM OS/390
IAIK
49
The Operating System Zoo
ƒ Server operating systems
ƒ Servers: very large personal computers,
ƒ
ƒ
ƒ
ƒ
IAIK
workstations or mainframes
Serve multiple users at once
Allow user to share hardware and software
resources
May run web servers or similar
Examples: Unix, Windows 2000 and Linux
50
The Operating System Zoo
ƒ Multiprocessor operating systems
ƒ Multiple CPU’s in a single system
ƒ Need special operating systems
ƒ Often variations of server operating systems
IAIK
51
The Operating System Zoo
ƒ Personal computer operating systems
ƒ Good interface for a single user
ƒ Used widely of all types of purposes as word
processing, spreadsheets, internet access but also
software development
ƒ Examples: Windows, Macintosh OS, Linux
IAIK
52
The Operating System Zoo
ƒ Real-time operating systems
ƒ Time as key parameter
ƒ E.g. industrial process control systems
ƒ Control machines in a factory
ƒ Actions must occur at a certain time
ƒ Examples: VxWorks, QNX
IAIK
53
The Operating System Zoo
ƒ Embedded operating systems
ƒ Embedded systems run on computers that control
devices that are not generally thought of as
computers:
ƒ
ƒ
ƒ
TV-sets
Mobile telephones
Dishwashers….
ƒ Some characteristics of real-time systems
ƒ Special size, memory and power-restrictions
ƒ Symbian OS, Windows CE or Palm-OS for the
high-end embedded systems
IAIK
54
The Operating System Zoo
ƒ Smart card operating systems
ƒ Severe processing power and memory constraints
ƒ Limited functionality
ƒ Often proprietary
ƒ Some are Java-oriented
ƒ
ƒ
ƒ
ƒ
IAIK
ROM holds interpreter for JVM
Java applets downloaded on card
Multiple applets possible – multiprogramming and
scheduling required
Also resource management and protection
55
Betriebssystemkonzepte
ƒ Alle Betriebssysteme haben
grundlegende Konzepte gemeinsam
ƒ Einige werden wir jetzt anreißen
IAIK
56
Prozesse
ƒ Programm in Ausführung
ƒ Mit einem Prozess verbunden:
ƒ Adressraum
ƒ Folge von Speicherstellen auf die der Prozess
zugreifen kann
ƒ Enthält ausführbares Programm, Daten und Stack
ƒ Register (PC, SP und andere)
IAIK
57
Prozess-Tabelle
ƒ Annahme: mehrere Programme / Prozesse
ƒ Einen Stoppen, anderen Starten
ƒ Erster Prozess muss wieder gestartet werden
können – in genau demselben Zustand den er
beim Stoppen hatte
ƒ Information muss daher gesichert werden
ƒ Oft in Prozesstabelle
ƒ Unterbrochener Prozess: Core-Image plus
Prozesstabelle
IAIK
58
Konzepte
ƒ Prozess-Baum
ƒ A erzeugt zwei Kind-Prozesse, B and C
ƒ B erzeugt drei Kind-Prozesse, D, E, and F
IAIK
59
Strukturen – Monolithisch
ƒ Einfache Struktur für monolithische
Systeme
ƒ Struktur: keine
IAIK
60
Monolithische Systeme
ƒ Ein klein wenig
Struktur
ƒ Services wie
gewohnt angefordert
ƒ Index in Tabelle,
diese enthält Zeiger
auf Service-Funktion
IAIK
61
Schicht-Systeme
ƒ Verallgemeinerung des vorherigen
Ansatzes
ƒ Hierarchische Schichten
ƒ Erstes System: THE
IAIK
62
Schicht-Systeme
ƒ Struktur des THE Betriebssystems
IAIK
63
Schicht-Systeme
ƒ MULTICS
ƒ Ring-System
ƒ Erzwungen durch Hardware
IAIK
64
Client-Server-Modell
ƒ Idee: soviel Code wie möglich aus dem
Kernel raus
ƒ Microkernel
ƒ Client-Prozesse, Server-Prozesse
IAIK
65
Virtualisierung
ƒ Spiegelt einem Betriebssystem vor, ein
eigenes System zu haben
ƒ VMWare: als Applikation innerhalb eines
Systems
ƒ XEN u.Ä.: als Schichte unter dem
Betriebssystem (Hypervisor)
IAIK
66
Virtuelle Maschinen
ƒ Oft verwendet
ƒ Alte MS-DOS-Programme auf einem
Pentium
ƒ Virtueller 8086 mode auf Pentium
ƒ Von Windows verwendet um MS-DOS
Programme zu exekutieren
ƒ Java Virtual Machines anderes Konzept
ƒ Code ist HW unabhängig, aber keine HW-
Simulation
IAIK
67
Virtuelle Maschinen
ƒ Struktur von VM/370 mit CMS
IAIK
68
Zugehörige Unterlagen
Herunterladen