RHJPP (./3976) :
les 5 Go alloués ne l'ont pas été pour faire joli, ils sont utilisés... Alors oui, si le processus parent ne fait rien pendant que son enfant travaille, c'est cool, pas de problème. Mais s'il touche à de la mémoire, celle-ci est recopiée et si c'est une partie que le fils n'utilise pas, elle l'est quand même, pour rien.
Mais non!
1 -> Le pere (la mere, parent1 ou parent2, voir le St Esprit suivant tes choix) alloue 5Go.
2 -> il fait un fork
a) d'une part grace au CoW on ne duplique pas les 5Go
b) une fois le fork effectué les deux processus sont DIFFERENTS donc
- Si le pere change une partie des 5Go le fils n'est pas impacté, ou du moins le fils va dupliquer les pages modifié pour garder les version originales.
- Si le fil nb'a pas besoins des 5Go pour l'allouer avant ? En regle général, on ne fork pas comme ça, en tout cas pas en plein milieux d'un calcul. Au pire, le fil peux faire un free sur les 5Go alloué !
Si le pere modifie ça mémoire ça n'impact pas le fil, et vice-versa. Si tu veux que la mémoire soit partagé il faut faire... des threads et non un fork!