Linker, Loader und ausführbare Formate
Wie wird der physische Speicher genutzt, wenn 100 Prozesse dieselbe Shared Library verwenden?
- ASeiten mit unveränderlichem Code teilen sich eine Kopie, Seiten mit beschreibbaren Daten hat jeder Prozess für sich
- BSowohl Code als auch Daten liegen pro Prozess in 100 Kopien vor
- CAlles einschließlich der Datenseiten wird gemeinsam genutzt, sodass die Prozesse gegenseitig ihre Werte sehen
Antwort und Erläuterung anzeigen
Antwort: A. Seiten mit unveränderlichem Code teilen sich eine Kopie, Seiten mit beschreibbaren Daten hat jeder Prozess für sich
Das Betriebssystem bildet die Shared Library in den virtuellen Adressraum jedes Prozesses ab, und Seiten mit unveränderlichem Code und Konstanten verweisen auf dieselben physischen Seiten. Seiten mit beschreibbaren Daten wie Variablen werden pro Prozess getrennt gehalten, indem z. B. beim ersten Schreiben eine Kopie angelegt wird (Copy-on-Write). So genügt für den Code der Bibliothek auch bei 100 Prozessen ein einziger Speicherbereich.