Upload
trankien
View
219
Download
0
Embed Size (px)
Citation preview
Betriebssystem-Architekturen
Monolithische Systeme
Mikrokernel-Architekturen
Hybride-Architekturen
Systeme mit Objektorientierten Techniken
Virtuelle Maschinen
M. Esponda-Argüero
Betriebssystem-Architektur
Die Anforderungen an ein Betriebssystem können sehr
unterschiedlich sein.
Was soll das Betriebssystem leisten?
Wie soll alles implementiert werden?
Policy Mechanism
Ein Echtzeit-Betriebssystem für ein kleines Gerät unterscheidet
sich sehr stark von einem Server-Betriebssystem, das zum
Beispiel Informationen in einer Datenbank sucht.
M. Esponda-Argüero
Betriebssystem-Architektur
Wenn die Anforderungen (Policy) getrennt von
der Implementierung (Mechanism) sind,
gewinnt man an Flexibilität.
Im schlimmsten Falle führt jede Veränderung
der Anforderungen zu einer Veränderung der
Implementierung.
M. Esponda-Argüero
Betriebssystem-ArchitekturViele kommerzielle Betriebssysteme hatten am Anfang keine
richtige Struktur, weil Betriebssysteme mit sehr starken
Hardware-Einschränkungen implementiert werden mussten.
- sehr wenig Hauptspeicher
- keine Festplatte
- langsame Prozessoren
- Assembler-Programmierung
MS-DOSBeispiel:
M. Esponda-Argüero
Einfache BetriebssystemstrukturBeispiel: MS-DOS Disk Operating System 1981
"Basic Input/Output System"
Grundlegende Ein-/Ausgabe-Funktionalität
Silberschatz
- Einbenutzer-System "single-user"
- single-task ⇒ kein Scheduler
- keine Vernetzung
- keine virtuelle Speicher
- kein Sicherheits-System
M. Esponda-Argüero
Betriebssystem-ArchitekturErste Betriebssysteme, die nicht nur im Assembler geschrieben worden sind:
Master Control Program (MCP) Burroughs 1961 Executive Systems Programming Language(Erweiterung von Algol)Open SourceVirtuelle Speicher
MULTICS MIT PL/1 1964 - 2000ModularisiertMultitasking (time-sharing)single level store (mapped segments)dynamische Bindung (dynamic linking)on-line-KonfigurierungMultiprozessor-SystemSicherheitssystem Hierarchisches Dateisystem
sehr innovativ!
Fernando J. Corbató
UNIX Bell Labs C Einfachheit
M. Esponda-Argüero
SchichtenstrukturHier versucht man das
Betriebssystem in
verschiedenen Schichten
zu organisieren, die von
primitiven Funktionen zu
komplexeren Funktionen
gehen.
Probleme
• Effizienz
• Klassifizierung der
verschiedenen Schichten
Silberschatz
M. Esponda-Argüero
Betriebssystemarchitektur
Monolithische Systeme
Die häufigste Struktur von Betriebssystemen ist die monolithische Struktur.
Das Betriebssystem ist als eine Menge von Prozeduren realisiert.
Jede Prozedur kann von jeder anderen aufgerufen werden.
Die meisten monolithischen Betriebssysteme haben eine sehr einfache Struktur.
Linux wird als monolithisches System eingeordnet.
M. Esponda-Argüero
Einfaches Monolithisches Betriebssystem
Programm1.Systemaufruf.
Programm2...
Programm3...
. . .Benutzerprogramme
Kernel-Aufruf
Dienstprozedur1
Main-Prozedur
Dienstprozedur2
Dienstprozedur3
.
.
.
Utility-Prozedur1
Utility-Prozedur2
Utility-Prozedur3
.
.
.Kernel-modus
M. Esponda-Argüero
Mikrokernel-ArchitekturenIn den 80er Jahren wurde der Kernel von Unix-Betriebssystemen
zu groß und komplex.
Carnegie Mellon University entwickelte 1985-1994 das Mach
Betriebssystem.
In einigen Betriebssystemen wird versucht so viel Funktionalität wie möglich außerhalb des Kernels zu verlagern, so dass ein minimaler Mikrokern übrig bleibt.
Die Funktionalität wird durch Server-Prozesse durchgeführt und der Mikrokern muss nur die Kommunikation zwischen Client- und Server-Prozessen durchführen.
M. Esponda-Argüero
Mikrokernel
Prozess1
(Kunde)Prozessn
(Kunde)…
Hardware
Mikrokernel
DateiverwaltungServer
NetzwerkServer
GerätetreiberServer
…
Grundfunktionen zur Synchronisation und Kommunikation
Kernel-modusFunktionen zur Speicher-
und Prozessverwaltung
User-modus
Bibliotheken
M. Esponda-Argüero
Mikrokernel
- Bessere Modularisierung
- Mikrokernel mit stark reduzierter Funktionalität- minimale Prozessverwaltung
- minimale Speicherverwaltung
- Hauptaufgabe ist die Kommunikation mittels
Nachrichtenverkehr
Eigenschaften:
Vorteile:- übersichtlicher
- flexibler
Problem:- Kommunikations-Overhead
ACM
M. Esponda-Argüero
1990
1985-1994
Carnegie Mellon University
Ersetzung des BSD-Kernel
Mach-Betriebssystem
Richard Rashid 50% langsamer als UNIX Probleme innerhalb der IPC-Operationen
- Menory-Mapping- Kontrolle von port-Zugriffsrechten- Nachrichten-Validierung
60% Wachstum der CPU-Leistung7% Verbesserung der Speicher-Zugriffe
Die Probleme wurden größer:
1997
M. Esponda-Argüero
Mach-BetriebssystemMac OS X
Kernel-Bereich
BSD
Anwendungsbereich
gemeinsame Dienste
Mach
Beispiele QNX (Echtzeitbetriebssystem) Darwin (Mac OS X Kernel) Interessante Beispiele:
Windows NT 4.0Windows XP
M. Esponda-Argüero
www.javipas.com/wp-content/unix_desktop_macosx_1600x1200.jpg
MULTICS
UNICS
UNIX 1
UNIX 6
UNIX Syst. III BSD-Unix Minix
Ubuntu
Linux
Linux 2.6
Devian
BSD-4.3
Next
Suse
BSD-4.2
Mach
Mac OS X
Darwin
Xenix
GNU Hurd
Monolithisch vs. Mikrokernel vs. Hybride-Systeme
VFS
IPC, File System
Device Drivers, Dispatcher …
Scheduler, Virtual Memory
Applications
Hardware
System Call
Monolithisch
Hardware
VM, Scheduling, Basic IPC, …
ApplicationIPC
DeviceServer
FileServer
UNIXServer
Applications
ApplicationIPC
DeviceServer
Hardware
VM, Scheduling, Basic IPC, …
FileServer
UNIXServer
Applications
Mikrokernel Hybride-Kernel
M. Esponda-Argüero
Objektorientierte Struktur
• Modularisierte Struktur.
• Module werden am Anfang und zur Laufzeit dynamisch geladen.
• Es gibt einen zentralen Kernel (core kernel) und verschiedene
ladbare Module.
• Alle Module definieren eine saubere Schnittstelle.
• Das zentrale Modul kann beliebige Module laden und problemlos
und effizienter mit allen Modulen kommunizieren (ohne
Nachrichtenverkehr).
Modernere Lösung
• Höhere Schichten können Klassen aus tieferer Schicht erweitern.
M. Esponda-Argüero
Die Forschung geht weiter, weil Mikrokernel leicht zu erweitern,einfacher zu portieren,und sicherer sind.
Optimierungen im Speicherverwaltung-Bereich
Mikrokernel sind besonders interessant für die Entwicklung von Verteilten Betriebssystemen
Plan 9 Bell Labs2K UIUCInferno Vita NuovaThe Sprite OS BerkeleyMach CMUAgentOS UCIWebOS Berkeley
Mikrokernel + Objektorientierte-Techniken
M. Esponda-Argüero
Struktur mit objektorientierten ProgrammiertechnikenSolaris
Core Kernel
Gerätetreiber
AusführbareFormate
Verschiedene Dienste
Streamming
Dateisysteme
Systemaufrufe
Schedulerklassen
Das Mac OS X Betriebssystem hat eine hybride Struktur, die
Mikrokern und objektorientierte Programmiertechniken kombiniert.M. Esponda-Argüero
Symbian OS• Es beginnt mit der Entwicklung der Handheld-Geräte (PDAs)
Ende der 1980er
Geschichte
32-Bit-EPOC-Plattform
entwickelt für PDAsEchtzeitperformance
einer Smartphone-
Plattform
Symbian OS
• Kommunikation als zentrale Aufgabe• Minimale Hardwareabhängigkeit
M. Esponda-Argüero
Symbian OS
• modernes 32-Bit Betriebssystem
• objektorientiert
• mit einer Mikrokernelarchitektur
• hoher Modularisierungsgrad und Plattformunabhängigkeit
• Client/Server-Architektur (EPOC Engine-Modell)
• ein weiches Echtzeitsystem ( für Multimedia )
• unterstützt Desktop-Funktionalität wie
- Multitasking, Multithreading
- erweiterbares Speichersystem
• effiziente Kommunikation
• sehr verbreitet in den Smartphones
• 2008 kaufte Nokia Symbian
• Ankündigung, dass Symbian OS 2009 open source werden soll
Ergebnis:
M. Esponda-Argüero
Objektorientiert
• Das Symbian-Betriebssystem wurde von Anfang an
objektorientiert konzipiert.
• Die gesamte Nutzung der Systemaufrufe und Kern-Funktionen
läuft über Schnittstellen.
• Der Kern stellt Kerndienste nur über Objekte zur Verfügung.
• Die Benutzung von Kernobjekten verläuft über Handles.
• Betriebsmittelschutz wird durch die Belegung von Objekten
realisiert.
• Die Details der Systemimplementierung bleiben vor
Benutzerprogrammen verborgen.
M. Esponda-Argüero
Mikrokerndesign
• Das Symbian OS wurde als ein mikrokernbasiertes
Betriebssystem entwickelt.
• Im Kern gibt es nur eine minimale Anzahl von
Systemfunktionen und Daten.
• Der Zugriff auf Systemressourcen erfolgt nur durch
Verbindungen zu entsprechenden Ressourcen-Servern.
• Die meisten Systemfunktionen wurden auf Server des
Benutzeradressraums verschoben.
• Die Server erhalten Handles auf Systemobjekte und führen mit
diesen, wenn nötig, Systemaufrufe aus.
M. Esponda-Argüero
Mikrokerndesign
Middleware
ServerServerServer
ServerServer
Kernelmodus
Usermodus
Mikrokern + Gerätetreiber
Anwendungen
M. Esponda-Argüero
MikrokerndesignVorteile
• Neue Implementierungen für Systemfunktionen können als
Systemobjekte entworfen werden und dynamisch in den Kern
eingefügt werden.
• Dateisysteme z.B. können zur Laufzeit zum Kern hinzugefügt
werden.
• Mikrokerne sind klein und können sehr schnell gebootet werden.
• Server können erst nach Bedarf geladen werden.
Nachteile
• Ein Systemaufruf benötigt einen Nachrichtenaustausch.
• Die Performance leidet durch das Kommunikations-
Overhead zwischen Objekten.
M. Esponda-Argüero
Nanokern
• Ein Nanokern wurde als Lösung für die Performanceprobleme
des Mikrokerns eingeführt.
• Der Nanokern stellt die grundlegendste Funktionalität zur
Verfügung, die von privilegierten Nano-Threads ausgeführt wird.
• Scheduling-Operationen
• Synchronisationsoperationen
• Unterbrechungsbehandlung
• Einfache Synchronisationsobjekte (Mutexe und Semaphore)
• Die meisten Funktionen dieser Ebene sind unterbrechbar.
M. Esponda-Argüero
Symbian-OS-Kernschicht
Funktionen mit einer komplexeren Implementierung werden in
den Symbian-OS-Kern verschoben.
Jede Funktion ist hier eine privilegierte Operation, die aus
primitiven Operationen des Nanokerns besteht.
• Threads im Benutzermodus
• Prozess Scheduling und Kontextwechsel
• dynamischer Speicher
• dynamisch ladbare Bibliotheken
• komplexe Synchronisation
• Objekt- und Interprozesskommunikation
• andere komplexe Objektdienste
• usw.M. Esponda-Argüero
Benutzeranwendungen
Kernstruktur von Symbian OS
Mikrokern-Server
Telefon-FunktionenDisplayMultim
edia
Socke
tsSymbian-OS-Kern
Nanokern
M. Esponda-Argüero
Client-Server-Ressourcenzugriff
• Das Mikrokerndesign verwendet ein Client/Server-Modell
• Anwendungen sind die Clients
• Server sind Programme, die das Betriebssystem laufen lässt,
um den Zugriff auf die Ressourcen zu koordinieren.
Vorteile
passt besser zum objektorientierten Design und zur Mikrokern-
Architektur
Server können sich auf eine Klasse von Ressourcen
spezialisieren
geringere Entwicklungskosten
M. Esponda-Argüero
Client-Server-Ressourcenzugriff
• Symbian stellt für den Zugriff auf Dateien und Verzeichnisse
einen Server bereit (Fileserver)
• Der Fileserver stellt eine Anwendungsschnittstelle (Client API)
zur Verfügung, um Verzeichnisse und Dateien zu verändern.
• Um mit dem Fileserver zu arbeiten, muss zuerst eine
Verbindung aufgebaut werden.
Das Öffnen einer Datei
...RFs session = iCoeEnv->FsSession();Rfile file;session.Connect();...file.Open(session,_L(Dateiname),DFileRead | EFileWrite);file.Write(_L8( "Bla Bla Bla Bla" ));session.Close();...
M. Esponda-Argüero
Virtuelle Maschinen
Die ersten virtuellen Maschinen wurden 1972 von IBM entwickelt.
Die Festplatte wurde in viele virtuelle Mini-Festplatten verwandelt.
Silberschatz
Virtuelle MaschinenMehrere Exemplare einer VM laufen auf einer realen Maschine.
Verschiedene Betriebssysteme können gleichzeitig ausgeführt werden.
Hardware
Virtuelle Maschine Implementierung
VM1 VM2 VM3
Linux MacOS Windows
Prozesse Prozesse Prozesse
Systemaufrufe
Ein- Ausgabe- Operationen
Beispiel: IBM VM BetriebssystemM. Esponda-Argüero
Virtuelle MaschinenVorteile:
• Mehr Schutz durch Isolierung zwischen den virtuellen
Maschinen.
• Sehr gut für die Forschung und Entwicklung von
Betriebssystemen.
• Neue Versionen des Betriebssystems können getestet
werden.
• Software kann sehr leicht in verschiedenen
Betriebssystemen getestet werden.
Beispiele:
• VMware
• Java virtuelle Maschine
• CLR für die .NET FrameworkM. Esponda-Argüero
Android-Betriebssystem
- basiert auf Linux Kernel 2.6
- mit Energieverwaltungssystem
- verändertes Speicherverwaltungssystem
- neue Treiber
- Dalvik-VM als wichtigste Laufzeitumgebung
- Register-Maschine
- *.class ⇒ *.dex
- Jedes Java-Programm läuft in einer eigenen
Dalvik-VM
- mit eigenem Garbage-Collector
M. Esponda-Argüero