Skip to main content

Qu'est-ce que le faux partage?

Le faux partage est une situation qui peut se produire dans un programme informatique lorsque deux applications qui s'exécutent simultanément tentent d'accéder à des informations dans la même région de mémoire logique que chaque programme ou processus a stocké dans son propre cache.Les données du cache de chaque application sont copiées à partir d'une source commune, donc la modification d'un cache fait que l'autre doit être rechargée à partir de la source.Le faux aspect du partage se produit lorsque les modifications apportées à la ligne de cache par un programme n'affectent pas réellement les données que le deuxième programme utilise, auquel cas forçant le cache à être rechargé est un gaspillage de ressources système et peut affecter négativementla performance du programme.Le problème du faux partage est difficile à détecter, car il ne s'agit pas directement d'un code contenu dans les applications, bien qu'il existe des moyens efficaces d'éviter le faux partage, comme le déplacement des données qui sont dans une ligne actuellement mise en cache à une ligne distincte.

L'une des principales raisons pour lesquelles un faux partage peut se produire se trouve dans la façon dont un système d'exploitation ou un matériel gère les données de lecture et d'écriture.Lorsque des informations d'un disque dur ou d'une autre source sont lues ou écrites par un programme, elles sont généralement chargées dans un cache temporaire afin qu'elle puisse être accessible rapidement.La quantité d'informations mises en cache à partir de l'emplacement de la source est appelée ligne de cache et est un bloc de mémoire logique qui peut normalement se situer entre 2 octets et 256 octets de longueur.Dans certains systèmes d'exploitation ou architectures de système, les programmes peuvent s'exécuter en même temps, comme dans le traitement parallèle.Cela signifie qu'il est possible pour deux programmes distincts d'essayer d'accéder aux informations dans la même ligne de cache, de sorte que chaque programme aura sa propre copie des données source, ce qui provoque des modifications dans un cache de ne pas être reflétée dans l'autre cache, invalidant leDonnées qu'il tient.

Il existe un certain nombre de mécanismes utilisés pour gérer la situation lorsque deux programmes tentent d'accéder à la même ligne de cache, mais le résultat est le plus souvent qu'un programme est obligé de recharger son cache avec les informations mises à jour, l'autre programmea modifié.Ce type d'incident est connu sous le nom de faux partage lorsque les données de la ligne de cache auxquelles chaque programme accédent ne sont pas liées, donc forcer un programme à recharger le cache est un gaspillage de puissance de traitement et d'autres ressources.Il s'agit le plus souvent d'un problème pour un programme qui ne modifiera jamais les informations dans son cache, il n'y a donc aucun risque de modification de l'application modifiant que l'autre processus a fait.

Deux façons courantes existent pour empêcher ou atténuer les effets du fauxpartage.La première consiste à ajouter des informations vierges avant ou après les données en mémoire, ce qui les forçait essentiellement à une ligne de cache distincte qui n'est pas accessible par un autre programme.La deuxième méthode consiste à restreindre la fréquence de lecture et d'écriture à la ligne de cache afin qu'elle soit rechargée le moins possible.Des solutions plus complexes impliquent une gestion au niveau du cache ou même des modifications de la façon dont un système d'exploitation gère le partage.