| |
|
GUIDES UND TUTORIAL |
|
|
|
|
|
Prozeßkommunikation und -Synchronisation
- Dateien Ein oder mehrere Prozesse schreiben in Dateien, die von anderenProzessen gelesen werden (wenig effizient).
- Pipes (Datenkanäle) Eine Pipe ist ein FIFO-organisierter Speicher,in den ein Prozeß schreibt und aus dem ein anderer Prozeß liest(FIFO = first in, first out). Pipes werden wie Dateien angesprochen, sindjedoch in der Regel als Pufferbereich im Hauptspeicher organisiert (aufDatei muß erst ausgewichen werden, wenn der Puffer überläuft).
- Signale sind Software-Interrupts, die asynchron auftreten.Hauptsächlich zur Kommunikation Benutzerprogramm <--> BS. Auslösungz. B. durch:
- Aktionen des Benutzers (CTRL-C)
- Programmfehler
- durch andere Prozesse Im Prozeß muß explizit festgelegt
werden, welche Aktion auf ein bestimmtes Signal erfolgen soll:
- Ignorieren
- Bearbeiten durch eine Service-Routine
Ist nichts entsprechendes definiert, wird der Prozeß abgebrochen.
- Named Pipes Bei einfachen Pipes gelten zwei Einschränkungen:
- Lebensdauer an die Lebensdauer der beteiligten Prozesse gebunden
- Kommunikation nur für Prozesse mit gemeinsamen Elternprozeß
oder zwischen Eltern- und Kindprozeß
Named Pipes werden als Spezialdateien
angelegt (siehe Dateitypen), die sich wie Gerätedateien verhalten
und beliebig lange leben können. Named Pipes können nur einmal
gelesen werden und natürlich arbeiten sie als FIFO.
- Message Queues dienen dem Austausch von strukturierten Nachrichten über
eine Dienstleistung des BS.
- Semaphore sind Zustandsvariablen als elementarer Mechanismuns zur Synchronisation
von Prozessen.
- Shared Memory ist ein gemeinsamer Datenbereich im Hauptspeicher, der von
zwei Prozessen genutzt werden kann (sehr viel effizienter als Dateien).
|
|
|
|
|
|