Architektur verteilter Systeme
Architektur verteilter Systeme - HTW Berlin - Wirtschaftsinformatik - Messer
Architektur verteilter Systeme - HTW Berlin - Wirtschaftsinformatik - Messer
Fichier Détails
Cartes-fiches | 34 |
---|---|
Utilisateurs | 10 |
Langue | Deutsch |
Catégorie | Informatique |
Niveau | Université |
Crée / Actualisé | 20.09.2015 / 04.02.2025 |
Lien de web |
https://card2brain.ch/box/architektur_verteilter_systeme
|
Intégrer |
<iframe src="https://card2brain.ch/box/architektur_verteilter_systeme/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Créer ou copier des fichiers d'apprentissage
Avec un upgrade tu peux créer ou copier des fichiers d'apprentissage sans limite et utiliser de nombreuses fonctions supplémentaires.
Connecte-toi pour voir toutes les cartes.
Was ist im Zusammenhang mit Betriebssystemen Koordination, was Synchronisation und was Kooperation?
Koordination
Abstimmung zwischen Threads, um Datenkonsistenz bei gleichzeitigem Zugriff zu erhalten
Synchronisation
Zeitliche Abstimmung hinsichtlich der Benutzung von Ressourcen bzw. Herstellen von "Gleichzeitigkeit", von Gleichtakt
Kooperation
zielgerichtetes Zusammenwirken z,B. zur arbeitsteiligen Erfüllung einer komplexen Aufgabe
Was ist ein Deadlock? Nennen Sie ein Beispiel.
Was wird unter Starvation verstanden?
Deadlock
Warten auf ein Ereignis, das nicht eintreten kann, da die das Ereignis signalisierenden Vorgänge auf eine Aktivität eines Threads warten, der selbst auf das Ereignis wartet.
ist ein strukturell bzw. logisches Problem, das durch ein zyklenhaftes Warten entsteht
Bsp: Verkehrskreuzung mit vier Autos / You-after-you-Problem
-----------------------
Starvation
Zu langes Warten auf ein mögliches Ereignis als Folge übermäßiger "Ungerechtigkeit" zwischen Prozessen/Threads
Starvation ist ein Scheduling-Problem, d.h. ein Problem der schlechten Zuweisung von Ressourcen an Threads (Scheduling)
Beschreiben Sie eine durchaus reale Situation im Straßenverkehr, in der ein Deadlock entsteht.
Wenn 4 Autos an einer Kreuzung stehen und niemand weiß wer entsprechend der Rechts-vor-Links-Regel als erstes fahren "darf" und alle darauf gleichzeitig warten, dass irgendjemand losfährt.
Was ist ein wechselseitiger Ausschluss und wozu dient dieser?
Wechselseitiger Ausschluss = Mutual Exclusion
Ergebnis der Koordinierung zur Verhinderung von Problemen bei der gemeinsamen Benutzung von Variablen in kritischen Abschnitten
Threads daran gehindert, eine Ressource zu benutzen, wenn diese durch einen anderen Thread belegt ist. Ressource ist hier die Menge der gemeinsam benutzten Variablen einer Klasse.
Erst nach Freigabe kann ein anderer Thread die Ressource belegen.
Mit welchen Mitteln kann ein wechselseitiger Ausschluss realisiert werden? Nennen Sie ein Verfahren.
Synchronisation
Durch Realisierung von wechselseitigen Ausschlüssen wird der Zugriff auf gemeinsam benutzte Betriebsmittel so auf einander abgestimmt, dass die Konsistenz der Daten und damit die Korrektheit der Implementierung erreicht wird.
Was wird mit den beiden Operationen enter() und leave() (wie sie in der Veranstaltung eingeführt wurden) bewirkt?
enter(Klassenname):
Betreten eines kritischen Abschnitts
leave(Klassenname):
Verlassen eines kritischen Abschnitts
Zur Realisierung des wechselseitigen Ausschlusses gibt es optimistische und pessimistische Verfahren. Beschreiben Sie beide prinzipiellen Verfahren und nennen Sie jeweils ein Beispiel (aus der Informatik), in dem diese angewandt werden.
optimistisches Verfahren = Im kritischen Abschnitt
Während der Aktivitäten innerhalb des kritischen Abschnittes wird auf Probleme geprüft. Gibt es sie, werden Verfahren durchgeführt, die den alten Zustand vor dem Konflikt wieder herstellen, und alles beginnt von vorn.
Bsp: Ethernet
pessimistisches Verfahren = Vor dem kritischen Abschnitt
Vor dem Betreten wird sichergestellt, dass später keine Probleme auftreten können.
Bsp: Semaphoren
Mit welchen Verfahren werden die beiden Operationen lock() und unlock() realisiert?
Worin besteht die wesentliche Eigenschaft dieser Verfahren? Dies wird manchmal als Spinlock bezeichnet.
Die Realisierung von enter() und leave() mit Implementierungen, die mit Busy Waiting arbeiten, werden auch lock() und unlock() genannt, manchmal auch spinlock genannt.
Busy Waiting
Aktives Warten = Vorgang, bei dem eine CPU auf das Eintreten eines Ereignisses dadurch wartet, dass sie in einer Endlos-Schleife abfragt, ob es eingetreten ist. (das gibt es auch bei I/O)
Lock-Operation = spinlock
Realisierungen des Eintritts (Prolog) in einen kritischen Abschnitt mit Hilfe von Busy Waiting
Welche Art von Operationen realisiert der Algorithmus von Dekker? Die Semaphor-Operationen p() und v()?
Nein, enter() und leave() realisiert der Algorithmus von Dekker
Was sind Semaphoren?
Wie arbeiten binäre Semaphoren?
Worin liegt dabei die Implementierungsidee?
Nennen Sie die beiden Operationen, die Semaphoren ausmachen.
Semaphoren:
Datenstruktur, die aus einer Ganzzahl und den Nutzungsoperationen „Reservieren/Probieren“ und „Freigeben“ besteht. Sie eignet sich insbesondere zur Verwaltung beschränkter (zählbarer) Ressourcen, auf die mehrere Prozesse oder Threads zugreifen sollen, wie etwa Erzeuger und Verbraucher, sowie zur Koordination asynchroner Abläufe
Operationen der Semaphore S:
- p(S) realisiert das Betreten p steht für passeer, probeeren (Niederländisch).
- v(S) realisiert das Verlassen v steht für vrijgeven, verhogen (Niederländisch).
Idee:
Anstatt den gesamten kritischen Abschnitt mit einem lock()- unlock()-Paar zu sperren, wird nur der Code von enter() und leave() gesperrt.
Eine Semaphore S besteht aus:
– Es gibt eine globale Variable state zur Repräsentation des Belegungszustandes.
Diese hat initial die Anzahl der gleichzeitig im kritischen Abschnitt erlaubten Threads, z.B. 1.
– Weiterhin gibt es eine Warteschlange q mit den wartenden Threads ohne eine Priorität.
Diese Warteschlange ist initial leer.
Wenn die maximale Anzahl der Threads im kritischen Abschnitt 1 ist, werden diese Semaphoren binär genannt, da es nur zwei Zustände für den Zustand state gibt.
Kann bei Verwendung von Semaphoren auf enter() und leave() verzichtet werden?
Nein.
-----------------
Der kritische Abschnitt ist dann immer noch geschützt, wird aber wie normaler Code ausgeführt.
Wir haben damit zwei „Stufen“:
- Innerhalb der Routinen enter() und leave()
- Zwischen den Aufrufen enter() und leave()
• Alle in enter() wartenden Threads verlieren die CPU und erhalten sie erst dann wieder, wenn der Thread den kritischen Abschnitt betreten darf. D.h. das Warten in enter() wird wie das Warten auf I/O realisiert.
Was sind Monitore? Was waren die wichtigsten Gründe für deren Konzeption (und Benutzung)?
Monitor
Abstrakter Datentyp mit allen dafür notwendigen Operationen sowie der Bedingung, dass immer nur ein Thread eine der Operationen zu einem Zeitpunkt ausführen kann.
Hat ein Thread den Monitor betreten, so gehört er ihm bis er ihn verlassen hat oder in einer Warteschlange wartet.
Gründe:
Das Programmieren mit Semaphoren ist
- aufwändig
- relativ fehlerhaft, da die kritischen Abschnitte über den Code verteilt sind
Idee: In die Programmiersprache ein "sicheres" Konstrukt integrieren und den Compiler die p()- und
v()-Operationen generieren lassen: der Monitor
Jeder Monitor hat eine Entry-Queue.
Welche Bedeutung hat diese Queue?
Welche Prozesse kommen in diese Queue?
Entry-Queue
Threads, die den Monitor betreten wollen, aber nicht dürfen
Welche Aufgabe haben die Conditionqueues und die Urgend-Queue bei den Monitoren?
Condition Queues
Hier warten Threads auf bestimmte Ereignisse
Urgent Queue
Hier warten Threads, die aufgrund des Eintretens von Ereignissen zusammen mit anderen aktiv werden wollen
Wenn sich ein Prozess innerhalb eines Monitors befindet und feststellt, dass er auf den Aufruf einer Methode durch einen anderen Prozess warten muss, was macht er?
Wenn ein Thread innerhalb des Monitors auf die Arbeit eines anderen Threads in diesem Monitor warten muss, gibt er den Monitor dadurch frei, dass er in eine Condition-Queue kommt und dort schläft. Dadurch kann der andere Thread den Monitor betreten.
----------------------------------------
Wenn der andere Thread gearbeitet hat, weckt dieser einen der Threads auf, die in der korrespondierenden Condition-Queue auf ihn gewartet hatten.
Da aber nur ein Thread zu einem Zeitpunkt im Monitor sein darf, kommt der aufweckende Threads in die Urgent-Queue.
Verlässt ein Thread den Monitor, so betreten die Threads der Urgent-Queue mit Priorität gegenüber der Entry-Queue jeweils einzeln den Monitor.
Was wird unter einer Komponente (in der Software) verstanden?
Definieren Sie diesen Begriff in Hinblick auf Service und Benutzt-Relation.
Komponente
Klassenkomplex mit einer explizit definierten Schnittstelle, an der eine in sich geschlossene Leistung erbracht wird und die eine weit gehend freie Kombinierbarkeit mit anderen Komponenten ermöglicht.
--------------------
Service
Erbringung einer in sich geschlossene Leistung, d.h. Realisierung einer Aufgabe
Beziehungen zwischen Komponenten
- Benutzt-Relation im Sinne von local bzw. remote procedure call
- Benutzt-Relation im Sinne von Nachrichtenverarbeitung
- Management-Relation: Erzeugen/Laden, Vernichten, Ersetzen, (Um-)Konfigurieren
Welches Ziel wird mit dem Standard des OSI-Referenzmodells verfolgt?
Wie viele Schichten definiert das OSI-Referenzmodell? Und wie heißen diese?
Ziel:
Hersteller unabhängige, Architektur unabhängige sowie Netz unabhängige Schnittstelle zwischen beliebigen Rechnern
Konzeptioneller Rahmen
Das Basis Referenzmodell legt einen Bezug (Reference) fest, der gerade so gestaltet ist, dass mit so wenigen Vorgaben wie nur möglich ein Maximum an Kompatibilität erreicht wird
Behandlung des Aspektes der Datenübermittlung, d.h. es geht nicht um die Verarbeitung, sondern nur um den Datenaustausch
Anzahl Schichten: 7
Schichten:
Anwendung
Darstellung
Steuerung
Transport
Vermittlung
Sicherung
Übertragung
Was wird unter einem Dienst (Service) verstanden?
An der Schnittstelle zwischen direkt benachbarten Schichten erbrachte Leistung der unteren Schicht durch Ausführen geeigneter Protokolle.
Ein Dienst kann auch als Angabe, was zu leisten ist, verstanden werden, während das Protokoll angibt, wie dieses Was realisiert wird.
Ein Dienst ist damit die Spezifikation der Leistung eines Protokolls.
Daher kann es mehrere Protokolle geben, die dieselbe Leistung erbringen, d.h. denselben Dienst realisieren.
Was ist eine Instanz (Entity)? Was wird dadurch modelliert?
Modell der Implementierung einer Komponente
Modell eines aktiven kommunizierenden Elements innerhalb einer Schicht und gleichzeitig innerhalb eines Systems
Entities können in Hardware, z. B. LAN-Karten, oder in Software, z. B. als Threads im Kernel oder als Prozesse, realisiert werden.
An welchen Schnittstellen des OSI-Modells werden Dienste
und an welchen Protokolle definiert?
Dienste:
an der Schnittstelle zwischen direkt benachbarten Schichten
Protokolle:
an der Schnittstelle zwischen Instanzen verschiedener Systeme derselben Schicht
Was ist eine PDU?
Wofür steht dieses Kürzel?
PDU = Protocol Data Units
Bei Ausführen von Protokollen werden über die nächst unterliegende Schicht Einheiten von Daten ausgetauscht (=PDUs)
Was ist die Aufgabe der Sicherungsschicht (Link Layer)?
Segmentierung der Pakete in Frames und Hinzufügen von Prüfsummen
[Die Sicherungsschicht sorgt für eine zuverlässige und funktionierende Verbindung zwischen Endgerät und Übertragungsmedium. Zur Vermeidung von Übertragungsfehlern und Datenverlust enthält diese Schicht Funktionen zur Fehlererkennung, Fehlerbehebung und Datenflusskontrolle.
Auf dieser Schicht findet auch die physikalische Adressierung von Datenpaketen statt.]
Geben Sie drei Beispiele für Dienste/Aktivitäten auf der Anwendungsschicht an (Application Layer).
Aufgabe:
Funktionen für Anwendungen, sowie die Dateneingabe und -ausgabe
Beispiele: ???
.
Worin bestehen die wesentlichen Aufgaben der Präsentationsschicht (Presentation Layer)?
Umwandlung der systemabhängigen Daten in ein unabhängiges Format
Darstellungsschicht wandelt die Daten in verschiedene Codecs und Formate/
Hier werden die Daten zu oder von der Anwendungsschicht in ein geeignetes Format umgewandelt.
Was ist ein Prozess und was ein Thread?
Prozess
Sequentiell ablaufendes Programm
Thread
Sequentiell arbeitendes Programm(teil) als Teil eines Prozesses
Was ist bei Prozessen bzw. Threads ein Scheduler?
Thread, der die Zuteilung der CPU zu den Threads nach einem Verfahren (Scheduling Strategie) realisiert
Welche Aufgaben hat der Scheduler?
- in der Threadtabelle mitschreiben, welche Threads existieren
- vermerken, welcher Thread zu welchem Anteil die CPU schon bekommen hat
- vermerken des Thread-Zustandes (state):
- ändern des Threadzustands entsprechend einer neuen Situation
- zuteilen der CPU dem nächsten Thread
Welche Aufgaben hat der Timer bei dem Time-Sharing-Verfahren?
Ein Timer ist ein spezielles Gerät, das nach einer eingestellten Zeit bzw. in zyklischen Abständen einen Interrupt sendet. Dieser wird immer mit dem Aktivieren des Schedulers behandelt.
Was ist eine Zeitscheibe?
Dauer zwischen zwei Timer-Interrupts
Welche Informationen stehen in der Thread-/Prozess-/Task-Tabelle?
Informationen zu jedem Thread:m
Identifikation,
Datensegment,
Zustand
-
- 1 / 34
-