? Shared Memory ist ein Weg für die verschiedenen Elemente eines Computersystems , um miteinander durch das Lesen und Schreiben auf dem gleichen Block von RAM kommunizieren. Die Elemente könnten unterschiedliche Ausführungs-Threads innerhalb desselben Programms , verschiedene Programme oder Programme und Hardware- Geräte sein. Systemwide Shared Memory die Norm war in den frühen Tagen der Computer . Moderne geschützten Modus Betriebssystemen wie Linux normalerweise nicht erlauben verschiedene Programme, um einander im Speicher für Sicherheit und Stabilität Gründen zugreifen , sofern nicht besondere Verfahren befolgt werden , um explizit erlauben. History
Alle Speicher wurde immer von allen Programmen in der frühen, "real mode" Betriebssystemen wie DOS geteilt. Jedes Programm lesen und schreiben jedes andere Programm den Speicher jederzeit und ohne Einschränkung . Autoren der DOS - TSR sogenannten " TSR "-Programme dieses Feature verwendet in vielen clevere Möglichkeiten, um zu simulieren Multitasking und erweitern die Funktionalität von anderen Programmen ohne Zugang zum Original-Quellcode . Diese Funktion erlaubt auch Viren sehr leicht ausbreiten angebotenen Programme keine Sicherheit gegen die Kontrolle ihrer Daten durch andere Programme , und machte es leicht, das gesamte System durch einen kleinen Programmierfehler , die versehentlich überschrieben , die Erinnerung an einige andere Prozesse zum Absturz bringen.
Protected Mode
Intel -Ingenieure erkannten die Sicherheit und Stabilität Probleme, die durch systemweite shared memory erstellt , so entwickelten sie " geschützten Modus ", die zuerst auf 80286 Chips erschienen . Geschützte Modus führt das Konzept der "Ringe " oder Privileg Ebenen . Ring 0 Prozesse , für den Kernel des Betriebssystems bestimmt , kann lesen und schreiben jede Erinnerung. Ring 3 Prozesse für normale Programme bestimmt sind, beim Lesen und Schreiben des jeweils anderen Speicher durch die Hardware gestoppt. Der Versuch, so dass die Ergebnisse in einem " Segmentation Fault " Fehler machen und in der Regel endet das betreffende Programm .
Moderne Shared Memory
Geschützte Modus verhindert viele Probleme verursacht durch systemweite Shared Memory im Real-Modus , aber es ist immer noch manchmal wünschenswert für ein Programm in der Lage sein zu lesen und zu schreiben , die Speicher mit einem anderen Programm oder ein Gerät genutzt wird. Betriebssysteme wie Linux, daher zusätzliche Unterstützung für explizit Shared Memory . Programme und Geräte können in den Speicher miteinander , vorbehaltlich bestimmter Einschränkungen zu teilen. Themen der Ausführung innerhalb eines Programms teilen ihre Speicher standardmäßig .
Parallel Computing
Viele Computer mehr als einen CPU-Kern . Programme können sich in verschiedenen " Themen " der Ausführung spalten kann , von denen jede in der gleichen Zeit ausführen , zur Beschleunigung der gesamten Vorgänge auf einige Daten erforderlich. Sie müssen oft auf die gleichen Daten gleichzeitig arbeiten oder ihren Zustand zu kommunizieren miteinander , und Shared Memory ist ein beliebter Weg, um dies zu tun.
Dynamische Bibliotheken
Gemeinhin verwendet dynamische Bibliotheken wie libc sind in der Regel von vielen verschiedenen Programmen geladen. Da das Objekt -Code in dieser Bibliotheken wird üblicherweise in einem Nur-Lese- Weg von Programmen verwendet wird, können signifikante Einsparungen Speicher mit gemeinsamen Speicher erreicht werden. Die dynamische Bibliothek kann nur einmal durch das Betriebssystem geladen werden und gemeinsam auf eine beliebige Anzahl von Programmen , verringern die allgemeine Speicherauslastung .