il faut écrire sur le disque en cas de pointe de consommation de mémoire.
Et ça va même au-delà : les pages .text (le code du programme) sont, dans la très grande majorité des cas, non-modifiées, donc ce qu'il y a en mémoire est exactement ce qu'il y a sur le disque. Le noyau va donc libérer ces pages lorsqu'il doit trouver de la place, puisqu'il sait pouvoir les récupérer depuis le disque. Ce qui fait que dès qu'un programme va être exécuté, ses pages ne sont peut-être plus en mémoire, et donc le noyau va les recharger depuis le disque, d'où activité du disque. Pire, pour recharger ces pages, il va peut-être devoir en libérer d'autres, d'un autre programme, qui lorsqu'il sera de exécuter à son tour, verra ses pages rechargées depuis le disque. Et ainsi de suite.
Donc, même sans swap, une condition de low memory peut entraîner une forte activité du disque.
Autant dire que les performances du système vont en souffrir grandement...
[^] # Re: Mélange des deux
Posté par ymorin . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 7.
Et ça va même au-delà : les pages
.text(le code du programme) sont, dans la très grande majorité des cas, non-modifiées, donc ce qu'il y a en mémoire est exactement ce qu'il y a sur le disque. Le noyau va donc libérer ces pages lorsqu'il doit trouver de la place, puisqu'il sait pouvoir les récupérer depuis le disque. Ce qui fait que dès qu'un programme va être exécuté, ses pages ne sont peut-être plus en mémoire, et donc le noyau va les recharger depuis le disque, d'où activité du disque. Pire, pour recharger ces pages, il va peut-être devoir en libérer d'autres, d'un autre programme, qui lorsqu'il sera de exécuter à son tour, verra ses pages rechargées depuis le disque. Et ainsi de suite.Donc, même sans swap, une condition de
low memorypeut entraîner une forte activité du disque.Autant dire que les performances du système vont en souffrir grandement...
Hop,
Moi.