Neuerungen im Betriebssystem Solaris 10

SPARC: Unterstützung für gemeinsam genutzte Kontexte

Der Kontextmechanismus, der von der Hardware des Speicherverwaltungsmoduls zur Unterscheidung gleicher virtueller Adressen in verschiedenen Prozessaddressräumen genutzt wird, kann bei der Verwendung von gemeinsam genutztem Speicher Ineffektivitäten verursachen. Diese Ineffektiviäten werden hervorgerufen, da die Daten an einer bestimmten Adresse des gemeinsam genutzten Speicher identisch sind, die Kontextnummern der jeweiligen zugehörigen Prozesse aber unterschiedlich sind. Deswegen kann die MMU-Hardware keine Übereinstimmung erkennen. Das hat zur Folge, dass Zuweisungen unnötigerweise aus dem Umsetzungs-Cache des Speicherverwaltungsmoduls (Translation Lookaside Buffer, TLB) gelöscht und durch identische Zuweisungen mit einer unterschiedlichen Kontextnummer ersetzt werden.

Das Niagara 2-System besitzt einen zusätzlichen Kontext zur gemeinsamen Nutzung. Dabei handelt es sich um eine Hardwarefunktion, die zum Vermeiden dieser Ineffektivitäten bei der Verwaltung von gemeinsam genutztem Speicher verwendet werden kann. Beim Durchsuchen des TLB nach Zuweisungen lösen identische Daten im privaten oder gemeinsamen Kontext einen sog. „TLB-Hit“ aus. Die gegenwärtige Software-Unterstützung für gemeinsam genutzte Kontexte aktiviert dieses Leistungsmerkmal für Prozesse, die den sog. Dynamic Intimate Shared Memory (DISM) verwenden. In diesem Fall verwenden das Prozesstextsegment und die DISM-Segmente, die für jeden Prozess mit den gleichen Berechtigungen den gleichen virtuellen Adressen zugewiesen sind, den jeweiligen gemeinsam genutzten Kontext.