TU Wien:Verteilte Systeme VO (Dustdar)/Pruefung 2019-01-18
(Fragen waren nicht in dieser Reihenfolge)
Drei wichtige Eigenschaften von Verteilten Systemen[Bearbeiten | Quelltext bearbeiten]
- Transparency: Hide different aspects of distribution from the client Access, Location, Migration, Relocation, Replication, Concurrency, Failure
- Openness: Offer services according to standard rules Protocols and Interfaces -> Flexibility
- Scalability: A DS’s ability to grow Size, Geographically, Administratively
Was versteht man unter Internet of Things[Bearbeiten | Quelltext bearbeiten]
Physische Objekte …
- … sind nahtlos ins Internet integriert
- … sind aktive Teilnehmer in Business Prozessen
- … werden zu „Smart Objects“
Technologien: RFID, sensor networks, IPv6
Das Dreieck von SOA[Bearbeiten | Quelltext bearbeiten]
+--------------+ +-> |Service Broker| <---+ 2.Find | +--------------+ | | |1. Publish v | +--------+ 3. Bind +--------+ |Service | +------------> |Service | |Consumer| +------------> |Provider| +--------+ 4. Execute +--------+
Was versteht man unter Abstraction bzw. Separation of concerns[Bearbeiten | Quelltext bearbeiten]
Abstraction
- Client, server, service
- Interface vs implementation
Separation of concerns
- Layering (in fs: bytes, fdisc blocks, files)
- Client and server
- Components (granularity issues)
Sie betreiben einen Server. Erklären Sie warum man einen Multi-Thread-Server einem Single-Thread-Server bzw. einem Multi-Process-Server vorziehen sollte.[Bearbeiten | Quelltext bearbeiten]
- Threads teilen sich einen Speicherbereich – Kontextswitch kann unabhängig vom OS geschehen
- Prozess wechseln ist teurer, da das OS involviert werden muss
- Erstellen und Zerstören von Threads viel günstiger als bei Prozessen
- Ein Server ist Ziel von mehreren / vielen Usern -> Last kann viel besser auf mehrere Worker Threads aufgeteilt werden (Parallelisierung)
- Bei blockierenden Aktionen müssten bei einem Single Thread Server der / die User warten, bis der Block wieder freigegeben wird
Drei Eigenschaften von Secure Channels[Bearbeiten | Quelltext bearbeiten]
Beide Parteien wissen …
- … wer auf der anderen Seite ist (Authentifiziert)
- …, dass die Nachricht nicht verändert wurde (Integrität)
- …, dass die Nachricht nicht abgehört werden kann (Vertraulichkeit)
Es war eine Grafik zur Public Key Authentifizierung gegeben und man musste die Werte einzeichnen und erklären[Bearbeiten | Quelltext bearbeiten]
Zur obrigen Frage die eingezeichneten Werte erläutern[Bearbeiten | Quelltext bearbeiten]
Socket Primitive Methoden (Folie 4 in diesem zusätzlichen Foliensatz) zeichnen und nennen[Bearbeiten | Quelltext bearbeiten]
Es ist ein P2P gegeben, viele Knoten die immer wieder ein- und aussteigen, soll man Multicast oder RPC verwenden, wenn man Informationen sammeln möchte[Bearbeiten | Quelltext bearbeiten]
Forward Pointers, Vor- und Nachteile[Bearbeiten | Quelltext bearbeiten]
(= wenn sich eine Entität bewegt, hinterlässt es einen Pointer zu seiner nächsten Location)
+ Einfaches dereferenzieren, da der einfachen Kette an Pointern gefolgt wird
- Je länger die Kette desto höher die Chance für eine Unterbrechung -> kein Zugriff mehr möglich
- Je länger die Kette, desto höher die Latenz
Name vs identifier[Bearbeiten | Quelltext bearbeiten]
Name: Abfolge von Zeichen, um eine Entität in einem Kontext zu benennen
Identifier: Name der einzigartig ist und genau eine Entität identifiziert
Zeichnung von der Folie 15, wie viele Komponenten dürfen ausfallen[Bearbeiten | Quelltext bearbeiten]
Eine Komponente darf maximal ausfallen, da sonst die Voter nicht mehr funktionieren (Mehrheitsentscheid anhand von gültigen Eingangssignalen).
Failure, Error & Fault erklären und wie sie zusammenhängen[Bearbeiten | Quelltext bearbeiten]
- Fault: Cause of an error (e.g. Software bug in method)
- Error: Deviation of actual system state from perceived one (e.g. process offering method is called, fault becomes active, wrong value is calculated)
- Failure: Delivered service deviates from correct service, the system functionality is not delivered anymore. (e.g. leads to incorrect service of component calling process)
Vector clock Graph war gegeben, man musste Werte ausfüllen und Formeln angeben[Bearbeiten | Quelltext bearbeiten]
Geben Sie die wichtigsten Schritte des Bully Algorithmus an[Bearbeiten | Quelltext bearbeiten]
- Process P sends an "Election" message to all processes with higher number.
- If nobody responds, P becomes the coordinator and notifies everyone else.
- If someone with a higher number responds (Q), P ends and Q starts executing from step 1.
Grafik war gegeben, man musste bestimmten, ob Causal oder Fifo consistency gegeben ist[Bearbeiten | Quelltext bearbeiten]
Antwort zur vorherigen Frage begründen[Bearbeiten | Quelltext bearbeiten]
Primary backup protocol Schritte einzeichnen wie auf der Folie 31[Bearbeiten | Quelltext bearbeiten]
MC zu wann soll push statt pull verwendet werden[Bearbeiten | Quelltext bearbeiten]
- Der Server soll stateless sein
- Der Client soll Updates so schnell wie möglich bekommen
- Daten werden häufig geupdated aber nur selten gelesen
- Clients kommen und gehen