Version [22458]
Dies ist eine alte Version von BSys05Kommunikation erstellt von RonnyGertler am 2013-03-26 19:04:53.
Betriebssysteme (Betriebssystemtheorie) - Kapitel 5 - Kommunikation
Inhalte von Dr. E. Nadobnyh
Definition und Überblick
Eine Kommunikation ist ein expliziter Datenaustausch zwischen kooperierenden Prozessen.
Kommunikation und Synchronisation
Eine Synchronisation ist eine Koordination von Prozessen im zeitlichen Ablauf oder beim Ressourcen-Zugriff.
1) Bei der Kommunikation über gemeinsame Speicherobjekte (speicherbasierte Kommunikation) greifen Prozesse direkt auf
die Speicherobjekte (Speicher, Dateien) und deswegen brauchen Prozesse für die Synchronisation zusätzliche Mittel, z.B.
Semaphoren.
2) Beim Nachrichtenaustausch (nachrichtenbasierte Kommunikation) rufen Prozesse Systemfunktionen auf und werden vom Betriebssystem automatisch synchronisiert.
5.1. Shared Memory
Definition und Eigenschaften
Shared Memory ist ein Hauptspeicherbereich, der:
- mittels der Systemaufrufe eingerichtet wird,
- für mehrere Prozesse sichtbar ist.
Eigenschaften:
- Der eigentliche Datenaustausch kann ohne weitere Systemhilfe durchgeführt werden.
- Ein gegenseitiger Ausschluss ist nicht garantiert.
- Der gemeinsame Speicher wird als eine speicherbasierte Datei gestaltet.
Eine Speicherbasierte Datei (Pseudodatei, memory mapped file, MMF) ist eine Abbildung einer ganzen Datei oder ihren Teil im Hauptspeicher. Daher können Dateiinhalte durch den üblichen Zeiger effizient gelesen und gespeichert werden.
Typische Systemaufrufe
Schritte | Windows | Unix |
Schritte |
CreateFileMapping(...); CloseHandle(...); |
shm_open(...); shm_unlink(...); |
Einblenden und Ausblenden |
... p =MapViewOfFile(...); //p-Pointer UnmapViewOfFile(...); |
... p =mmap(...); close(...); |
Speicher- Zugriff durch Zeiger | *p=...; | *p=...; |
CategoryBSys