ZHAW BSY Kap6
zhaw
zhaw
-
- 1 / 23
-
Cartes-fiches
Nennen und diskutieren Sie Gru ̈nde, wieso mehrere Tasks gemeinsam eine Aufgabe lo ̈sen sollen.
Parallelverrabeitung: Leistungssteigerung, Benutzerfreundlichkeit: Print-Spooling, gleichzeitig mehrere Aufgaben l ̈osen, Informationsaustausch, etc.
Was ist der Unterschied zwischen Interprozesskommunikation und Synchronisation?
Interprozesskommunikation: Austausch von Daten,
Synchronisation: Austausch von Kontrollinformation.
Erlklären und und diskutieren Sie eine moögliche Klassifizierung der Kommunikationsmodelle.
• Messages
- Austausch von Nachrichten
- innerhalb eines Systems oder in verteilten Systemen - Betriebssystemstellt Zugriffsfunktionen (send, receive) zur Verfügung, oft auch Mailbox
Synchronisation durch Zugriffsfunktionen
- Anwender verantwortlich für verpacken der Daten in Nachrichten - Beispiel: Message Queues, etc.• Shared Objects (shared memeory)
- shared memory, (shared) files, etc.
- meist innerhalb eines Systems (Ausnahme: distributed shared memory)) - Betriebssystem: stellt gemeinsamen Speicherbereich zu Verfügung
- Anwender verantwortlich für Datenstrukturierung und Synchronisation
- Beispiel: shared memory, memory mapped files, etc.• Object Streams
- oft Sequenz von Bytes (ein bis mehrere Bytes lesen und/oder schreiben) - innerhalb eines Systems oder zwischen verteilten Systemen
- Betriebssystem: stellt FIFO Queue zur Verfügungsynchronisierter Zugriff auf "beide Enden"
- Anwender verantwortlich für Datenstrukturierung - Beispiele: Pipes, Sockets, etc.• Behandeln Messages vertieft, Shared Objects und Object Stream an Beispielen
Erklären und diskutieren Sie im Zusammenhang mit Message Passing die Begriffe asynchrone Kommunikation, synchrone Kommunikation und Rendez-Vous.
Asynchron: Sender und Empf ̈anger blockieren nicht,
Synchron: Sender oder Empf ̈anger blockiert,
Rendez-Vous: Sender und Empf ̈anger blockieren.
Wie sind Messages (Nachrichten) grundsätzlich aufgebaut?
Header und Daten,
Header: Sender, Empf ̈anger, Steuerinformation, Typ, L ̈ange.
Welche Mo ̈glichkeiten fu ̈r die indirekte Adressierung gibt es bei Message Passing? Was ist der Unterschied zwischen Port und Mailbox? Wer ist Besitzer einer Mailbox oder eines Ports?
one to one, one to many, many to one, many to many, Port: X to one, Mailbox: X to many.
Port geh ̈ort i.d.R. dem Empf ̈anger, Mailboxes oft dem Betriebssystem.
Erklären und diskutiere Sie, wie unter Unix/Linux eine Posix Message Queue aufgesetzt wird
und wie der Kernel die Queues verwaltet.
Message queue descriptor mit mq open() und Namen erzeugen, der Kernel fu ̈hrt Tabelle mit queue-Eintr ̈agen, Verwaltung wie bei File Systemen.
Wie kann mit Hilfe von Message Passing ein Mutex realisiert werden? Diskutieren Sie diese Mo ̈glichkeit.
Alle involvierten Prozesse kommunizieren mit einer Mailbox, in der nur eine Meldung, das Synchronisationstoken abgelegt wird: der Besitzer des Token hat Zugriff auf die gemeinsamen Daten, muss nach Nutzung zuru ̈ckgelegt werden.
Wie werden Posix Interprozesskommunktions-Ressourcen unter Unix/Liunx verwaltet? Erklären Sie wie eine solche Ressource grundsätzlich erzeugt werden kann und wie andere Prozesse Zugang erhalten.
Verwaltung über ein virtuelles File System, angelegt in /dev, andere Prozessen öffnen Ressourcen über Namen.
Erklären und diskutieren Sie, wie unter Unix/Linux ein Shared Memory aufgesetzt wird und wie der Kernel die Shared Memory Region verwaltet (Posix).
Was sind Signale unter Unix/Linux? Wie können sie abgefangen werden? Wie reagiert ein Prozess auf ein Signal, für das er keinen Handler installiert hat?
Signale verhalten sich wie Interrupts und rufen Handler auf, Verarbeitung aber erst nach einem Rescheduling des Prozesses.
- Wenn der Prozess keine spezielle Aktion für den Umgang mit Signalen vorgesehen hat, wird die Standardaktion für das Signal ausgeführt - diese Aktion wird normalerweise den Prozess beenden.
Der Prozess kann das Signal ignorieren. Wenn ein Prozess ein Signal ignoriert, hat die Auslieferung des Signales keinen Einfluss auf den Prozess (beachten Sie, dass die SIGCONT, SIGKILL und SIGSTOP Signale unter normalen Umständen nicht ignoriert werden können).
Was ist eine Pipe? Wie wird sie eingerichtet? Erklären Sie die Zugriffssemantik. Was ist eine Named Pipe ?
Pipe: ein Fifo Buffer → byte stream, wird oft zwischen verwandten Prozessen verwendet (wird bei fork() vererbt).
Named Pipe: Pipe mit Namen, die zwischen nicht verwandten Prozessen aufgebaut werden kann (u ̈ber den Namen).
Was sind Sockets und welche zwei grundlegenden Typen gibt es? Wenn ein Socket eingerichtet ist, wie kann der Anwender auf den Socket zugreifen?
Kommunikations-Schnittstelle zwischen vernetzten Rechnern. Typen: TCP/IP und IPC Socket
Die Kommunikation über diese Sockets ist die im POSIX-Standard standardisierte Methode zur Interprozesskommunikation für Unix-ähnliche Systeme. Entsprechend der Unix-Philosophie („alles ist eine Datei“) sind Sockets über eine Inode im Dateisystem adressierbar und werden mit denselben Befehlen angesprochen wie gewöhnliche Dateien. Um zu kommunizieren, öffnen zwei Prozesse denselben Socket. Die Daten fließen als Bytestrom über Pufferspeicherim Speicher des Kernels. Neben Daten können über die Socketverbindungen mit den Systemaufrufen sendmsg() und recvmsg()auch Datei-Handles übertragen werden.
Zählen Sie verschiedenste Interprozesskommunkationsmechanismen unter Unix/Linux und Win- doof auf. Wo liegen die wesentlichen Unterschiede?
Pipes, Shared Memory, Message Queues, Winsocks, RPC, etc.,
sehr ähnliche Semantik, Aufsetzen → File Handle”, meist viele Parameter.
Fänch here:
Unterschied Linux / Windows: Die Verfahren sind alle ähnlich, nur tragen sie auf Windows andere Namen. zB Mailslots für Message Queue oder Winsock Sockets
Zugriff funktioniert immer über Handle (File Handle) diesem muss man viele Parameter mitgeben
Zwei Prozesse (P1 und P2) sollen in folgender Reihenfolge ausgeführt werden:
P1 →P1 →P2 →P1 →P1 →P2...
Für die Sysnchronisation der beiden Prozesse stehen zwei Counting Semaphore S1 und S2 zur Verfügung. Wie müssen die beiden Semaphore initialisiert werden? Schreiben Sie Pseudocode (down(Sx), up(Sx)) mit dem obige Reihenfolge erzeugt werden kann.
Den Begriff Interprozesskommunikation erklären und diskutieren
Frage. Wieso nicht über globale Daten (Variablen) lösen ?
Message Passing erklären und diskutieren
Message passing refers to a means of communication between
- different threads within a process
- different processes running on the same node
- different processes running on different nodes
When messages are passed between two different processes we speak of inter-process communication, or IPC.
Message passing can be used as a more process-oriented approach to synchronization than the "data-oriented" approaches used in providing mutual exclusion for shared resources.
The two main dimensions
- Synchronous vs. asynchronous
- Symmetric or asymmetric process/thread naming
Shared Memory erklären und diskutieren
Bereich des physikalischen Speichers wird in den (virtuellen) Addressraum der Prozesse abgebildet
Shared Memory vs. Message Passing
Message passing models (Erlang, for example) do not have any shared state; all synchronization and communication is done by exchanging messages. Shared memory models communicate by reading/writing to shared memory blocks, which are protected by semaphores or similar.
- In shared memory model, memory is shared by cooperating processes, which can exchange information by reading and writing data but in message passing communication takes place by means of messages exchanged between the cooperating processes.
- Shared memory helps run processes concurrently but message passing cannot.
- Message passing facility has two operations: send (message) and receive (message). The process of which has fixed or variable size.
- Message passing is useful for exchanging smaller amounts of data, because no conflicts need be avoided. Message passing is also easier to implement than is shared memory for interprocess communication.
- In shared-memory systems, system calls are required only to establish shared-memory regions. Once shared memory is established, all accesses are treated as routine memory accesses, and no assistance from the kernel is required.
Vorlesung:
Shared Memory
• muss bei Betriebssystem angefordert werden • keine implizite Synchronisation
- Synchronisation z.B. mit Semaphoren
• Zugriff sehr schnell: Speicherzugriff
• nur in Shared Memory Systemen verfügbar
Message Passing
• Mailbox muss bei Betriebssystem angefordert werden • implizite Synchronisation
- einfach zu handhaben
• langsamer als Shared Memory
• auch in verteilten Umgebungen verfügbar
Unix/Linux IPC Mechanismen aufzählen, erklären, diskutieren
Interprozesskommunikation
- IPC Ressourcen
- Shared Memory
- Message Queues
- Funktionalität
- Implementation • Signale
- Pipes
- Sockets
- Shared Files / Memory Mapped Files
Synchronisation
- Semaphore
- (Lock Files)
Implementationsaspekte anhand der Unix/Linux IPC Mechanismen erklären und diskutieren
???