Bonjour :D
J'ai un peu parcouru le net pour comprendre exactement les raisons pour lesquels les processus unix ne partagent pas de mémoire mais en vain!!!!
Pouvez vous m'éclairer sur ce sujet??
merci d'avance:D
Version imprimable
Bonjour :D
J'ai un peu parcouru le net pour comprendre exactement les raisons pour lesquels les processus unix ne partagent pas de mémoire mais en vain!!!!
Pouvez vous m'éclairer sur ce sujet??
merci d'avance:D
Bonjour,
Je comprends pas trop la question.
Dans quel cas les processus Unix ne partage pas la mémoire.
Vous voulez dire entre deux processus. C'est vrai que par default, entre deux processus on ne partage pas la mémoire ( mémoire vie = RAM ).
Mais on peut le faire ( je sais plus trop comment ) avec des fichiers virtuels, si je me rapelle bien.
Bonjour,
C'est une problématique O.S. (mémoire virtuelle) : chaque processus possède son propre espace d'adressage et ne peut donc avoir accès à l'espace mémoire d'un autre processus. Cela permet entre autre de protéger les processus contre les erreurs/malveillances des autres processus. Il existe des mécanismes pour partager des données entre des processus (la mémoire partagée est un mécanisme parmi d'autres).
Regarde les chapitres consacré à la mémoire virtuelle et aux processus dans les tutos OS disponibles ici.
Sur des OS 32 bits comme Windows ou Unix, les processus sont, par nature, séparés les uns des autres, et ne peuvent pas partager autre chose que des pipes de communication, des objets système (mutex, sémaphores, évènements, ...) ou, bien sûr, de la mémoire partagée.
Si l'on veut faire partager leur mémoire à deux unités d'exécution, la réponse s'appelle un thread. Sous Unix, il n'y a pas toujours de support natif des threads. Toutefois, les Linux récents ont systématiquement une interface PThreads qui permet de créer des threads natifs.