Next: Utilisation des segments de Up: Inter Processus Communications Previous: La primitive de contrôle

Les segments de mémoire partagée

Avec les segments de mémoire partagée, des processus vont partager des pages physiques par l'intermédiaire de leur espace d'adressage. Il n'y aura plus de copie d'information. Cette mémoire partagée devient un espace critique. Il faudra sans doute en protéger les accès avec des sémaphores par exemple...

Un segment de mémoire est indépendant de tout processus. Il peut exister sans qu'aucun processus n'y accède.

Un processus rattachera le segment à son espace d'adressage, puis pourra manipuler cette mémoire de la même façon qu'il peut manipuler sa propre mémoire.

Le fichier <sys/shm.h> :

struct shmid_ds {
     struct ipc_perm  shm_perm;       /* operation permission struct */
     int              shm_segsz;      /* size of segment in bytes */
     struct vas       *shm_vas;       /* virtual address space this entry */
     pid_t            shm_lpid;       /* pid of last shmop */
     pid_t            shm_cpid;       /* pid of creator */
     unsigned short int shm_nattch;   /* current # attached  */
     unsigned short int shm_cnattch;  /* in memory # attached */
     time_t           shm_atime;      /* last shmat time */
     time_t           shm_dtime;      /* last shmdt time */
     time_t           shm_ctime;      /* last change time */
     char             shm_pad[24];    /* room for future expansion */
};





Dominique REVUZ
Mon Feb 2 12:10:31 MET 1998
Une Bug Un mail Merci