• [^] # Re: Juste une question

    Posté par . En réponse à la dépêche Nouvelle version 2.6.33 du noyau Linux. Évalué à 1.

    Lorsque tu alloues de la memoire, tu obtiens un pointeur sur de la memoire _virtuelle_. Si le system re-ordonne les blocks _vituels_ pout obtenir des block contigus, alors tes pointeurs deviennent faux! Et tu n'as aucun moyen de le savoir!

    Par contre, le re-ordonnancement des blocks physiques est possible (sauf certains cas) puisque la MMU est la pour ca : translation adresse virtuelle -> adresse physique. Et ca, ca peut changer sans probleme. D'ailleurs, ca arrive tout le temps!

    Exemple :
    - ton appli alloue un bloc de memoire : elle obtient de la memoire virtuelle, et une correspondance avec de la memoire physique est etablie a travers la MMU (grosso modo, hein!)
    - ton appli est preemptee par une autre appli, qui a besoin de memoire
    - le block precedent est mis en 'swap'
    - ton appli est a nouveau schedullee et a besoin de son block
    - le systeme reprend le block ; son adresse virtuelle n'a pas change, mais rien ne garantit qu'il soit au meme endroit en memoire physique

    Hop, voila.