IPC Inter Process Communicatoin 2 Flashcards

1
Q

Was sind Message Queues?

A

Message Queues ermöglichen den asynchronen Nachrichtenaustausch zwischen Prozessen, ähnlich wie das Versenden von Mails in einer Mailbox.

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

Wie funktioniert das Senden einer Nachricht in einer Message Queue?

A

Mit der Funktion mq_send() wird eine Nachricht an eine Message Queue gesendet. Die Nachricht wird in der Queue eingereiht.

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

Wie funktioniert das Empfangen einer Nachricht aus einer Message Queue?

A

Mit der Funktion mq_receive() wird die älteste Nachricht mit der höchsten Priorität aus der Message Queue entnommen.

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

Wie werden Message Queues in POSIX erzeugt?

A

Message Queues werden mit mq_open() erzeugt oder geöffnet. Der Name muss mit einem Slash beginnen, gefolgt von einem eindeutigen Namen.

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

Was ist die Priorität einer Nachricht in Message Queues?

A

Jede Nachricht in einer Message Queue hat eine Priorität. Nachrichten mit höheren Prioritäten werden vor Nachrichten mit niedrigeren Prioritäten in die Queue eingeordnet.

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

Was passiert, wenn eine Message Queue voll ist?

A

Wenn eine Message Queue voll ist, blockiert der sendende Prozess, bis Platz in der Queue frei wird.

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

Was ist Shared Memory?

A

Shared Memory ermöglicht es mehreren Prozessen, einen gemeinsamen Speicherbereich zu nutzen, um Daten effizient auszutauschen.

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

Wie wird ein Shared-Memory Segment erstellt?

A

Ein Shared-Memory Segment wird mit der Funktion shm_open() erstellt oder geöffnet. Der Name des Segments muss mit einem Slash beginnen.

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

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

A

Mit der Funktion mmap() wird das Shared-Memory Segment in den virtuellen Adressraum eines Prozesses eingebunden.

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

Wie wird die Größe eines Shared-Memory Segments festgelegt?

A

Die Größe eines Shared-Memory Segments wird mit ftruncate() festgelegt. Die Größe ist immer ein Vielfaches der Seitengröße (meistens 4096 Bytes).

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

Wie funktioniert das Löschen eines Shared-Memory Segments?

A

Mit der Funktion shm_unlink() wird ein Shared-Memory Segment gelöscht. Es wird aus dem Dateisystem entfernt, bleibt aber so lange erhalten, bis alle Prozesse den Deskriptor geschlossen haben.

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

Wie werden Mutexe und Zustandsvariablen in Shared-Memory verwendet?

A

Mutexe und Zustandsvariablen müssen in einem Shared-Memory Segment gespeichert werden, damit mehrere Prozesse sie nutzen können. Das process-shared Attribut muss gesetzt werden.

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

Was ist ein Beispiel für das Schreiben in ein Shared-Memory Segment?

A

Ein Shared-Memory Segment wird mit shm_open() erstellt, die Größe mit ftruncate() festgelegt, und es wird mit mmap() eingebunden. Daten werden dann in den Speicher geschrieben.

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

Was ist ein Beispiel für das Lesen aus einem Shared-Memory Segment?

A

Ein Shared-Memory Segment wird mit shm_open() geöffnet, mit mmap() eingebunden und dann wird der Inhalt des Shared-Memory ausgelesen.

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

Was ist eine Named Semaphore in der Interprozesskommunikation?

A

Eine Named Semaphore ist eine Semaphore, die von mehreren Prozessen genutzt werden kann, um den Zugriff auf gemeinsam genutzte Ressourcen wie Shared Memory zu synchronisieren.

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