Sommaire

Les segments de mémoire partagée

Les segments de mémoire partagée sont le moyen le plus performant pour partager des données entre processus. Une fois créés, ils sont accessibles à tout processus, sous réserve du contrôle d’accès mis en place par le processus créateur du segment de mémoire partagée. Ils sont persistants au niveau noyau, ce qui signifie que leur durée de vie maximale est celle du noyau, ils sont automatiquement supprimés à l’arrêt du système.

Une fois qu’un processus s’est attaché au segment, il peut accéder à la zone de données correspondante, en lecture et/ou en écriture, pour y gérer des variables, comme si elles étaient dans son espace mémoire virtuel.

La zone mémoire partagée est projetée dans l’espace virtuel du processus. Par conséquent, toute modification effectuée par un processus est immédiatement visible des autres processus attachés au segment. C’est la raison pour laquelle, sauf cas particuliers, il faut mettre en place un mécanisme de synchronisation entre les processus pour éviter les problèmes d’accès concurrents (race conditions).

Il existe deux mécanismes de segments de mémoire partagée utilisables avec Linux, ceux d’origine Unix System V et intégrés dans les standards SUS, ceux plus récents ...