Concurrency an der Universität Duisburg-Essen | Karteikarten & Zusammenfassungen

Lernmaterialien für Concurrency an der Universität Duisburg-Essen

Greife auf kostenlose Karteikarten, Zusammenfassungen, Übungsaufgaben und Altklausuren für deinen Concurrency Kurs an der Universität Duisburg-Essen zu.

TESTE DEIN WISSEN
Was ist Concurrency?
Lösung anzeigen
TESTE DEIN WISSEN
Zwei oder mehrere Events laufen SCHEINBAR parallel

Concurrency im Alltag:
Multitasking: Schedular im Betriebssystem, Input/ Output, Multithreading
mehrere Rechner: verteilte Systeme, spezieller Prozessor, Multiprozessorsysteme

Herausforderung von nebenläufige Programmierung: Synchronisation und Kommunikation von Prozessen
Lösung ausblenden
TESTE DEIN WISSEN
Unterschied zwischen paralleler und nebenläufiger Ausführung
Lösung anzeigen
TESTE DEIN WISSEN
Parallel: Programme werden auf mehrere Prozessoren verteilt

nebenläufig: ein Prozessor, der zwischen den Programmen dynamisch wechselt
Lösung ausblenden
TESTE DEIN WISSEN
Was ist ein nebenläufiges Programm?
Lösung anzeigen
TESTE DEIN WISSEN
Endliche Menge von sequentiellen Prozessen

Abarbeitung von atomaren Anweisungen
Anweisungen beliebig verschachtelt
Ausführung ist Resultat einer möglichen Durchführung —> Szenario

führt nur manchmal zum erwartenden Resultat
—> Programmierfehler schwer reproduzierbar
—> Debuggen schwer
Lösung ausblenden
TESTE DEIN WISSEN
Was ist Fairness?
Lösung anzeigen
TESTE DEIN WISSEN
Atomare Anweisungen, welche kontinuierlich in einem Prozess aktiviert ist, nach endlichen Schritten ausgeführt werden

wird im Betriebssystem definiert

keine Voraussetzung für Scheduling
Lösung ausblenden
TESTE DEIN WISSEN
Safety und Liveness
Lösung anzeigen
TESTE DEIN WISSEN
Safety: Eigenschaft, die immer erfüllt sein muss —> Niemals ist etwas „Schlechtes“ erfüllt

Liveness: Eigenschaft, die nach endlichen Schritten erfüllt wird und sollte für alle Kombinationen gelten —> etwas gutes trifft ein

Achtung: wenn Liveness nicht erfüllt ist, dass muss Safety NICHT automatisch erfüllt sein
Lösung ausblenden
TESTE DEIN WISSEN
Was ist der kritische Abschnitt?
Lösung anzeigen
TESTE DEIN WISSEN
Mehrere Prozesse greifen auf eine gemeinsame geteilte Ressource zu

Ressourcen, die im Initialisierungscode oder im Abschlusscode verwendet werden, dürfen weder im kritischen noch im nicht-kritischen Abschnitt verändert werden
Lösung ausblenden
TESTE DEIN WISSEN
Kriterien für den kritischen Abschnitt
Lösung anzeigen
TESTE DEIN WISSEN
Mutual Exclusion: Niemals mehr als ein Prozess gleichzeitig im kritischen Abschnitt —> Safety- Eigenschaft

Freedom from Deadlock: wenn ein oder mehr Prozesse in kritischen Bereich eintreten wollen, dann muss einer der Prozess in den kritischen Abschnitt eintreten —> Liveness- Eigenschaft

Freedomm from Starvation: wenn ein Prozess in den kritischen Abschnitt eintreten will, muss genau dieser Prozess nach endlichen Schritten in den kritischen Abschnitt eintreten —> Liveness-Eigenschaft
Lösung ausblenden
TESTE DEIN WISSEN
Procuder-Consumer-Problem
Lösung anzeigen
TESTE DEIN WISSEN
Procuder erzeugen Daten und leiten Daten an Consumer weiter (produce)

Consumer verarbeiten Daten, welche von den Producern erzeugt werden (consume)

Erzeuger führt die Anweisung appen, um ein Datenelement an Ende der Queue/ des Buffers anzuhängen

Verbraucher nutzen Anweisung take, um am Anfang der Queue ein Datenelement herauszunehmen

Leerer Speicher: Verbrauch können KEIN ELEMENT aus dem leeren Speicher entnehmen

Voller Speicher: Erzeuger kann KEIN ELEMENT an einen vollen Buffer anhängen
Lösung ausblenden
TESTE DEIN WISSEN
Condition Variablen Warteschlangen
Lösung anzeigen
TESTE DEIN WISSEN
4 Warteschlangen
—> Condition Queue: blockierte Prozesse, die eine waitC-Anweisung ausgeführt haben
—>Wait-Queue (W): wenn signalC ausgeführt wird, kommt der dadurch entlocktest Prozess in die Wait-Queue
—> Signal-Queue (S): Prozess, der signalC ausführt
—> Entry-Qübe (E): Prozess, der in den Monitor eintreten will

Prioritäten
—> E hat höhere Priorität als W oder S
—> E=W<S
—>E<S<W
Lösung ausblenden
TESTE DEIN WISSEN
Fehlertypen Konsens
Lösung anzeigen
TESTE DEIN WISSEN
1. Crash Failures —>zu einem beliebigem Zeitpunkt stoppt ein betrügerischer General Nachrichten zu verschicken

2. Byzantinischer Fehler —> Ein betrügerischer General sendet beliebige Nachrichten
Lösung ausblenden
TESTE DEIN WISSEN
Rust- Grundlagen
Lösung anzeigen
TESTE DEIN WISSEN
Datentypen:
—> Wahrheitswerte Bool
—> Ganze Zahlen mit Vorzeichen i8, i16, i32, i64, i128
—> Ganze Zahlen ohne Vorzeichen u8, u16, u32, u64, u128
–> Fließkommazahlen f32, f64
–> Zeichenkette str
—> String
—> Vec

Operatoren
—> Mathematisch
—> Logisch

Verzweigung
if Bedingung {
//code}
else in Bedingung2 {
//code}
Else {code}

Schleifen
- for a in b {//code}
- while Bedingung {//code}

Lösung ausblenden
TESTE DEIN WISSEN
Rust- Ownership
Lösung anzeigen
TESTE DEIN WISSEN
Wichtiges Konzept
—> memory safety
—> concurrency

jeder Wert gehört zu einer Variable —> Owner

Es gibt nur EINEN BESITZER gleichzeitig
Lösung ausblenden
  • 107115 Karteikarten
  • 3127 Studierende
  • 47 Lernmaterialien

Beispielhafte Karteikarten für deinen Concurrency Kurs an der Universität Duisburg-Essen - von Kommilitonen auf StudySmarter erstellt!

Q:
Was ist Concurrency?
A:
Zwei oder mehrere Events laufen SCHEINBAR parallel

Concurrency im Alltag:
Multitasking: Schedular im Betriebssystem, Input/ Output, Multithreading
mehrere Rechner: verteilte Systeme, spezieller Prozessor, Multiprozessorsysteme

Herausforderung von nebenläufige Programmierung: Synchronisation und Kommunikation von Prozessen
Q:
Unterschied zwischen paralleler und nebenläufiger Ausführung
A:
Parallel: Programme werden auf mehrere Prozessoren verteilt

nebenläufig: ein Prozessor, der zwischen den Programmen dynamisch wechselt
Q:
Was ist ein nebenläufiges Programm?
A:
Endliche Menge von sequentiellen Prozessen

Abarbeitung von atomaren Anweisungen
Anweisungen beliebig verschachtelt
Ausführung ist Resultat einer möglichen Durchführung —> Szenario

führt nur manchmal zum erwartenden Resultat
—> Programmierfehler schwer reproduzierbar
—> Debuggen schwer
Q:
Was ist Fairness?
A:
Atomare Anweisungen, welche kontinuierlich in einem Prozess aktiviert ist, nach endlichen Schritten ausgeführt werden

wird im Betriebssystem definiert

keine Voraussetzung für Scheduling
Q:
Safety und Liveness
A:
Safety: Eigenschaft, die immer erfüllt sein muss —> Niemals ist etwas „Schlechtes“ erfüllt

Liveness: Eigenschaft, die nach endlichen Schritten erfüllt wird und sollte für alle Kombinationen gelten —> etwas gutes trifft ein

Achtung: wenn Liveness nicht erfüllt ist, dass muss Safety NICHT automatisch erfüllt sein
Mehr Karteikarten anzeigen
Q:
Was ist der kritische Abschnitt?
A:
Mehrere Prozesse greifen auf eine gemeinsame geteilte Ressource zu

Ressourcen, die im Initialisierungscode oder im Abschlusscode verwendet werden, dürfen weder im kritischen noch im nicht-kritischen Abschnitt verändert werden
Q:
Kriterien für den kritischen Abschnitt
A:
Mutual Exclusion: Niemals mehr als ein Prozess gleichzeitig im kritischen Abschnitt —> Safety- Eigenschaft

Freedom from Deadlock: wenn ein oder mehr Prozesse in kritischen Bereich eintreten wollen, dann muss einer der Prozess in den kritischen Abschnitt eintreten —> Liveness- Eigenschaft

Freedomm from Starvation: wenn ein Prozess in den kritischen Abschnitt eintreten will, muss genau dieser Prozess nach endlichen Schritten in den kritischen Abschnitt eintreten —> Liveness-Eigenschaft
Q:
Procuder-Consumer-Problem
A:
Procuder erzeugen Daten und leiten Daten an Consumer weiter (produce)

Consumer verarbeiten Daten, welche von den Producern erzeugt werden (consume)

Erzeuger führt die Anweisung appen, um ein Datenelement an Ende der Queue/ des Buffers anzuhängen

Verbraucher nutzen Anweisung take, um am Anfang der Queue ein Datenelement herauszunehmen

Leerer Speicher: Verbrauch können KEIN ELEMENT aus dem leeren Speicher entnehmen

Voller Speicher: Erzeuger kann KEIN ELEMENT an einen vollen Buffer anhängen
Q:
Condition Variablen Warteschlangen
A:
4 Warteschlangen
—> Condition Queue: blockierte Prozesse, die eine waitC-Anweisung ausgeführt haben
—>Wait-Queue (W): wenn signalC ausgeführt wird, kommt der dadurch entlocktest Prozess in die Wait-Queue
—> Signal-Queue (S): Prozess, der signalC ausführt
—> Entry-Qübe (E): Prozess, der in den Monitor eintreten will

Prioritäten
—> E hat höhere Priorität als W oder S
—> E=W<S
—>E<S<W
Q:
Fehlertypen Konsens
A:
1. Crash Failures —>zu einem beliebigem Zeitpunkt stoppt ein betrügerischer General Nachrichten zu verschicken

2. Byzantinischer Fehler —> Ein betrügerischer General sendet beliebige Nachrichten
Q:
Rust- Grundlagen
A:
Datentypen:
—> Wahrheitswerte Bool
—> Ganze Zahlen mit Vorzeichen i8, i16, i32, i64, i128
—> Ganze Zahlen ohne Vorzeichen u8, u16, u32, u64, u128
–> Fließkommazahlen f32, f64
–> Zeichenkette str
—> String
—> Vec

Operatoren
—> Mathematisch
—> Logisch

Verzweigung
if Bedingung {
//code}
else in Bedingung2 {
//code}
Else {code}

Schleifen
- for a in b {//code}
- while Bedingung {//code}

Q:
Rust- Ownership
A:
Wichtiges Konzept
—> memory safety
—> concurrency

jeder Wert gehört zu einer Variable —> Owner

Es gibt nur EINEN BESITZER gleichzeitig
Concurrency

Erstelle und finde Lernmaterialien auf StudySmarter.

Greife kostenlos auf tausende geteilte Karteikarten, Zusammenfassungen, Altklausuren und mehr zu.

Jetzt loslegen

Die all-in-one Lernapp für Studierende

Greife auf Millionen geteilter Lernmaterialien der StudySmarter Community zu
Kostenlos anmelden Concurrency
Erstelle Karteikarten und Zusammenfassungen mit den StudySmarter Tools
Kostenlos loslegen Concurrency