Post on 01-May-2020
Betriebssysteme –eine EinführungPeter PuschnerInstitut für Technische Informatikpeter@vmars.tuwien.ac.at
Peter Puschner, TU Wien
Betriebssystem – Was ist das?
2Vorlesung Betriebssysteme, Einführung; WS 19/20
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 3
• Wie entstanden die heutigen Betriebssysteme?
• Was ist ein Betriebssystem?• wichtige Grundkonzepte
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 4
Entstehung von Betriebssystemen
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 5
Entstehung moderner BSVon der technologischen Entwicklung und der
damit verbundenen Kostenentwicklung bestimmt– Gerätekosten– Kosten der menschlichen Arbeitskraft
von teurem Gerät …Maximierung der Auslastung
… zu teurer ArbeitskraftKomfort und Unterstützung für Benutzer
Weitere Faktoren: Fehlerbehebung, neue Anforderungen
Peter Puschner, TU Wien 6
Serial Processing (1950)• kein Betriebssystem• direkte Programmierung der Hardware• I/O: Schalter, Lampen; Kartenleser, Drucker
Vorlesung Betriebssysteme, Einführung; WS 19/20
Peter Puschner, TU Wien
Problem: FehleranfälligkeitLösung: Unterprogrammbibliotheken für I/O
Vorlesung Betriebssysteme, Einführung; WS 19/20 7
Serial Processing
Problem: Setup benötigt viel ZeitLösung 1: Spezialist für SetupLösung 2: Monitor
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 8
Job-Ausführung mit Monitor
Job vom Eingabegerät in dieUser Program Area lesen
Interpretierung der JCLKommandos
Ausführung desAnwendungsprogramms
Fortsetzung im Monitor
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 9
Monitor (1960)
Interrupt Processing
Device Drivers
Job Sequencing
JCL Interpreter
User ProgramArea
Job
Steuerkommandos (JCL)+
Programm
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 10
Monitor• 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ätPufferung und I/O Interrupts
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 11
Multiprogramming (1965)Problem: Kaum ein Programm nützt CPU und
periphäre Hardware gleichmäßig aus– CPU-intensive Programme (CPU bound)– I/O-intensive Programme (I/O bound)
Lösung: Multiprogramming bzw. Multitasking
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 12
Multiprogrammed Batch Systemsrun wait run wait
runA wait run
Await
runB wait run
Bwait
runA
runA
runB
runB
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 13
Multiprogrammed Batch SystemsDie “parallele” Ausführung von Programmen
macht neue Mechanismen notwendig, z.B.• Speicherverwaltung• Verwaltung der CPU und Ressourcen
(Scheduling)
Situation (ca. 1970): billiger gewordene Computer sollen Produktivität teurer Arbeitskräfte fördern
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 14
Time-Sharing SystemsProblem: Mehrere Benutzer teilen einen Computer;
Warten auf Fertigstellung von (Batch) JobsLö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 Vorlesung Betriebssysteme, Einführung; WS 19/20 15
Weitere Entwicklung …• billige HW pro Benutzer ein Rechner (PC)• Computer in Büro und Kommunikation
GUIsNetworking Security
• Wachstum des InternetMiddleware (Java API, …)
• Mobilität, Voice und Video, ...• Embedded Computing, Internet of Things
real-time …, energy management …• Multicores, …
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 16
Unix, Mac OS, Windows, ...• 1972 "... the number of UNIX installations has grown to 10 ..." (D. Ritchie, K. Thompson)
• 1981 MS-DOS auf IBM PC (4000 Zeilen Ass.)• 1983 PC XT : Festplatte, ein Directory, 64 Files• 1984 Apple Macintosh, Mac OS• 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
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 17
Was ist ein Betriebssystem?
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 18
Betriebssystem = …• Interface• Vituelle Maschine• Dienstleister• Ressourcenmanager
… passt sich den Anforderungen des Benutzers an
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 19
Benutzer-Computerinterface
AnwendungsprogrammeLibraries/Utilities
Betriebssystem
Ausführunghardware
BusAdr.übersetzung
I/O dev.,Network
MainMemory
Application programming interface (API)
Application binary interface (ABI)
Instruction Set Architecture(ISA)
Software
Hardware
User
Programmer
OS Designer
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 20
Betriebssystem als Dienstleister• Programmausführung• Programmerstellung• I/O, Filezugriff, Netzwerkkommunikation• Zugangskontrolle• Fehlererkennung und Behandlung• Logging (Überwachung, Tuning, Accounting)
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 21
BS als Ressourcenmanager• keine externe Kontrollinstanz• verwendet selbst Ressourcen• gibt Ressourcen vorübergehend ab• hebt sich durch die Funktionalität von anderen
Programmen ab– leitet den Prozessor bei der Verwendung der
Ressourcen und bei der Zeitzuteilung an Prozesse
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 22
einige Grundkonzepte
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 23
… Abstraktion … • “ungestörte” Programmabarbeitung
à Prozess• “unendlich” großer Speicher, Files
à Speicherverwaltung• “private” Maschine
à Zugriffsschutz, Datensicherheit
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 24
ProzessInformell:
– Programm bei der Ausführung
Anforderungen an Prozessmanagement:– Zeitzuteilung– Signalisieren von Ereignissen (z.B. I/O)– Vermeidung von Zugriffskonflikten– Synchronisation
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 25
Prozess
Prozess-liste
i
j
KontextDatenProg.
KontextDatenProg.
Prozess A
Prozess B
Arbeitsspeicher Register
Proz.Idx iPC
BasisLänge
...weitere
Register
bl
b
l
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 26
Speicherverwaltung• Virtual Memory
– Verwendung von Speicher 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
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 27
Memory Management Views
VirtuellerProzessor
VirtuellerSpeicher Files
RealerProzessor
Adress-übersetzg.
Haupt-speicher
Sekundär-speichervirt.
Adr.phys.Adr. Paging,
Swapping
Benutzersicht
Sicht des BS-Designers
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 28
Speicherverwaltung• Verwaltung der Speicherzuteilung an Prozesse
– Speicherzuteilung an Prozesse nach Bedarf– Verschieben von Speicherinhalten zwischen Haupt-
und Sekundärspeicher• Verwaltung der Zugriffsrechte
– Schutz und Isolation der Prozesse– Gemeinsamer Speicher (Shared Memory)
• Filesystem
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 29
Datenschutz und Sicherheit• Access Control
– Wer darf welche Ressourcen verwenden– erlaubte Operationen
• Information flow control• Authentizität - Quelle der Information• Integrität - keine Verfälschungen• Verfügbarkeit
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 30
Systemarchitektur• Schichten
– jede Schicht erfüllt eine bestimmte Funktionalität– höhere Schichten verwenden Services der
darunterliegenden Schichten• Modularer Aufbau
– überschaubare Teile mit definierte Funktionalität– klar definierte Interfaces: Module können ohne
Wechselwirkungen geändert werden
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 31
Ursprüngl. Unix-SchichtenmodellPr
ozes
sor-H
W
1 Schaltkreise Register, Gatter, Busse
2 Instruktionen Eval. Stack, skalareDaten, Felder
3 Prozeduren Prozeduren, Call Stack
4 Interrupts Interruptbehandlung
sing
le p
roce
ssor
5
6
7
primitive Prozesse
Sekundärspeicher
Virtueller Speicher
Prozesse, Ready list,Semaphore
Datenblöcke, -kanäle
Seiten, Segmente
Name Objekte
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 32
Urspr. Unix-Schichtenmodell (2)
8 Kommunikation Pipes
9 Filesystem Files
10 Devices Drucker, Bildschirm,Tastatur
11 Directories Directories
one
or m
ore
proc
esso
rs
12
13
User-Prozesse
Shell
Benutzerprozesse
Programmierumgebung
Name Objekte
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 33
Windows Architektur (Bsp.)
Hardware Abstraction Layer (HAL)Device Drivers Microkernel
Object Manager
I/OManager
FileSystems
WindowManagerGraphicsDev. Dr.
LPCFacility
MemoryManager
ProcessManager
SecurityRef.
Monitor
Plug’nPlay
PowerManager
Executive API
SystemProcesses Services Applications Environment
Subsystems
User Mode
Kernel Mode
Hardware Abstraction Layer (HAL)Device Drivers Microkernel
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 34
Rückblick• BS macht Computer “verwendbar”• stellt Abstraktionen zur Verfügung
– Bsp.: Prozess, Speicher, Kommunikation• bietet ein portables Interface• verwaltet Ressourcen
Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 19/20 35
Ausblick• Prozesse, Threads• Parallelität, Synchronisation (Mutual Exclusion)• Deadlock• Speicherverwaltung (Virtual Memory)• Scheduling• Ein- und Ausgabe• Dateiverwaltung• Security