Synchronisation + Memory management Flashcards

1
Q

Warum sind kooperierende Prozesse und Threads in der Softwareentwicklung wichtig?

A

ermöglichen die Koordination von Aufgaben und den gemeinsamen Ressourcenzugriff in der Softwareentwicklung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist eine Race Condition und warum ist sie problematisch?

A

tritt auf, wenn das Verhalten eines Systems oder das Ergebnis einer Operation von der zeitlichen Reihenfolge der Abarbeitung abhängt. Dies kann zu inkonsistenten Ergebnissen und unvorhersehbarem Verhalten führen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Welche Mechanismen können verwendet werden, um wechselseitigen Ausschluss zu erreichen?

A
  • Softwarealgorithmen mit atomaren Speicherzugriffen,
  • Dekker-, Peterson-, Lamportscher Bäckerei-Algorithmus,
  • Hardwareunterstützung,
  • Deaktivieren von Interrupts,
  • Hardwareinstruktionen,
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was sind Condition Variables und wie werden sie verwendet, um Race Conditions zu vermeiden?

A

Condition Variables ermöglichen es Threads, auf bestimmte Ereignisse zu warten und diese zu notifizieren. Sie werden in Kombination mit Mutex Locks verwendet, um Race Conditions zu vermeiden und die Koordination zwischen Threads zu ermöglichen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind Semaphoren und wie werden sie zur Synchronisation verwendet?

A

Semaphoren sind Objekte, die einen ganzzahligen Wert enthalten und atomar verändert werden können. Sie werden verwendet, um die Synchronisation zwischen Prozessen oder Threads zu ermöglichen, indem sie auf Wartungsoperationen wie wait() und signal() basieren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie kann das Producer-Consumer-Problem mithilfe von Semaphoren gelöst werden?

A

Sie ermöglichen die Steuerung des Zugriffs auf einen geteilten Puffer und stellen sicher, dass der Producer wartet, wenn der Puffer voll ist, und der Consumer wartet, wenn der Puffer leer ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist ein Deadlock und wie entsteht er?

A

eine Situation, in der zwei oder mehr Prozesse oder Threads nicht weiterarbeiten können, da sie jeweils auf Ressourcen warten, die von anderen gehalten werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie können Deadlocks vermieden werden?

A
  • Hierarchie für den Ressourcenzugriff
  • Timeout-Mechanismen
  • “Resource preemption”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist die Aufgabe des Memory Managements in der Softwareentwicklung?

A

ist verantwortlich für die effiziente Aufteilung von physischem Speicher zwischen den Prozessen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie Prozesse und das Betriebssystem vor unerwünschten Lese- und Schreibzugriffen geschützt werden?

A

Durch Abschottung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Warum ist das Sharing von Speicher zwischen Prozessen wichtig?

A

Das Sharing ermöglicht es Prozessen, denselben Speicher anzusprechen und zu teilen, zum Beispiel für die Kommunikation zwischen den Prozessen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie funktioniert die dynamische Aufteilung des Speichers und welche Platzierungstrategien gibt es?

A

Bei der dynamischen Aufteilung kann die Größe und Position des Speichers dynamisch variieren.

Platzierungstrategien: “First fit”, “Best fit” und “Next fit”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist der Buddy-Allocaation-Algorithmus und wie minimiert er die interne Fragmentierung?

A

teilt den Speicher in Blöcke mit Größen von Zweierpotenzen.

Um die interne Fragmentierung zu minimieren, wird immer der kleinste mögliche Block gewählt.

Wenn kein passender Block vorhanden ist, werden größere Blöcke in jeweils zwei kleinere “Buddies” aufgeteilt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist Paging und welche Vorteile bietet es?

A

physische Speicher in gleich große Frames und jeder Prozess in Pages mit derselben Größe aufgeteilt.
Vorteile:
- schnelle und einfache Zuteilung,
- keine externe Fragmentierung
- ermöglicht weitere Features wie Speicherschutz und Swapping.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welche Auswahlfunktionen werden bei der Page Replacement Policy benötigt?

A
  • die Fetch Policy (wann ein Frame geladen werden soll),
  • das Resident Set (Anzahl der Pages eines Prozesses, die im RAM gehalten werden sollen)
  • und die Entscheidung, welche Page aus dem Speicher entfernt wird, falls notwendig.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welche Page Replacement Policies werden häufig verwendet und welche Vor- und Nachteile haben sie?

A

FIFO (First In First Out): basiert auf der Länge des Speicheraufenthalts

LRU (Least Recently Used): basiert auf der zuletzt genutzten Page.

Clock

17
Q

Wie funktioniert der Clock-Algorithmus in der Page Replacement Policy?

A

verwendet einen Ringpuffer, der alle Pages im Resident Set enthält. Jede Page wird durch ein Bit repräsentiert, das bei jedem Zugriff auf die Page auf 1 gesetzt wird. Bei einem Page Fault iteriert ein Pointer über den Puffer und setzt das Use Bit jeder besuchten Page auf 0. Das erste Frame, dessen Bit bereits 0 ist, wird ausgetauscht.