Beruflich Dokumente
Kultur Dokumente
2: Systemarchitektur
Charakteristiken:
• Betrachtet werden Instruktions- und Datenströme, auf denen die
Instruktionen arbeiten, als Kennzeichen der Arbeitsweise einer
Rechnerarchitektur:
• SI / MI: Single / Multiple Instruction Streams (Programmzähler)
• SD / MD: Single / Multiple Data Streams
Klassen:
• SISD: Single Instruction Stream / Single Data Stream:
traditionelle Uniprozessor.
• SIMD: Single Instruction Stream / Multiple Data Streams:
Vektorrechner: Parallele Ausführung einer Instruktion auf mehreren
Vektorelementen.
• MISD: Multiple Instruction Streams / Single Data Stream:
wird von den meisten Autoren als leer angesehen.
• MIMD: Multiple Instruction Streams / Multiple Data Streams:
Systeme mit mehreren eng oder lose gekoppelten Prozessoren, parallele
und verteilte Rechensysteme.
Charakteristik:
• Unterteilung der Klasse MIMD nach Eigenschaften der Speicherzugriffe.
Klassen:
• UMA (Uniform Memory Access):
– gemeinsamer Adressraum (enge Kopplung).
– Identische Zugriffszeiten aller Prozessoren auf alle Speicherzellen.
• NUMA (Non-Uniform Memory Access):
– gemeinsamer Adressraum (enge Kopplung), aber verteilte
Realisierung des Speichers, dadurch "entfernte" Speicherzugriffe.
– Unterschiedliche Zugriffszeiten auf Speicherzellen abhängig vom
Prozessor.
– auch als Distributed Shared Memory (DSM) bezeichnet.
• NORMA (NO Remote Memory Access):
– kein gemeinsamer Adressraum (lose Kopplung).
© R. Kröger, FH Wiesbaden Verteilte Systeme 2-4
Multiprozessor-/Multicomputer-Systeme 2.1
Multiprozessor-System:
• Ein MIMD-Rechensystem mit eng gekoppelten, identischen
Prozessoren heißt (homogenes) Multiprozessor-System.
• Es kann UMA- oder NUMA-Eigenschaften besitzen.
• Das grundlegende Kommunikationsmodell ist Memory Sharing.
• Hauptaspekt: einfache Programmierbarkeit.
Multicomputer-System:
• Ein MIMD-Rechensystem mit lose gekoppelten, identischen
Prozessoren heißt Multicomputer-System oder Polyprozessor-
System.
• Es besitzt NORMA-Eigenschaften.
• Das grundlegende Kommunikationsmodell ist Message Passing.
• Hauptaspekt: Skalierbarkeit für große Anzahl von Prozessoren.
UMA / NUMA-Diskussion:
• UMA-Multiprozessorsysteme
– Traditionelle Architektur.
– Unterstützung für kleine bis mittlere Anzahl von Prozessoren
(bis ca. 32-64).
– Basis: intelligentes write back-basiertes Cache-Kohärenz-Protokoll.
• NUMA-Multiprozessorsysteme
– Neuere Architektur.
– Auch als Distributed Shared Memory (DSM)-Systeme bezeichnet.
– Auch ccNUMA bei Herausstellung der Cache-Kohärenz genannt.
– Unterstützung für mittlere bis große Anzahl von Prozessoren
(derzeit 128 - 1024).
– Vorteil: Memory Sharing- Programmiermodell bleibt erhalten, auch wenn
Plazierung der Daten zur Erreichung eines hohen Grades lokaler
Zugriffe wichtig bleibt.
– Existierende Software kann i.w. weiterverwendet werden,
im Gegensatz zu NORMA-Systemen.
© R. Kröger, FH Wiesbaden Verteilte Systeme 2-6
Alternativen für enge Kopplung 2.1.1
1-Bus-basiertes Multiprozessor-System:
Prozessoren P1 P2 Pn
... Schnittstelle des sequentiellen
von-Neumann-Speichers
Caches C1 C2 Cn
Bus
Speicher M1 Mm
Kreuzschienenverteiler-basiertes Multiprozessor-System:
P1
Schalterelement
P2
...
Pn
M1 M2 ... Mn
globaler Bus
entfernter
P1 K1 Pn Kn Speicherzugriff
lokaler lokaler
Bus ... Bus
lokaler M1 Mn
Speicherzugriff
• Einfache Konstruktion:
– Rechner = Prozessor mit privatem lokalen Speicher
(Multiprozessor-Knoten möglich).
– Keine entfernten Speicherzugriffe (NORMA).
– Kommunikation durch lose Nachrichten-Kopplung.
– Prinzipielle Architektur:
M1 M2 Mn
Rechner
P1 P2 ... Pn
Netzwerk
• Eigenschaften:
– Unterstützung für große Anzahl von Rechnern (> 1024).
– Netzwerk kann Verbindungsnetzwerk, LAN, MAN, WAN sein.
– Architektur der traditionellen massiv-parallelen Systeme
(MPP: Massively Parallel Processing).
– Einführung von Message Passing-Programmiermodellen und
Bibliotheken.
– Vermeidung der Cache-Kohärenz-Problematik durch explizite
nachrichtenorientierte Programmierung.
LAN-basiertes Rechner-Netz:
M1 M2 Mn
Rechner
P1 P2 ... Pn
LAN
...
...
Rn1 Rn2 Rn3 ... Rnn
011 R R 111
010 R R 110
001 R R 101
x2
x3
R R Adresse: x1x2x3
x1
000 100
n=3
• Hypercube = n-dimensionaler Würfel mit 2n Knotenrechnern.
• Einfaches Routing (Adressen von Nachbarn unterscheiden sich an einer Stelle).
• Längster Weg einer Nachricht wächst nur logarithmisch mit Anzahl Knoten.
• Beispiele: Intel Hypercube, NCube: 512/1024 Prozessoren.
• Weitere Transparenzarten:
– Nebenläufigkeitstransparenz: Nebenl. Nutzung von Komponenten so,
als ob diese privat wären, z.B. durch autom. Sperren, vgl.
Datenbanken.
– Parallelitätstransparenz: Automatische Parallelausführung ohne
Hilfestellung des Benutzers (derzeit nicht realistisch).
– Fehlertransparenz: Ein eingetretener Fehlzustand wird an der
Benutzungsstelle nicht sichtbar, sondern durch Redundanz im
unterlagerten System maskiert.
Anwendungs- Anwendungs-
Komponente Komponente
Nutzer-
Schnittstelle
NOS NOS
LOS LOS
Hardware Hardware
Netzwerk
Anwendungs- Anwendungs-
Komponente Komponente
Single System
Image
Verteiltes Betriebssystem (DOS)
Hardware Hardware
Netzwerk
Überblick:
1. Einleitung
2. Der Mikrokern-Ansatz
3. Abstraktionen eines Mikrokerns
4. Modernes Virtual Memory Management
5. Distributed Shared Memory
• Monolithische Betriebssystemstruktur
Applikationen
Utilities
system call
interface
Mengen von Moduln für
- Prozeßverwaltung
- Speicherverwaltung
Betriebs- - Prozeßkommunikation
system - Dateisystem
- Pufferverwaltung
- Geräteverwaltung
- Interrupt Handling
- Netzwerkzugang
Hardware
• Architektur
Applikationen
Utilities
z.B UNIX-Schnittstelle
generische Manager
(Servers, Actors)
Betriebssystem
Hardware
Die wichtigsten:
• Mach 3.0 (Rashid et al, CMU, USA)
• Amoeba (Tanenbaum et al, Uni Amsterdam)
• PEACE (Schröder-Preikschat et al, GMD, Berlin)
• L3, L4 (Liedtke, GMD St. Augustin, Uni Karlsruhe)
• P4 (Sysgo, Mainz)
erweitertes Application
Programming Interface UNIX
Mikrokern
• File Server
Network File
Manager Manager
Mikrokern
Mikrokern Mikrokern
• mehrere BS-Schnittstellen
Mikrokern
redirection
IPC IPC Transparent (Umlenkung)
Shared
Library
generische
Server
BS-
Emulator return
z.B.
File
Server Benutzer-
programm
user
mode
Mikrokern
Stelle 1 Stelle 2
Task
Ports
Adreßraum
Message
Region
Threads
Segment
IPC Manager
portabel
maschinen-
Supervisor maschinenabhängig abhängig
• Anforderungen
• Funktionen:
– Bereitstellung von Adressräumen
– Effiziente Mechanismen für Datentransfer zwischen
» Adressraum - Adressraum
» Adressraum - Hintergrundspeicher
– Effizient: Kopieren vermeiden solange möglich
(lazy copying, z.B. copy-on-write)
• Randbedingungen:
– generisches Interface (untersützt Paging und Segmentierung)
– Portable Implementierung
Anwendungen im Betriebssystem:
• Interprozesskommunikation (IPC)
• Shared Memory zwischen Adressräumen
• Adressraumduplikation (z.B. für UNIX fork)
• Unterstützung von File I/O und File Mapping
• "Distributed Shared Memory"
Mapping
Adreßraum Segment
Region "Fenster"
Adreßraum 1
Segment
Region 1
Fenster 1
Adreßraum 2
Fenster 2
Region 2
Adreßraum
0
1 v Segment
Region 2
3 v Pager 0
4 v Port 1
Segment
2
Cache
3
IPC 4
5
5
Adreßraum 6
4
3 7
1
2
3 v
Region 4 Reale
5 v Seiten
External
Pager
v Seite Task
present Mikrokern
(sorted
list dll)
global map
context hashed by:
start address
region cache id
size
offset in segmt
offset in segmt
rights
local cache
region segment id
history
(dll)
back
parent pointer real page or stub
page offset in segmt
local cache (if copy-on-write stub):
real page
Segment Stelle 0
0
netzweites 1
Shared 2
3 owner
Segment
4
5
pager
0
Region Region
Stelle 1 Stelle 2
0 Pager 0 v
1 v Protokoll 1
2 Local pager pager Local 2
3 v Cache 1 2 Cache 3
4 v 4
5 5 v
4 5
3 0
1
Reale
Reale Seiten
Seiten