os v11 operating system design - inf.fu-berlin.de · android-betriebssystem-basiert auf linux...

40
Betriebssystem-Architekturen Prof. Dr. Margarita Esponda Freie Universität Berlin

Upload: trankien

Post on 04-Jun-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Betriebssystem-Architekturen

Prof. Dr. Margarita Esponda

Freie Universität Berlin

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

Symbian OS

M. Esponda-Argüero

M. Esponda-Argüero

2011

Symbian Apple Android

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

VMware-Architektur

Quelle: "Operating System Concepts". Silberschatz, Galvin, Gagne

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

Android-Betriebssystem

Quelle: www.sigmadesigns.com/uploads/library/android.jpg

Java

C/C++