SystemesInformatiques
SystemesInformatiques copied to clipboard
Exercice 3 semaine 12 - clarification?
Dans l'exercice suivant:
Lorsque l'on utilise l'appel système
shmat(2)
_ avecNULL
comme deuxième argument, le système d'exploitation choisit l'adresse à laquelle le segment de mémoire va être attaché. Cela pose des difficultés si l'on veut stocker des pointeurs en mémoire partagée. Un étudiant propose de d'abord allouer la zone mémoire avecmalloc(3)
_ et d'ensuite attacher le segment de mémoire à cet endroit. Il a réalisé un test avec un processus père et son fils et les deux segments de mémoire partagée se retrouvent à la même adresse. Il en conclut que cela permet de résoudre le problème. Qu'en pensez-vous ?
La partie suivante n'est pas claire:
Un étudiant propose de d'abord allouer la zone mémoire avec
malloc(3)
_ et d'ensuite attacher le segment de mémoire à cet endroit.
Quel problème veut-on illustrer? La plupart des étudiants de mon TP avaient compris que la zone mémoire partagée allait shadow la zone mémoire réservée par le malloc(3)_
. Ne voulait-on pas plutôt partager le pointeur retourné par malloc(3)_
dans la zone mémoire partagée pour discuter des problèmes avec les adresses virtuelles entre les processus? Dans ce cas-ci, je propose de modifier après la précédente phrase avec un texte du genre
..la zone mémoire avec
malloc(3)
_ et d'ensuite attacher le segment de mémoire. Il écrit ensuite l'adresse retournée parmalloc(3)_
dans la zone de mémoire partagée attachée.