Nuove funzioni di Solaris 10

SPARC: Supporto dei contesti condivisi

Il meccanismo dei contesti, utilizzato dalla MMU (Memory Management Unit) hardware per distinguere tra l'utilizzo dello stesso indirizzo virtuale in diversi spazi di indirizzamento dei processi, presenta alcune inefficienze quando si utilizza la memoria condivisa. Tali inefficienze si verificano in quanto i dati presenti in un determinato indirizzo di memoria condivisa per diversi processi possono di fatto essere identici, ma il numero di contesto associato a ciascun processo è differente. Di conseguenza, la MMU non è in grado di riconoscere che i dati sono uguali. A causa di questa condizione i dati vengono inutilmente eliminati dalla cache di traduzione della MMU e dal TLB (Translation Lookaside Buffer), per essere sostituiti con mappature esattamente identiche ma con un numero di contesto differente.

L'hardware del sistema Niagara 2 è dotato di un contesto condiviso supplementare che consente di prevenire questo tipo di inefficienze nella gestione della memoria condivisa. Quando viene eseguita la ricerca nel TLB per individuare una corrispondenza nel contesto privato o condiviso, il sistema è in grado di identificare correttamente la corrispondenza. Attualmente, il supporto software per il contesto condiviso attiva questa caratteristica per i processi che utilizzano la memoria DISM (Dynamic Intimate Shared Memory). In questo caso, il segmento testo del processo e i segmenti DISM mappati sullo stesso indirizzo virtuale e dotati delle stesse autorizzazioni per ciascun processo, utilizzeranno il contesto condiviso.