Nuove funzioni di Solaris 10

Miglioramenti alle prestazioni del sistema

In Solaris 10 5/08 sono state aggiunte le seguenti funzioni relative alle prestazioni e i seguenti miglioramenti.

64 bit SPARC: Supporto di MPO (Memory Placement Optimization) per le piattaforme sun4v

La tecnologia MPO (Memory Placement Optimization) permette ai sistemi operativi di allocare memoria locale per il core su cui vengono eseguiti i thread o i processi. L'architettura sun4v viene eseguita in un ambiente hardware virtualizzato. La funzione MPO per le piattaforme sun4v fornisce i metodi di accesso standard richiesti al livello sun4v per fornire informazioni sulla località per il framework MPO generico. Questa funzione è efficace sulle piattaforme in cui sono presenti più socket con latenze diverse nell'accesso alla memoria. La funzione MPO migliora le prestazioni di varie applicazioni consentendo al sistema operativo di allocare la memoria localmente per i nodi.

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.

x86: Riconoscimento della gerarchia della cache basata su CPUID

I moderni processori Intel possiedono un'interfaccia che consente di rilevare le informazioni sulla gerarchia della cache del processore mediante l'istruzione CPUID.