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> ».