05_ipc-part2_slides_Z Flashcards

1
Q

Was sind die zwei Hauptarten der Interprozesskommunikation (IPC)?

A

Die zwei Hauptarten der Interprozesskommunikation (IPC) sind nachrichtenbasierte Kommunikation und speicherbasierte Kommunikation.

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

Was sind Message Queues und wofür werden sie verwendet?

A

Message Queues dienen dem asynchronen Nachrichtenaustausch zwischen Prozessen. Sie ermöglichen es mehreren Prozessen, gleichzeitig Nachrichten zu senden und zu empfangen, wobei jede Nachricht nur von einem Prozess empfangen wird.

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

Welche Funktion wird verwendet, um eine Message Queue zu erzeugen oder zu öffnen und welche Parameter sind notwendig?

A

Die Funktion mq_open wird verwendet, um eine Message Queue zu erzeugen oder zu öffnen. Notwendige Parameter sind: - name: Name der Queue, muss mit einem Slash beginnen. - oflag: Flags wie O_CREAT und O_RDWR, die das Verhalten der Queue steuern. - Optional: mode: Berechtigungen, z.B. 0666 für Lese- und Schreibrechte. - Optional: attr: Struktur zur Anpassung der maximalen Nachrichtengröße und Queue-Länge.

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

Wie sendet man eine Nachricht in eine Message Queue und welche Parameter sind dabei erforderlich?

A

Um eine Nachricht in eine Message Queue zu senden, wird die Funktion mq_send verwendet. Erforderliche Parameter sind: - mqdes: Deskriptor der Message Queue. - msg_ptr: Zeiger auf die Nachricht. - msg_len: Länge der Nachricht. - msg_prio: Priorität der Nachricht.

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

Wie empfängt man eine Nachricht aus einer Message Queue und welche Parameter sind dabei erforderlich?

A

Um eine Nachricht aus einer Message Queue zu empfangen, wird die Funktion mq_receive verwendet. Erforderliche Parameter sind: - mqdes: Deskriptor der Message Queue. - msg_ptr: Zeiger auf den Puffer, in den die Nachricht gelesen wird. - msg_len: Größe des Puffers, mindestens so groß wie die maximale Nachrichtengröße. - msg_prio: Zeiger auf eine Variable, in der die Priorität der empfangenen Nachricht gespeichert wird.

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

Welche Funktionen werden verwendet, um eine Message Queue zu schließen und zu löschen?

A

Die Funktion mq_close wird verwendet, um eine Message Queue zu schließen, und mq_unlink, um eine Message Queue zu löschen.

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

Was ist Shared Memory und wie wird es zur Interprozesskommunikation verwendet?

A

Shared Memory (gemeinsamer Speicher) ist ein Bereich im Hauptspeicher, der von mehreren Prozessen gemeinsam genutzt wird. Es ermöglicht eine schnelle Kommunikation, da Daten direkt im Speicher ausgetauscht werden, ohne dass ein Nachrichtenaustausch erforderlich ist.

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

Welche Schritte sind notwendig, um ein Shared-Memory Segment zu erstellen und zu verwenden?

A

Die Schritte zur Erstellung und Verwendung eines Shared-Memory Segments sind: 1. Erzeugen eines Shared-Memory Objekts mit shm_open. 2. Konfigurieren der Größe des Segments mit ftruncate. 3. Einhängen des Segments in den virtuellen Adressraum mit mmap.

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

Welche Funktion wird verwendet, um die Größe eines Shared-Memory Segments zu konfigurieren?

A

Die Funktion ftruncate wird verwendet, um die Größe eines Shared-Memory Segments zu konfigurieren.

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

Wie wird ein Shared-Memory Segment in den virtuellen Adressraum eines Prozesses eingebunden?

A

Ein Shared-Memory Segment wird mit der Funktion mmap in den virtuellen Adressraum eines Prozesses eingebunden.

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

Welche Funktion wird verwendet, um ein Shared-Memory Segment zu löschen?

A

Die Funktion shm_unlink wird verwendet, um ein Shared-Memory Segment zu löschen.

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

Was sind Mutexe und Zustandsvariablen im Kontext von Shared Memory und warum sind sie wichtig?

A

Mutexe (Mutual Exclusion Locks) und Zustandsvariablen (Condition Variables) sind Synchronisationsmechanismen, die im Shared Memory eingesetzt werden, um den Zugriff auf gemeinsam genutzte Ressourcen zu koordinieren und Race Conditions zu vermeiden.

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

Was bedeutet es, dass das process-shared Attribut gesetzt sein muss bei Mutexen und Zustandsvariablen im Shared Memory?

A

Das process-shared Attribut muss gesetzt sein, damit die Mutexe und Zustandsvariablen von mehreren Prozessen, die das Shared Memory nutzen, gemeinsam verwendet werden können. Dies ermöglicht eine korrekte Synchronisation zwischen den Prozessen.

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