Architektur von Informationssystemen Flashcards
Parallele und Verteilte Systeme
Was sind parallele und verteilte Systeme?
Parallele Systeme: Führen viele Berechnungen gleichzeitig aus, indem Aufgaben auf mehrere Prozessoren (Kerne, GPUs, etc.) verteilt werden. Verteilte Systeme: Ein Verbund unabhängiger Computer, die sich als ein einziges System präsentieren, kommunizieren über Nachrichten, kein gemeinsamer Speicher.
Was ist die Flynn’sche Taxonomie und welche Kategorien gibt es?
Klassifikation von Computersystemen nach Befehl- und Datenströmen:
SISD: Single Instruction, Single Data;
SIMD: Single Instruction, Multiple Data;
MISD: Multiple Instruction, Single Data;
MIMD: Multiple Instruction, Multiple Data.
Welche Arten von Parallelismus gibt es und wie unterscheiden sie sich?
Instruction-Level Parallelism (ILP):
Gleichzeitige Bearbeitung mehrerer Instruktionen in einem Kern.
Data Parallelism:
Verteilung von Daten auf mehrere Knoten zur parallelen Verarbeitung.
Task Parallelism:
Verteilung verschiedener Aufgaben auf mehrere Knoten zur parallelen Bearbeitung.
Was ist Symmetric Multiprocessing (SMP) und welche Probleme treten dabei auf?
SMP:
Mehrere Prozessoren greifen über denselben Bus auf den Speicher zu.
Problem: Skalierungsprobleme, da sich die Prozessoren die Busbandbreite teilen.
Was ist Non-Uniform Memory Access (NUMA)?
Der Speicher wird auf mehrere Prozessoren aufgeteilt.
Jeder Prozessor hat einen direkt angebundenen Speicherbereich, auf den er schneller zugreifen kann als auf Speicher anderer Prozessoren.
Was ist SIMD und wie funktioniert es?
SIMD: Single Instruction, Multiple Data – Eine Instruktion wird gleichzeitig auf mehrere Daten angewendet, wie z.B. bei der Vektoraddition.
Was ist ein Computer-Cluster und wofür wird er verwendet?
Ein Cluster ist ein Verbund mehrerer Knoten (Computer), die über ein Netzwerk verbunden sind und zusammenarbeiten. Sie werden für rechenintensive Aufgaben oder zur Lastverteilung (Load Balancing) verwendet.
Was ist das Fork-Join-Pattern?
Eine Programmierstruktur, bei der Aufgaben
parallelisiert (Fork) und am Ende wieder zusammengeführt (Join) werden.
Wie wird der Speedup berechnet und was beschreibt die Effizienz?
Speedup:
Verhältnis der seriellen Ausführungszeit zur parallelen Ausführungszeit.
Effizienz: Gibt an, wie nah der reale Speedup am idealen Speedup ist.
Was besagt Amdahl’s Law?
Amdahl’s Law besagt, dass der Speedup eines Programms durch den sequentiellen Anteil begrenzt ist. Selbst bei unendlich vielen Prozessoren bleibt der serielle Anteil konstant.
Was ist Gustafson’s Law?
Gustafson’s Law besagt, dass der parallele Anteil eines Programms mit steigender Prozessoranzahl wächst und somit ein linearer Speedup möglich ist, wenn das Problem ausreichend groß ist.
Was ist ein Enterprise Service Bus (ESB)?
Ein ESB dient der Integration von Diensten in einem Unternehmensnetzwerk und ermöglicht lose gekoppelte Kommunikation über einen gemeinsamen Datenbus.
Was ist das OSGi-Framework?
Eine modulare, serviceorientierte Plattform zur Entwicklung von Java-basierten Anwendungen, die dynamisches Lifecycle-Management und Service Discovery unterstützt.
Was ist Message Passing und wo wird es verwendet?
Kommunikation in verteilten Systemen durch das Senden und Empfangen von Nachrichten, oft in Systemen ohne gemeinsamen Speicher verwendet (z.B. MPI).
Wesentlicher Unterschied paralleler und verteilter Systeme?
Paralleles System:
Ein eng-gekoppeltes, in sich geschlossenes System
Verteiltes System:
Ein lose-gekoppelter Verbund von mehreren in sich geschlossenes Systemen