Thread - Hochschule Fulda

Werbung
Betriebssysteme
Folie 1 - 1
1 Übersicht
•
die meisten Rechner haben ein Betriebssystem (operating system)
(Sehr kleine Systeme im Bereich der „Embedded Systems“ und einige Spezialrechner haben
kein Betriebssystem. In diesen Fällen wird die Hardware direkt von den Anwendungsprogrammen verwaltet. Die ersten Rechner hatten ebenfalls kein Betriebssystem.)
•
welche Aufgaben hat ein Betriebssystem?
−
es verwaltet die Hardware des Rechners
−
es verwaltet die Programme, die ausgeführt werden
−
es steuert und protokolliert den Betriebsablauf
−
grundlegende Aufgaben
♦ Ablaufsteuerung für alle Prozesse
⋅
Festlegung der Priorität
⋅
Zuteilung und Entzug von Betriebsmitteln, z. B.
Prozessor, Hauptspeicher, usw.
⋅
Bereitstellung und Steuerung der Kommunikationskanäle zwischen Prozessen
⋅
Schutz der Prozesse vor anderen Prozessen
♦ Hauptspeicherverwaltung
♦ Dateiverwaltung
♦ Verwaltung der Ein-/Ausgabegeräte
♦ Unterstützung beim Zugriff auf Netzwerke
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 2
♦ Unterbrechungsbehandlung
•
⋅
Ablauf einer Zeiteinheit
⋅
Ende einer Ein-/Ausgabeoperation
⋅
Anforderung eines Systemdienstes durch ein Programm
⋅
Division durch Null
⋅
usw.
Vorteile eines Betriebssystems
−
viele Programme können (quasi) gleichzeitig ausgeführt werden
−
Programmerstellung wird vereinfacht, da
♦ es den Entwicklern eine Schnittstelle zur Benutzung der
Hardware zur Verfügung stellt, sodass die Hardware nicht
mehr direkt programmiert werden muss
♦ es die Kommunikation zwischen Programmen vereinfacht
−
•
Aufträge können im Hintergrund abgewickelt werden
Betriebssystemkern (operating system kernel) ist die unterste Ebene
und wird beim Starten des Rechners geladen und ausgeführt
(Betriebssystemkern läuft immer parallel zu allen anderen Programmen)
•
jedes Betriebssystem wird mit Systemprogrammen ausgeliefert
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 1 - 3
Systemprogramme unterstützen die
−
Kommunikation mit dem System (Kommandointerpreter, Shell)
−
Benutzerverwaltung
−
Authentifizierung der Benutzer
−
Erfassung und Abrechnung von Leistungen (accounting)
−
Sicherung und Wiederherstellung von Daten
−
und vieles mehr
(z. B. Dateimanipulationen: erzeugen, löschen, umbenennen, Rechte oder Eigentümer
ändern, ...)
•
die meisten Betriebssysteme werden heute mit einer grafischen
Benutzeroberfläche (Graphical User Interface) ausgeliefert
(Die GUI ist im Allgemeinen kein Bestandteil des Betriebssystems, sondern ein separates
Programm (GNOME-Desktop, KDE-Desktop, Common Desktop Environment, usw.))
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 1 - 4
wo befindet sich das Betriebssystem auf einem Rechner?
/bin/ls
/bin/cat
library
user
programs
open (...), close (...),
read (...), ...
system call entry
scheduling
disk
disk
controller
filesystem
management
terminal
serial line
controller
memory
management
device
drivers
null
memory
operating
system
kernel
CPU
hardware
terminal
disk
•
Betriebssystem muss für alle Hardware-Komponenten sogenannte
Treiberprogramme zur Verfügung stellen
•
alle Dienste können über Systemfunktionen benutzt werden
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 1 - 5
wie sieht die Hardware eines Arbeitsplatzrechners (PCs) aus?
CPU 1
CPU n
core 1
processing
units
core n
processing
units
...
1st level
cache
core n
processing
units
core 1
processing
units
...
1st level
cache
...
1st level
cache
1st level
cache
2nd level cache
2nd level cache
3rd level cache
3rd level cache
Front Side Bus / System Bus
Main Memory
Graphics
Controller
GigabitEthernet
PCI-X
Slots
PCI-X
...
Hub
System Management Bus
IEEE1394 Firewire
Channel A
Memory
Controller
RDRAM,
DDR-SDRAM,
SDRAM, ...
Channel B
Memory
Controller
RDRAM,
DDR-SDRAM,
SDRAM, ...
North Bridge
(Memory
Controller Hub)
WLAN
Bluetooth
South Bridge
(I/O Controller
Hub)
10/100 Mbit/s
Ethernet
USB
AC'97 link
Audio Codec
Modem Codec
SCSI
Controller
PCI-Slots
...
1-4 IDE drives
Serial ATA
Low Pin Count
Interface (LPC)
Realtime Clock,
Interrupt Controller,
Power Management,
DMA Controller,
Timer, ...
Firmware
Hub
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Super I/O
Controller
Serial Ports
Parallel Ports
Infrared Port
Game Port
Midi Port
...
Betriebssysteme
Folie 1 - 6
•
von besonderer Bedeutung ist die Architektur der CPU (Anzahl und
Art der Register, Maschinensprache), da sie einen direkten Einfluss
auf die Effizienz und Struktur des Betriebssystems hat
•
Prozessoren haben u. U. mehrere „Registersätze“ (hyperthreading)
oder mehrere „Kerne“ (multi-core), sodass verschiedene „Threads“
gleichzeitig ausgeführt werden können
•
prinzipieller Aufbau eines einfachen Prozessors
Speicher
Befehlsregister
Operationsteil Adressteil
Decodierer
Ein/AusgabeSteuerung
Mikroprogrammeinheit
Steuerwerk
(Leitwerk)
Befehlszählregister
+1
Adressberechnung
Speicher
Rechenwerk
Speicher
Speicher
Kontroll- und
Steuerschaltung
Registerblock
arithmetischlogische
Einheit
(ALU)
•
Befehle der Maschinensprache werden über ein Mikroprogramm
realisiert, das im Allgemeinen fest verdrahtet ist
•
Rechenwerk erhält seine Anweisungen (welche Operanden wie
verknüpft werden sollen) vom Steuerwerk
•
Prozessoren haben u. U. mehrere Verarbeitungseinheiten für
Gleitkommazahlen und ganze Zahlen
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 1 - 7
heutige Prozessortypen auf einem Chip (Chip Multiprocessor, CMP)
conventional microprocessor
microprocessor with hyperthreading
CPU core
CPU core
Execution Unit
SIMD FP FPU Int Unit ...
Execution Unit
SIMD FP FPU Int Unit ...
registers
registers
registers
L1 i-cache
L1 i-cache
L1 d-cache
registers
registers
L1 d-cache
L2 cache
L2 cache
main memory
main memory
multi-core microprocessor with shared L2 cache
CPU core1
CPU core n
Execution Unit
SIMD FP FPU Int Unit ...
Execution Unit
SIMD FP FPU Int Unit ...
registers
registers
L1 i-cache
registers
registers
registers
registers
...
L1 d-cache
L1 i-cache
registers
registers
L1 d-cache
L2 cache
main memory
multi-core microprocessor with separate L2 caches
CPU core1
CPU core n
Execution Unit
SIMD FP FPU Int Unit ...
Execution Unit
SIMD FP FPU Int Unit ...
registers
registers
L1 i-cache
registers
registers
...
L1 d-cache
registers
registers
L1 i-cache
L2 cache
registers
registers
L1 d-cache
L2 cache
L3 cache
main memory
(Das Betriebssystem muss die entsprechende Architektur kennen und unterstützen, wenn die Anwendungsprogramme von der verbesserten Architektur profitieren sollen. Eine CPU mit n Registersätzen (HT-Technologie,
hyperthreading) kann wie ein System mit n virtuellen CPUs behandelt werden. Jeder logische Prozessor hat
auch seine eigene Unterbrechungssteuerung usw. Da sich alle logischen Prozessoren den L1-Cache, den Bus,
die Ausführungseinheit (execution unit), Sprungvorhersage (branch prediction) usw. teilen, ist ein Prozessor
mit HT-Technologie nicht so leistungsfähig wie ein Prozessor mit mehreren Kernen. Die obigen Chip-Prozessoren können dann noch zu echten Mehrprozessorsystemen zusammengeschaltet werden.)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 8
1.1 Betriebssystemarchitekturen
•
traditionelle Betriebssysteme besitzen einen relativ großen monolithischen Kern (UNIX, VMS, ...)
•
neuere Betriebssysteme benutzen einen
−
dynamischen Betriebssystemkern (Solaris, Linux, ...)
−
sehr kleinen Mikrokern (microkernel architecture), der nur eine
rudimentäre Funktionalität besitzt (L4, Fiasco, QNX, ...)
1.1.1 Monolithischer Betriebssystemkern (Makrokern)
•
alle Funktionen werden im selben Adressraum (kernel space)
erbracht
⇒ sehr hohe Systemleistung
•
Kern enthält alle traditionellen Funktionen (Prozessverwaltung,
Hauptspeicherverwaltung, Dateiverwaltung, Netzwerkdienste, ...)
⇒ u. U. sehr unübersichtlich, da jede Funktion alle Datenstrukturen
im Kern ändern und jede andere Funktion aufrufen darf
(Die Pflege des Betriebssystems ist im Allgemeinen sehr schwer, da die Abhängigkeiten der Komponenten leicht dazu führen können, dass bei der Weiterentwicklung des
Systems ein kleiner Fehler das gesamte Betriebssystem zum „Absturz“ bringt.)
•
Kern enthält die Treiber für alle Geräte, die eventuell an dem
Rechner betrieben werden sollen
⇒ Verschwendung von Hauptspeicher
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 9
1.1.2 Dynamischer Betriebssystemkern (Modulkonzept)
•
im Prinzip ein besser strukturierter monolithischer Kern
−
der „eigentliche“ Kern, der sich immer im Hauptspeicher befindet, enthält nur die Funktionen, die häufig benutzt werden
(u. a. muss dieser Teil das Dateisystem „kennen“, in dem die Module gespeichert sind,
sodass er sie bei Bedarf nachladen kann)
−
spezielle Gerätetreiber, verschiedene Dateisysteme, Netzwerkdienste usw. sind als Module konzipiert und werden bei Bedarf
hinzugeladen
•
nicht mehr benötigte Module werden nach einiger Zeit aus dem
Hauptspeicher entfernt
•
Beispiel (Module unter Linux)
/lib/modules/2.0.21 # dir
drwxr-xr-x
2 root
root
drwxr-xr-x
2 root
root
-rw-r--r-1 root
root
...
/lib/modules/2.0.21 # dir block
-rw-r--r-1 root
root
/lib/modules/2.0.21 # dir misc
-rw-r--r-1 root
root
-rw-r--r-1 root
root
-rw-r--r-1 root
root
•
1024 Oct
1024 Oct
611 Feb
64072 Oct
128915 Oct
20529 Oct
8576 Oct
3 15:57 block/
3 15:57 misc/
7 10:42 modules.dep
3 15:35 floppy.o
3 15:37 ftape.o
3 15:45 ipx.o
3 15:35 lp.o
Beispiel (Laden und automatisches Entfernen der Module)
/ # mount -t msdos /dev/fd0 /mnt
/ # lsmod
Module:
#pages:
floppy
11
/ # umount /mnt
/ # lsmod
Module:
#pages:
floppy
11
/ # tar vft /dev/ftape
...
/ # lsmod
Module:
#pages:
ftape
43
Used by:
1 (autoclean)
Used by:
0 (autoclean)
Used by:
0 (autoclean)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 10
1.1.3 Mikrokern-Betriebssystem
•
nur die Basis-Funktionen werden im Adressraum des Betriebssystemkerns (kernel space) erbracht
•
alle anderen Funktionen werden im Benutzer-Adressraum (user
space) erbracht
⇒ ggf. Leistungseinbußen, da häufiger Wechsel zwischen „kernel
mode“ und „user mode“
⇒ ggf. Leistungseinbußen, weil eine Nachrichtenübertragung
anstelle von Prozeduraufrufen benutzt wird
⇒ Betriebssystemcode kann u. U. modular entwickelt werden
⇒ Code kann im Benutzer-Adressraum einfacher getestet werden
(„normale“ Entwicklungsumgebung; ein Fehler bringt nicht das ganze Betriebssystem
zum „Absturz“)
•
•
Basis-Funktionen im Mikrokern
−
Basis-Mechanismen zur Prozesserzeugung und zum Scheduling
−
grundlegende Mechanismen zur Nachrichtenübermittlung
(message passing)
−
Basis-Mechanismus zur Speicherverwaltung
−
grundlegende Mechanismen zur Ein-/Ausgabe
eine Aufgabe wird nur dann im Mikrokern erledigt, wenn die Funktionalität des Systems nicht gewährleistet ist, wenn die Aufgabe
außerhalb des Mikrokerns erbracht wird
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
•
Folie 1 - 11
traditionelle Funktionen des Betriebssystemkerns (Prozessverwaltung, Dateiverwaltung, Netzwerkdienste, ...) werden im normalen
Adressraum (user space) bereitgestellt
−
Funktionalität kann verteilt werden (verteilte Betriebssysteme
auf Basis einer Client/Server-Architektur)
−
einfachere Pflege des Systems
−
verschiedene Betriebssysteme können gleichzeitig auf einem
Rechner einfach emuliert werden
Makrokern-Architektur ↔ Mikrokern-Architektur
Anwendung
user
mode
Systemdienste
kernel
mode
Dateisystem
Speicher- und E/AGeräteverwaltung
Anwendung
NetzwerkServer
SpeicherServer
DateiServer
ProzessServer
...Server
user
mode
kernel
mode
Prozessorund Prozesssteuerung
Mikrokern
Hardware
Dienst- / Funktionsaufruf
Hardware
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Antwort / Ergebnis
Betriebssysteme
Folie 1 - 12
1.1.4 Hybrider Betriebssystemkern
•
Kompromiss zwischen monolithischem Kern und Mikrokern
•
nutzt möglichst viele Vorteile beider Architekturen
•
Beispiele: Windows NT/2000/XP/..., Plan 9 (verteiltes Betriebssystem)
1.1.5 Virtuelle Maschinen
•
„virtuelle Maschine“ ist eine spezielle Software, die zwischen dem
Rechner und dem sogenannten Gast-Betriebssystem angesiedelt ist
und dem Gast-Betriebssystem eine virtuelle Ablaufumgebung zur
Verfügung stellt
•
IBM VM/CP-67 war eines der ersten Betriebssysteme, das virtuelle
Maschinen zur Verfügung stellte (1966)
•
verschiedene Arten virtueller Maschinen
−
CPU-Emulatoren
−
Betriebssystem-Emulatoren
−
virtuelle Ablaufumgebung für verschiedene Betriebssysteme
−
virtuelle Ablaufumgebungen innerhalb eines Betriebssystems
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 13
•
virtuelle Maschinen können seit einigen Jahren auch auf Arbeitsplatzrechnern eingesetzt werden, da die Hardware dafür jetzt ausreichend leistungsfähig ist
•
Realisierungsmöglichkeiten
app 1
native
applications
...
app 1
...
guest
operating
system 1
... guest
operating
system n
virtual
hardware
... virtual
hardware
virtual machine monitor
host operating system
hardware
app 1
...
app 1
...
guest
operating
system 1
... guest
operating
system n
virtual
hardware
... virtual
hardware
virtual machine monitor
hardware
1) Verwaltungs-Software der virtuellen Maschinen (Virtual
Machine Monitor, VMM, Hypervisor) kann auf einem
sogenannten Wirt-Betriebssystem installiert werden
(wird im Allgemeinen als „hosted architecture“ bezeichnet)
−
Rechner kann „normal“ benutzt werden, da die Anwendungsprogramme des Wirt-Betriebssystems direkt auf dem
Betriebssystem ausgeführt werden können
−
die virtuellen Maschinen der verschiedenen Gast-Betriebssysteme können bei Bedarf gestartet und gestoppt werden
(sie laufen als „normale“ Anwendungsprogramme auf dem Wirt-Betriebssystem)
−
VMM kann auf jeder Hardware installiert werden, auf der
das Wirt-Betriebssystem läuft
−
ggf. Leistungsminderung, da sich zwischen Anwendungsprogramm und Hardware zwei Betriebssysteme und der
VMM befinden
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 14
2) Verwaltungs-Software der virtuellen Maschinen wird direkt auf
der Hardware des Rechners installiert
(wird im Allgemeinen als „stand-alone architecture“, „native architecture“ oder „baremetall architecture“ bezeichnet)
−
im Allgemeinen leistungsfähiger, da eine Verwaltungsebene
fehlt
−
benötigt im Allgemeinen „spezielle“ Hardware
(es werden z. B. nicht alle für einen PC verfügbaren Netzwerk- oder Grafikkarten
unterstützt)
3) vollständige Virtualisierung
−
die Hardware wird simuliert und das Gast-Betriebssystem
läuft auf einem „Interpreter“
(ist z. B. immer erforderlich bei CPU-Emulatoren)
−
transparent für Gast-Betriebssystem
(das Gast-Betriebssystem weiß nichts vom VMM und muss auch nicht modifiziert werden)
−
im Allgemeinen relativ langsam
4) Paravirtualisierung
−
stellt dem Gast-Betriebssystem eine Schnittstelle zur Verfügung (hypervisor calls), über die es quasi direkt auf die
Hardware zugreifen kann
−
Gast-Betriebssystem muss modifiziert werden
−
im Allgemeinen sehr schnell
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
•
Folie 1 - 15
virtuelle Maschine eines Gast-Betriebssystems inklusiv aller Anwendungsprogramme ist nur eine große Datei, solange die virtuelle
Maschine nicht gestartet wurde
−
Datei kann einfach auf neuen Rechner kopiert werden
−
Installation und Konfiguration von Betriebssystem und Programmen entfällt, wenn der neue Rechner eine entsprechende
virtuelle Umgebung bereit stellt
Einsatzgebiete
−
Isolierung
Application 1 ...
Application n
Operating System
Hardware
Application 1
Operating
System 1
Application n
...
Operating
System n
Virtual Machine Monitor
Hardware
(Kann die Sicherheit und Zuverlässigkeit erhöhen, da Viren, Programmfehler oder
ähnliches auf die jeweilige virtuelle Maschine begrenzt bleiben und damit keine
Auswirkungen auf die anderen virtuellen Maschinen haben.)
−
Konsolidierung
Application 1
Operating
System 1
Hardware 1
...
Application n
Application 1
Operating
System n
Operating
System 1
Hardware 2
Application n
...
Operating
System n
Virtual Machine Monitor
Hardware
(Inzwischen gibt es in vielen Firmen sehr viele Server, die erhebliche Kosten (Strom,
Wartung, …) verursachen. Da die Leistungsfähigkeit der Rechner immer größer wird,
werden viele Server nicht mehr ausgelastet. Die Konsolidierung der Server auf eine
Hardware-Plattform, kann erhebliche Kosten einsparen.)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 1 - 16
Migration
Application
Application
Operating
System
Operating
System
Virtual Machine
Monitor
Virtual Machine
Monitor
Virtual Machine
Monitor
Virtual Machine
Monitor
Hardware 1
Hardware 2
Hardware 1
Hardware 2
(Die Virtualisierung entkoppelt das Gast-Betriebssystem mit seinen Anwendungsprogrammen von der Hardware, sodass auf einfache Weise ein Lastausgleich zwischen verschiedenen Rechnern durchgeführt werden kann, wenn einzelne virtuelle
Maschinen zur Laufzeit auf eine andere weniger stark belastete Plattform verschoben
werden.)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 17
1.1.5.1 CPU-Emulatoren
•
stellen die Maschinensprache eines anderen Prozessors zur Verfügung
•
Einsatzgebiete:
−
Entwicklung der System-Software für Rechner, deren Hardware
parallel entwickelt wird, sodass Hardware und Software gleichzeitig fertig werden
−
Ablaufumgebung für Software alter Prozessoren, z. B.
♦ Zilog Z80-Prozessor
♦ Motorola 6800
−
Emulation historischer Rechner, z. B.
♦ Zuse Z3
♦ DEC PDP 1
♦ MITS Altair 8800
♦ Commodore C64
•
Java Virtual Maschine
−
emuliert Hardware, die es zurzeit nur als Spezifikation gibt
−
kann in Hardware realisiert werden, wenn der Prozessor ByteCode als Maschinensprache benutzt (Java-Prozessor)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 18
1.1.5.2 Betriebssystem-Emulatoren
•
emulieren ein komplettes Betriebssystem, sodass Anwendungsprogramme für dieses System ausgeführt und entwickelt werden können
(Ggf. müssen diese virtuellen Maschinen auf CPU-Emulatoren ausgeführt werden.)
•
u. a. gibt es Emulatoren für
−
CP/M, CP/M-86 oder CP/M-68K von Digital Research
−
GEM (Graphical Environment Manager) von Digital Research
−
TOS (The Operating System) von Atari
1.1.5.3 Virtuelle Ablaufumgebungen
•
virtuelle Ablaufumgebung für verschiedene Betriebssysteme
−
dies ist das klassische Einsatzgebiet für virtuelle Maschinen
−
es werden mehrere identische Umgebungen auf einem Rechner
gestartet, in denen jeweils ein Betriebssystem installiert wird
(Die Umgebungen können dasselbe Betriebssystem oder verschiedene Betriebssysteme enthalten. In der Microsoft Windows-Welt sind identische Betriebssysteme z.
B. sinnvoll, wenn man verschiedene funktionsfähige Versionen von Microsoft Office
benötigt (andernfalls ist nur die neueste Version richtig nutzbar). In der Ausbildung
können damit z. B. Ablaufumgebungen geschaffen werden, in denen Studierende
Administratorrechte haben und ein Betriebssystem installieren und konfigurieren
können, ohne sich gegenseitig zu stören oder das Wirt-System kompromittieren zu
können, sofern eines benötigt wird.)
−
zuerst Software für virtuelle Maschinen installieren
(Im PC-Bereich gibt es Software für Linux und Microsoft Windows. Sie wird entweder
auf einem Wirt-Betriebssystem (host system) installiert (z. B. Microsoft Virtual PC,
VMware Server) oder direkt auf der Hardware (z. B. VMware ESX-Server).)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 19
−
Software emuliert einen virtuellen PC, dessen virtuelle Hardware-Konfiguration fest vorgegeben ist
−
virtuelle Hardware des virtuellen PCs wird auf die reale Hardware (des Wirt-Systems) abgebildet
−
auf den virtuellen PCs können verschiedene Gast-Betriebssysteme (guest system) installiert werden, zwischen denen per
„Mausklick“ gewechselt werden kann
(Die Gast-Betriebssysteme müssen auf derselben Hardware lauffähig sein, da keine
CPU-Emulation stattfindet. Auf diese Weise können auf einem Rechner z. B. verschiedene Linux-Distributionen, verschiedene Versionen von Linux und/oder
verschiedene Microsoft Windows-Systeme installiert werden (z. B. Windows 95,
Windows XP und Windows Vista).)
•
virtuelle Ablaufumgebungen innerhalb eines Betriebssystems
−
Wirt- und Gast-Betriebssystem sind identisch
−
Einsatzgebiete:
♦ Virtualisierung der Umgebung, sodass z. B. verschiedene
Benutzer Web-Server aufsetzen können, die dieselben
virtuellen Port-Nummern benutzen
(Da jeder Benutzer alle Betriebsmittel mehr oder weniger uneingeschränkt benutzen kann, hat er im Prinzip den Rechner für sich alleine. Er kann auch wieder
Administratorrechte in der virtuellen Umgebung erhalten, ohne die Stabilität des
Gesamtsystems beeinflussen zu können.)
♦ Kapselung der Umgebung, sodass ein Programm keine
Änderungen außerhalb der Umgebung vornehmen kann
(Dies wird oft auch als „sandbox“ oder „jail“ bezeichnet. Auf diese Weise wird
eine bessere Isolation der Prozesse erreicht, als wenn sie auf derselben Instanz
eines Betriebssystems ausgeführt werden.)
−
wird z. B. mit „Container“/„Zone“ ab „Solaris 10“ realisiert
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 20
1.2 Klassifizierung
•
Betriebssysteme können auf verschiedene Weise klassifiziert werden
•
mögliche Klassifizierungen nach
−
unterstützten Betriebsarten (Dialogbetrieb, Echtzeitbetrieb, ...)
−
Einsatzgebieten („normaler“ Rechner, Rechnernetz, ...)
−
Größe des Rechners (PC, Mini-Computer, Großrechner, ...)
1.2.1 Betriebsarten
•
wo werden Rechner benutzt?
−
Software-Entwicklung, Programmierausbildung, usw.
Kennzeichen:
♦ interaktive Benutzung des Rechners
♦ sehr kurze Antwortzeiten gefordert
♦ (Quasi-)Parallel-Verarbeitung
−
aufwendige Berechnungen (Statik einer Brücke, Animationen)
Kennzeichen:
♦ überwiegend wird nur die CPU belastet
♦ E/A - Geräte werden kaum genutzt
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 1 - 21
Gehaltsabrechnung inkl. Ausdruck der Abrechnungsformulare
Kennzeichen:
♦ geringe Belastung der CPU
♦ starke Belastung der Drucker
−
Flugbuchungen durch Reisebüros
Kennzeichen:
♦ viele Sichtgeräte/PCs an entfernten Orten
♦ alle Benutzer arbeiten mit dem gleichen Programm
−
Steuerung einer industriellen Fertigungsstraße
Kennzeichen:
♦ u. U. kurze Reaktionszeiten erforderlich, falls z. B. Fehler
auftreten
♦ hohe Ausfallsicherheit muss gewährleistet sein
•
unterschiedliche Anforderungsprofile stellen unterschiedliche
Forderungen an das Betriebssystem
⇒ Betriebsart: Art und Weise, in der Aufträge bearbeitet werden
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 22
1.2.1.1 Stapel-, Dialog-, Echtzeitbetrieb
•
Stapelbetrieb (batch processing)
−
älteste Betriebsart
−
Rechner erhält vollständig definierten Auftrag über eine Warteschlange
(Früher z. B. über Lochkarten oder ein Magnetband und heute über eine spezielle
Datei. Mit Hilfe einer sogenannten „Job Control Language“ wird u. a. festgelegt,
welche Ressourcen der Auftrag benötigt und auf welchen Systemen er ausgeführt
werden soll.)
−
Benutzer kann den Ablauf des Programms während der Ausführung nicht beeinflussen
−
Ergebnisse des Programms werden in Dateien (heute) oder auf
Magnetbänder (früher) geschrieben (früher auch auf Lochstreifen oder Lochkarten gestanzt) oder gedruckt (Papier)
−
sehr gute Auslastung des Rechners ist möglich, da alle Betriebsmittel vorab bekannt sind
−
heute im Allgemeinen als Hintergrundbetrieb bei TimesharingSystemen (werden in einem späteren Kapitel vorgestellt)
−
die Haupt-Betriebsart bei Hochleistungsrechnern
(Es werden spezielle Produkte zur Verteilung der Aufträge eingesetzt, die auch Vorabreservierungen und ähnliches unterstützen. Bekannte Produkte sind z. B. der „Load
Leveler“ von IBM, die „Load Sharing Facility“ von „Platform Computing“ oder „PBS
pro“ (Portable Batch System) von Altair. Im „Open Source“-Bereich gibt es z. B.
„Open PBS“ oder den „TORQUE Resource Manager“ sowie den „MAUI Cluster
Scheduler“).
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 1 - 23
Dialogbetrieb (interactive processing)
−
Benutzer kommuniziert direkt mit dem Rechner, z. B. über
Tastatur, Maus und/oder (berührungssensitiven) Bildschirm
−
ein Auftrag ist vorab nicht festgelegt
−
er kann vom Benutzer interaktiv gesteuert werden
(vergleichbar mit einem Gespräch, das mit dem Rechner geführt wird)
−
•
im Allgemeinen über ein Zeitscheibenverfahren realisiert
Echtzeitbetrieb (real time processing)
−
Steuerung von Maschinen/Robotern/...
−
Zeitschranken müssen eingehalten werden
−
Einsatzgebiet z. B. in der Prozessdatenverarbeitung (Mess-,
Steuer-, Regelungstechnik) oder Unterhaltungselektronik (SetTop Boxen, DVD-Spieler, ...)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 24
1.2.1.2 Ein-/Mehrprogrammbetrieb
•
Einprogrammbetrieb (single program processing)
−
Rechner bearbeitet eine Aufgabe nach der anderen
−
alle Betriebsmittel stehen diesem Programm zur Verfügung
♦ Prozessor
♦ Hauptspeicher
♦ Dateien, usw.
−
kommt heute nur noch bei einfachen Arbeitsplatzrechnern oder
Spezialrechnern vor
−
Beispiel
0
5
10
Zeit
e1
idle
e2 idle
e3
idle
Eingabegerät
idle
a1 idle
a2
a3
idle
Ausgabegerät
idle
r1
idle
r2
idle
r3
idle
CPU
e1
r1
P1
a1 e2 r2 a2
P2
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
e3
r3
P3
a3
Betriebssysteme
•
Folie 1 - 25
Mehrprogrammbetrieb (multiprogramming)
−
Rechner bearbeitet abwechselnd mehrere Aufgaben, die ineinander verzahnt (quasi-) parallel ablaufen
−
jede Aufgabe erhält während ihrer Laufzeit bestimmte Betriebsmittel zugeteilt
−
Reihenfolge, in der die Programme gestartet werden, hängt von
den Prioritäten der Programme ab
−
Programmwechsel z. B. nach dem Start einer E/A-Operation
−
Betriebssystem kann einem Programm die Kontrolle über den
Rechner entziehen
−
rechenintensive Programme belegen den Rechner sehr lange
(da sie keine E/A-Operationen ausführen, können sie nicht verdrängt werden)
⇒ u. U. große Wartezeiten für einzelne Programme
−
Beispiel
0
5
10
Zeit
e1 e2
idle
e3
Eingabegerät
idle
idle
r1
e1
r1
idle
a1 a2 idle
r2
r3
a3
Ausgabegerät
idle
CPU
eingesparte
Zeit
a1
P1
e2
r2 a2
P2
e3
r3
a3
P3
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 1 - 26
Beispiel für Mehrprogrammbetrieb, wenn die Ein-/Ausgabe nicht
nur am Anfang und Ende des Programms stattfindet
Benutzerprogramm-Priorität
hoch
niedrig
Programm 1
Programm 3
Zeit
Programm 2
Steuerprogramm
E/A-Anforderung
Prozesswechsel
E/A-Anforderung
Start E/A 1
Start E/A 2
P-wechsel
Unterbrechung
Ende E/A 1
Prozesswechsel
Ende E/A 2
Unterbrechung
E/A-Anforderung
Start E/A 1
Prozesswechsel
E/A-Anforderung
Start E/A 2
P-wechsel
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Ein/Ausgabe
Betriebssysteme
Folie 1 - 27
1.2.1.3 Timesharing/Multitasking
•
vermeidet den Nachteil des Mehrprogrammbetriebs
•
ist immer mit Mehrprogrammbetrieb gekoppelt
⇒ multiprogramming und timesharing werden häufig synonym
verwendet
aber: Mehrprogrammbetrieb setzt kein Zeitscheibenverfahren
voraus
•
Betriebssystem verdrängt ein Programm automatisch, wenn es die
CPU eine bestimmte Zeit genutzt hat und nicht freiwillig abgibt
•
typische Größe einer Zeitscheibe: 10 - 200 ms
•
Systemuhr erforderlich
⇒ Rechenzeit wird auf alle Programme gleichmäßig verteilt
0
5
10
Zeit
e1 e2
e3
idle
Eingabegerät
idle
idle
a2
a3
a1
Ausgabegerät
idle r1
r2
r1
r3
r1
r3
r1 idle
r1
CPU
e1 r1
r1
r1
r1 a1
r1
eingesparte
Zeit
P1
e2
r2 a2
P2
e3
r3
r3
a3
P3
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
eingesparte
Zeit
Betriebssysteme
Folie 1 - 28
1.2.1.4 Ein-/Mehrbenutzerbetrieb
•
•
•
Einbenutzerbetrieb (single user mode)
−
im Allgemeinen bei Arbeitsplatzrechnern
−
zwingend bei einfachen Betriebssystemen (z. B. MS-DOS), die
keinen Mehrprogrammbetrieb unterstützen
Mehrbenutzerbetrieb (multi user mode)
−
setzt Mehrprogrammbetrieb voraus
−
Zeitscheibenverfahren ist notwendig (kurze Reaktionszeiten)
im Ein- und Mehrbenutzerbetrieb wird interaktiv mit dem Rechner
gearbeitet
⇒ Rechner muss Dialogbetrieb unterstützen
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 29
1.2.1.5 Multithreading
•
unterschiedliche Programmierschnittstellen (z. B. UNIX International Threads (SunOS), Mach C Threads, POSIX Threads, OS/2Threads, Win32/Win64-Threads usw.)
•
Thread ist eine zusammengehörende Folge von Anweisungen
innerhalb eines Programms
•
jeder Thread besitzt einen eigenen Programmzähler, einen eigenen
Registerbelegungssatz und einen eigenen Stack für lokale Variablen
⇒ Threads können unabhängig voneinander ausgeführt werden
•
Threads teilen sich den Adressraum und die Anweisungen des
umfassenden Prozesses
⇒ falls ein Thread globale Daten ändert, kann die Änderung von
allen anderen Threads gesehen werden
•
Threads teilen sich den Betriebssystemzustand des umfassenden
Prozesses
⇒ sie sehen die gleichen offenen Dateien
(falls ein Thread eine Datei öffnet, kann ein anderer Thread sie lesen, d. h., sie können
sich in unvorhersehbarer Weise beeinflussen, wenn das Programm nicht sehr sorgfältig erstellt wurde (es gibt keinen Betriebssystemschutz auf Thread-Ebene!))
⇒ falls ein Thread die Betriebssystemfunktion exit() aufruft,
werden alle Threads beendet
•
ein traditioneller Prozess ist ein single-threaded process
•
Multithreading bedeutet: Ein Prozess besteht aus mehreren Threads,
die parallel (quasi-parallel auf einem Einprozessorsystem) ausgeführt werden
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 1 - 30
Warum wurden Threads eingeführt?
1) effizientere Bearbeitung eines Programms auf Mehrprozessorsystemen
(Auf Einprozessorsystemen sind diese Programme im Allgemeinen langsamer als ein
traditionelles Programm, da die Verwaltung der Threads Zeit kostet.)
2) Anwendungsprogramme können häufig einfacher entwickelt
werden, wenn die einzelnen Aufgaben als in sich geschlossene
Teile implementiert werden können
(Moderne Fensteroberflächen bieten z. B. viele Funktionen über sogenannte Widgets
oder Icons an, die separat entwickelt werden können.)
1.2.1.6 Mehrprozessorbetrieb
•
Rechner mit mehreren Prozessoren / Prozessorkernen
•
echte Parallelverarbeitung
•
heute meistens symmetrischer Mehrprozessorbetrieb (symmetric
multiprocessing, SMP)
1) Architektur mit gemeinsamem Speicher (shared memory
architecture)
−
klassisches Multiprozessorsystem
−
gemeinsamer Bus/Speicher kann Engpass werden
−
Interprozesskommunikation wie bei einem Einprozessorsystem über Hauptspeicher möglich
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 1 - 31
Zugriffszeiten auf alle Speicherbereiche für alle Prozessoren
gleich groß (uniform memory access, UMA)
CPU
CPU
CPU
CPU
cache
cache
cache
cache
bus
main memory
2) Architektur mit verteiltem Speicher (distributed memory
architecture)
−
z. B. Rechner von Silicon Graphics
−
sehr schnelles Verbindungsnetzwerk (z. B. NUMAlink,
HyperTransport für AMD-Prozessoren)
−
Interprozesskommunikation im Allgemeinen über Nachrichtenaustausch (message passing)
−
Zugriffszeiten auf lokalen Speicher kleiner als die auf den
Speicher anderer Prozessoren (non-uniform memory access,
cache-coherent non-uniform memory access, NUMA,
ccNUMA)
CPU
CPU
CPU
CPU
cache
cache
cache
cache
bus
memory
bus
memory
bus
memory
interconnection network
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
bus
memory
Betriebssysteme
Folie 1 - 32
1.2.2 Betriebssystemklassen
•
Betriebssysteme können auch folgendermaßen klassifiziert werden
−
universelle Betriebssysteme für „normale“ Rechner
−
spezielle Betriebssysteme für spezielle Aufgaben
♦ Steuerung der Anwendungen im mobilen Telefon (Handy)
♦ Steuerung der Anwendungen in Prozessor-Chipkarten
♦ Steuerung der Anwendungen auf Rechnern in Autos
♦ Steuerung von Fertigungsstraßen
♦ usw.
•
Netzwerk-Betriebssysteme (network operating systems)
•
verteilte Betriebssysteme (distributed operating systems)
1.2.2.1 Universal-Betriebssystem
•
läuft auf einem Universal-Rechner (general-purpose computer)
•
unterstützt effizient verschiedene Betriebsarten
•
das „Standard“-Betriebssystem auf heutigen Rechnern vom PC bis
zum Supercomputer
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 33
1.2.2.2 Netzwerkbetriebssystem
•
steuert und verwaltet ein Netzwerk und ermöglicht den Zugriff von
Benutzern auf Netzwerk-Ressourcen
•
Benutzer arbeiten auf Client-Rechnern, die immer ein eigenes
Betriebssystem haben (z. B. Microsoft Windows)
•
stellt verschiedene Dienste zur Verfügung
−
Namen- und Verzeichnisdienste für angeschlossene Rechner
(Novell NetWare eDirectory, Microsoft Windows Active
Directory, ...)
−
Benutzerverwaltung
−
Dateiverwaltung
−
Netzwerkdruckerverwaltung
−
Datensicherung und -wiederherstellung
•
vergibt und überwacht Zugangsberechtigungen
•
zwei Arten
−
eigenständige Systeme (z. B. Novell NetWare), die Zugriff auf
Hardware selbst durchführen und darum sehr leistungsfähig sind
−
Systeme, die auf Betriebssystem-Diensten aufsetzen (z. B. LANManager auf OS/2 oder Microsoft Windows Server)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 34
1.2.2.3 Verteiltes Betriebssystem
•
setzt immer ein Rechnernetz voraus, über das die Rechner verbunden sind
•
Betriebssystem verwaltet Netz und alle Rechner, sodass das System
wie ein einziger Rechner aussieht
•
auf jedem Rechner läuft ein Betriebssystemkern, der für den Netzwerkzugriff und den Dialog mit den Benutzern zuständig ist
•
Dienste des Betriebssystems sind über die Rechner verteilt
•
System ist für den Benutzer transparent, sodass er nicht merkt, dass
es über mehrere Rechner verteilt ist
•
Betriebssystem entscheidet beispielsweise, auf welchem Rechner ein
Programm ausgeführt wird, das ein Benutzer startet
(wird u. U. nicht auf dem lokalen Rechner ausgeführt, wenn ein anderer Rechner weniger
belastet ist)
•
systemweites Dateisystem
(Dateien eines Verzeichnisses können theoretisch auf verschiedenen Rechnern in verschiedenen Ländern gespeichert sein)
•
systemweiter gemeinsamer verteilter Hauptspeicher
•
Kommunikation im Betriebssystem über Nachrichtenaustausch oder
Remote Procedure Call
•
z. B. Amoeba
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 35
1.2.2.4 Echtzeit-Betriebssystem
•
real-time operating system (RTOS)
•
Betriebssystem für Anwendungen, die in vorgegebener Zeit erledigt
werden müssen (z. B. in der Prozesssteuerung)
•
enthält spezielle Funktionen, sodass Zeitbedingungen eingehalten
werden können und das Prozessverhalten vorhergesagt werden kann
•
zwei Arten
•
−
Systeme, die Endtermine (deadline) meistens einhalten (soft
real-time)
−
Systeme, die Endtermine immer einhalten (hard real-time)
benutzt spezielle Scheduling-Algorithmen, sodass Programmierer
einen deterministischen Ablauf programmieren können
(z. B. priority based preemptive scheduling)
•
ereignisgesteuerte (event-driven) Betriebssysteme führen nur dann
einen Prozesswechsel durch, wenn ein Ereignis (interrupt) bearbeitet
werden muss
•
Betriebssysteme mit Zeitscheibenverfahren (timesharing) führen zusätzlich Prozesswechsel durch, wenn eine Zeitscheibe abgelaufen ist
•
Systemzeiten für Prozesswechsel sind immer deterministisch
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 1 - 36
1.2.2.5 Eingebettetes Betriebssystem
•
sehr kompaktes und effizientes Betriebssystem für „Embedded
Systems“
•
oft als Echtzeit-Betriebssystem realisiert
•
auf PDA (Personal Digital Assistant), Handy, ...
•
z. B. Palm OS, Windows CE, Embedded Linux, Java ME, QNX, ...
1.2.2.6 Chipkarten-Betriebssystem
•
card operating system (COS)
•
auf Prozessor-Chipkarten (microprocessor smartcard)
•
stellt u. a. folgende Funktionen zur Verfügung
•
−
Authentifizierung
−
Verschlüsselung und Schlüsselverwaltung
−
Kommunikationsprotokoll zwischen Karte und Kartenleser
−
Verwaltung der Dateien und Daten im Kartenspeicher
−
Zugriffsschutz auf alle Daten
−
spezielle Zuverlässigkeit bzgl. Datenkonsistenz und Fehlerbehebung (falls die Karte z. B. während einer Aktion aus dem Leser gezogen wird)
z. B. MultOS, StarCOS; SecCOS, Java Card, ...
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Herunterladen