1. NOM▲

shm_overview - Panorama de la mémoire partagée POSIX

2. DESCRIPTION ▲

L'API de mémoire partagée POSIX permet aux processus de communiquer entre eux en partageant une région de la mémoire. Les interfaces utilisées dans l'API sont :

  • shm_open(3)
                   Créer et ouvrir un nouvel objet, ou ouvrir un objet existant. Elle est analogue à open(2). La fonction renvoie un descripteur de fichiers qui pourra être utilisé par les interfaces décrites ci-dessous.
  • ftruncate(2)
        Définir la taille de l'objet en mémoire partagée. (Un objet nouvellement créé en mémoire partagée a une taille nulle.)
  • mmap(2)
        Projeter l'objet en mémoire partagée dans l'espace d'adresses virtuel du processus appelant.
  • munmap(2)
        Déprojeter l'objet en mémoire partagée de l'espace d'adresses virtuel du processus appelant.
  • shm_unlink(3)
        Supprimer le nom d'un objet en mémoire partagée.
  • close(2)
        Fermer le descripteur de fichier alloué avec shm_open(3) lorsqu'on en a plus besoin.
  • fstat(2)
        Obtenir une structure stat décrivant l'objet en mémoire partagée. Parmi les informations renvoyées par cet appel, on trouve la taille de l'objet (st_size), ses permissions (st_mode), son propriétaire (st_uid) et le groupe (st_gid) auquel il appartient.
  • fchown(2)
        Pour modifier l'appartenance d'un objet en mémoire partagée.
  • fchmod(2)
        Pour modifier les permissions d'accès d'un objet en mémoire partagée.

2.1. Versions ▲

La mémoire partagée POSIX est gérée depuis Linux 2.4 et la glibc 2.2.

2.2. Persistance ▲

Les objets en mémoire partagée POSIX ont la persistance du noyau : un objet en mémoire partagée existera jusqu'à ce que le système soit éteint, ou bien jusqu'à ce que tous les processus aient déprojetés l'objet et que celui-ci ait été supprimé avec shm_unlink(3).

2.3. Édition des liens ▲

Les programmes utilisant l'API de mémoire partagée POSIX doit être compilé avec cc -lrt pour le lier à la bibliothèque temps-réel librt.

2.4. Accéder aux objets en mémoire partagée par le système de fichiers ▲

Sous linux, les objets en mémoire partagée sont créés sur un système de fichiers virtuel (tmpfs), généralement monté sur /dev/shm. Depuis le noyau 2.6.19, Linux gère l'utilisation des listes de contrôle d'accès (ACL) pour contrôler les permissions d'accès aux objets du système de fichiers virtuel.

3. CONFORMITÉ ▲

POSIX.1-2001.

4. NOTES ▲

Typiquement, les processus doivent synchroniser leur accès à un objet en mémoire partagée en utilisant, par exemple, les sémaphores POSIX. La mémoire partagée System V (shmget(2), shmop(2), etc.) est une ancienne API de mémoire partagée. La mémoire partagée POSIX offre une interface plus simple et mieux conçue ; d'un autre coté, la mémoire partagée POSIX est moins largement disponible (particulièrement sur d'anciens systèmes) que la mémoire partagée System V.

5. VOIR AUSSI ▲

fchmod(2), fchown(2), fstat(2), ftruncate(2), mmap(2), mprotect(2), munmap(2), shmget(2), shmop(2), shm_open(3), shm_unlink(3), sem_overview(7)

6. COLOPHON ▲

Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

7. TRADUCTION ▲

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Alain Portal <http://manpagesfr.free.fr/> (2008).

Veuillez signaler toute erreur de traduction en écrivant à <>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».