Nouveautés de Solaris 10

SPARC : prise en charge des contextes partagés

Le mécanisme de contexte, utilisé par l'unité de gestion de la mémoire (MMU) pour distinguer l'utilisation de la même adresse virtuelle dans différents espaces d'adressage de processus, n'est pas toujours efficace lorsque vous avez recours à de la mémoire partagée. En effet, les données correspondant à une mémoire partagée particulière et l'adresse dans différents processus peuvent être identiques, bien que le numéro de contexte associé à chaque processus ne soit pas le même. Par conséquent, le matériel MMU ne peut pas effectuer la correspondance. Certaines correspondances seront ainsi inutilement évincées du cache de translation MMU et du TLB (Translation Lookaside Buffer, tampon de détection aparté de conversion) et remplacées par des correspondances identiques avec un numéro de contexte différent.

Le système Niagara 2 offre un contexte partagé supplémentaire, c'est-à-dire une fonction matérielle permettant d'améliorer la gestion de la mémoire partagée. Lors d'une recherche d'une correspondance dans le tampon TLB dans le contexte privé ou le contexte partagé, un résultat TLB est obtenu. La prise en charge logicielle actuelle du contexte partagé active cette fonctionnalité pour les processus faisant appel à la mémoire DISM (Dynamic Intimate Shared Memory). Dans ce cas, le segment de texte du processus et les segments DISM mappés à la même adresse virtuelle avec les mêmes autorisations pour chaque processus exploiteront le contexte partagé.