zur VO Betriebssysteme Betriebssysteme – eine Einführung

Werbung
Willkommen zur
VO Betriebssysteme
Betriebssysteme –
eine Einführung
Peter Puschner
Peter Puschner
Institut f. Technische Informatik
Institut f. Technische Informatik
Peter Puschner
1
• Wie entstanden die heutigen
Betriebssysteme?
• wichtige Grundkonzepte
Vorlesung Betriebssysteme, Einführung; WS 06/07
2
Entstehung von
Betriebssystemen
• Was ist ein Betriebssystem?
Peter Puschner, TU Wien
Peter Puschner
3
Entstehung moderner BS
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
4
Serial Processing (1950)
Von der technologischen Entwicklung und der
damit verbundenen Kostenentwicklung bestimmt
– Hardwarekosten
– Kosten der menschlichen Arbeitskraft
• kein Betriebssystem
• direkte Programmierung der Hardware
• I/O: Schalter, Lampen; Kartenleser, Drucker
teure Hardware
Ö Maximierung der Hardwareauslastung
teure Arbeitskraft
Ö Komfort und Unterstützung für Benutzer
Weitere Faktoren: Fehlerbehebung, neue Anforderungen
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
5
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
6
1
Serial Processing
Job-Ausführung mit Monitor
Problem: Fehleranfälligkeit der I/O
Lösung: Unterprogrammbibliotheken für I/O
Job vom Eingabegerät in die
User Programm Area lesen
Interpretierung der JCL
Kommandos
Problem: Setup benötigt viel Zeit
Lösung 1: Spezialist für Setup
Lösung 2: Monitor
Ausführung des
Anwendungsprogramms
Fortsetzung im Monitor
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
7
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
Monitor (1960)
Monitor
•
•
•
•
Interrupt Processing
Device Drivers
Job Sequencing
JCL Interpreter
Job
Steuerkommandos (JCL)
+
Programm
User Program
Area
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
Speicherschutz
Timer
Privilegierte Instruktionen
Interrupts
Problem: entweder CPU oder I/O-System
aktiv, der Rest der Maschine ist untätig
Lösung: parallele CPU und I/O Aktivität
Ö Pufferung und I/O Interrupts
9
Multiprogramming (1965)
Peter Puschner, TU Wien
– CPU-intensive Programme (CPU bound)
– I/O-intensive Programme (I/O bound)
Lösung: Multiprogramming bzw. Multitasking
run
wait
run
wait
run
A
wait
run
A
wait
run
B
wait
run
B
wait
run run
A B
Vorlesung Betriebssysteme, Einführung; WS 06/07
Vorlesung Betriebssysteme, Einführung; WS 06/07
10
Multiprogrammed Batch Systems
Problem: Kaum ein Programm nützt CPU und
Hardware gleichmäßig aus
Peter Puschner, TU Wien
8
11
Peter Puschner, TU Wien
run run
A B
Vorlesung Betriebssysteme, Einführung; WS 06/07
12
2
Multiprogrammed Batch Systems
Die “parallele” Ausführung von Programmen macht
neue Mechanismen notwendig, z.B.
• Speicherverwaltung
• Verwaltung der CPU und Ressourcen
(Scheduling)
Situation (ca. 1970): nun billigere Computer sollen
Produktivität teurer Arbeitskräfte fördern
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
13
Time-Sharing Systems
Problem: Mehrere Benutzer teilen einen Computer;
Warten auf Fertigstellung von Batch Jobs
Lösung: Preemptive Scheduling, Prioritäten
Problem: Daten und Programme sollen für
Benutzer leicht verfügbar sein
Lösung: Filesystem am Rechner
Peter Puschner, TU Wien
Weitere Entwicklung …
Vorlesung Betriebssysteme, Einführung; WS 06/07
14
Unix, Windows, Linux
• billige HW Ö pro Benutzer ein Rechner (PC)
• Computer vermehrt für Verwaltung und
Austausch von Daten
Ö Networking
Ö Security
• Wachstum des Internet
Ö Middleware (Java API)
• Mobilität, Real-Time Voice und Video, ...
• Embedded Computing, Real-Time Comp.,
Pervasive Computing, …
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
• 1970 Unix auf PDP-7
C-Implementierung
• 1981 MS-DOS auf IBM PC (4000 Zeilen Ass.)
• 1983 PC XT : Festplatte, ein Directory, 64 Files
• 1984 Apple Macintosh
• 1987 MINIX
• 1990 MS Windows 3.0, auf DOS aufsetzend
• 1991 erste Linux Version
• 1993 Windows NT (10+ Mio. Code-Zeilen)
multi-tasking, single-/multi-user System
15
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
16
Betriebssystem als Interface
• Interface zwischen Benutzer und Hardware
–
–
–
–
Was ist ein
Betriebssystem?
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
17
stellt Programmierinterface zur Verfügung
virtuelle Maschine
Ressourcenmanager
passt sich den Anforderungen des Benutzers an
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
18
3
Position des Betriebssystems
Endbenutzer
Betriebssystem als Dienstleister
Programmierer
Anwendungsprogramme
Betriebssystemdesigner
Utilities
•
•
•
•
•
•
Programmerstellung
Programmausführung
I/O, Filezugriff, Netzwerkkommunikation
Zugangskontrolle
Fehlererkennung und Behandlung
Logging (Accounting, Überwachung)
Betriebssystem
Computerhardware
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
19
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
20
BS als Ressourcenmanager
•
•
•
•
keine externe Kontrollinstanz
verwendet selbst Ressourcen
gibt Ressourcen vorübergehend ab
hebt sich durch die Funktionalität von anderen
Programmen ab
einige Grundkonzepte
– leitet den Prozessor bei der Verwendung der
Ressourcen und bei der Zeitzuteilung an Prozesse
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
21
Peter Puschner, TU Wien
… Abstraktion …
Vorlesung Betriebssysteme, Einführung; WS 06/07
22
Einige Konzepte
• Abstraktion
•
•
•
•
•
– Prozesse
– “unendlich” großer Speicher, Files
– Synchronisation und Kommunikation
• Standard Interface - Portabilität
• Verwaltet die Ressourcen
Prozesse
Speicherverwaltung
Zugriffsschutz
Scheduling und Ressourcenverwaltung
Systemarchitektur
– CPU, Arbeitsspeicher, Platte, Netzwerkzugriff
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
23
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
24
4
Prozess
Prozess
Arbeitsspeicher
Informell:
– Programm bei der Ausführung
– “Animated Spirit of a Program”
i
Prozessliste
Basis
Länge
Kontext
Signalisieren von Ereignissen
Mutual Exclusion
Synchronisation
Deadlockvermeidung bzw. -behandlung
Daten
Prozess A
weitere
Register
Prog.
b
Prozess B l
i
PC
j
Anforderungen an Prozessmanagement:
–
–
–
–
Register
Proz.Idx
b
l
...
Kontext
Daten
Prog.
Vorlesung Betriebssysteme, Einführung; WS 06/07
Peter Puschner, TU Wien
25
Vorlesung Betriebssysteme, Einführung; WS 06/07
Peter Puschner, TU Wien
Speicherverwaltung
26
Speicherverwaltung
• Virtual Memory
• Verwaltung der Speicherzuteilung an Prozesse
– logische Speicheradressierung ohne
Berücksichtigung der Größe des physikalischen
Speichers
– nur Teile laufender Programme werden im
physikalischen Speicher gehalten
– der Rest befindet sich auf dem Sekundärspeicher:
adressierbarer Speicher > Arbeitsspeicher
– Speicherzuteilung an Prozesse nach Bedarf
– Auslagern von Speicherinhalten auf
Sekundärspeicher
• Verwaltung der Zugriffsrechte
– Schutz und Isolation der Prozesse
– Gemeinsamer Speicher (Shared Memory)
• Filesystem
Vorlesung Betriebssysteme, Einführung; WS 06/07
Peter Puschner, TU Wien
27
Peter Puschner, TU Wien
Memory Management Views
Vorlesung Betriebssysteme, Einführung; WS 06/07
28
Datenschutz und Sicherheit
• Access Control
Virtueller
Prozessor
Virtueller
Speicher
– Wer darf welche Ressourcen verwenden
– erlaubte Operationen
Files
•
•
•
•
Benutzersicht
Realer
AdressHauptProzessor virt. übersetzg. phys. speicher
Adr.
Adr.
Sekundärspeicher
Information flow control
Authentizität - Quelle der Information
Integrität - keine Verfälschungen
Verfügbarkeit
Swapping
Sicht des BS-Designers
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
29
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
30
5
Scheduling, Ressourcenverwaltung
•
•
•
•
Fairness
Behandlung verschiedener Anforderungen
Effizienz
Lifeness
Systemarchitektur
• Modularer Aufbau - überschaubare Teile
• klar definierte Interfaces: Module können ohne
Wechselwirkungen geändert werden
• Schichten
– jede Schicht erfüllt eine bestimmte Funktionalität
– höhere Schichten verwenden Services der
darunterliegenden Schichten
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
31
Ursprüngl. Unix-Schichtenmodell
Objekte
Name
7 Virtueller Speicher
Seiten, Segmente
6 Sekundärspeicher
Datenblöcke, -kanäle
5 primitive Prozesse
Prozesse, Ready list,
Semaphore
4 Interrupts
3 Prozeduren
Interruptbehandlung
Prozeduren, Call Stack
2 Instruktionen
Eval. Stack, skalare
Daten, Felder
1 Schaltkreise
Register, Gatter, Busse
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
33
Programmierumgebung
12 User-Prozesse
Benutzerprozesse
11 Directories
Directories
10 Devices
Drucker, Bildschirm,
Tastatur
9 Filesystem
Files
8 Kommunikation
Pipes
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
a.out
elf
Services
Services
Applications
Applications
Environment
Environment
Subsystems
Subsystems
exec
switch
File mappings
Device
mappings
Kernel Mode
Executive
Executive API
API
Disk driver
Object
Object Manager
Manager
35
Common
Facilities
Peter Puschner, TU Wien
RFS
Scheduler Time-sharing
framework processes
Block device
switch
Tape
driver
Device
Microkernel
Microkernel
Device Drivers
Drivers
Hardware
Hardware Abstraction
Abstraction Layer
Layer (HAL)
(HAL)
NFS
vnode/vfs FFS
interface s5fs
Virtual memory
framework
Anonymous
mappings
I/O
Window
I/O
Security
Security Plug’n Power Window
Memory Process
Process Ref.
LPC Memory
Plug’n Power Manager
Manager
Manager LPC
Manager
Ref.
Facility
Manager Manager
Manager Monitor Play
Manager Graphics
Facility Manager
Play Manager
File
File
Graphics
Monitor
Systems
Dev.
Systems
Dev.Dr.
Dr.
Vorlesung Betriebssysteme, Einführung; WS 06/07
34
Unix Architektur (SVR4)
User Mode
Peter Puschner, TU Wien
Objekte
13 Shell
Windows Architektur (Bsp.)
System
System
Processes
Processes
32
Urspr. Unix-Schichtenmodell (2)
one or more processors
Prozessor-HW single processor
Name
Vorlesung Betriebssysteme, Einführung; WS 06/07
Peter Puschner, TU Wien
System processes
Network
driver
Streams
tty driver
Vorlesung Betriebssysteme, Einführung; WS 06/07
36
6
Rückblick
Ausblick
• BS macht Computer “verwendbar”
• stellt Abstraktionen zur Verfügung
•
•
•
•
•
•
•
•
– Prozess, Speicher, Kommunikation, Sync.
• bietet ein portables Programmierinterface
• verwaltet Ressourcen
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
37
Prozesse, Threads
Parallelität, Synchronisation (Mutual Exclusion)
Deadlock
Speicherverwaltung (Virtual Memory)
Scheduling
Ein- und Ausgabe
Dateiverwaltung
Security
Peter Puschner, TU Wien
Vorlesung Betriebssysteme, Einführung; WS 06/07
38
7
Herunterladen