La Gestion Mémoire

Après la première partie de notre dossier consacrée essentiellement à l'interface graphique de Windows Vista, et la seconde partie dédiée au système et au noyau NT6, voici la troisième consacrée à la gestion de la mémoire.


Windows Vista bénéficiant du nouveau noyau NT6, il était plus que normal que Microsoft révise sa copie concernant la gestion des ressources, et plus particulièrement du système mémoire.

Avant d’aller plus loin, rappelons que le noyau NT5 (Windows 2k/XP) utilise des algorithmes permettant de diviser la mémoire disponible du PC en de petites zones statiques, également appelées pages. En cas de changement dans la configuration PC (installation pilote, modification de la base des registres, etc.), il fallait alors redémarrer le PC afin que le noyau NT5 puisse réorganiser les plages mémoire distribuées. Notons au passage qu’il suffit qu’une application accède à une zone mémoire ne lui étant pas allouée, pour provoquer une erreur de pagination. Ce qui peut entraîner un plantage système. Sans oublier que le système de communication inter processus est également très compliqué et couteux en ressources.

Avec le noyau NT6, la mémoire vive disponible n’est plus divisée de façon statique, mais dynamiquement. Le premier avantage est que Windows Vista n’est plus limité par la taille fixe des pages, ce qui permet au noyau NT6 de reconfigurer en temps réel ces pages en fonction des besoins. Pour simplifier, le noyau NT6 bascule les pages en cours d’utilisation en mode de lecture seule (pour éviter que ces pages ne soient corrompues), et réorganise uniquement l’espace mémoire disponible pour attribuer de nouvelles pages en fonction des besoins des différents composants du système (la taille des pages est adaptée aux besoins). Ce qui permet de ne pas se retrouver avec de l’espace mémoire inutilisé et de rencontrer le phénomène de fragmentation. Et ce qui permet également d’éviter les redémarrages intempestifs, mais également d’écraser « accidentellement » les données contenues dans une ou plusieurs pages.

Memory management      
Ironique, l'augmentation du confort de l'utilisateur passe
par l'augmentation du taux d'utilisation mémoire avec Vista.


Plus efficace, Windows Vista analyse en permanence la mémoire. L’intérêt est de détecter toute erreur d’écriture/lecture dans le but de placer le ou les secteurs mémoire défectueux en quarantaine, la qualité des barrettes variant d’un modèle à l’autre. Windows Vista vous avertit alors du problème et vous propose d’exécuter l’utilitaire de diagnostic mémoire Windows au prochain redémarrage.

Il est également possible de démarrer le PC à l’aide du disque d’installation de Windows Vista, de sélectionner l’option réparer pour accéder aux options de maintenance système et exécuter le diagnostic mémoire. Le logiciel Memtest fait également parfaitement l’affaire. Au final, la stabilité est fortement augmentée.


Vista_Memory Diagnostic Tool

Clone du logiciel Memtest, Windows Memory Diagnostic tool permet
de contrôler l'intégrité physique des barrettes mémoire.

../..

La mémoire virtuelle

Comme nous venons de le voir, le noyau NT6 utilise des algorithmes permettant de diviser dynamiquement la mémoire disponible du PC en de petites pages. Et c’est sur ce même modèle, que le noyau NT6 gère la mémoire virtuelle, ou SWAP.

La mémoire virtuelle s’appuie sur les disques durs et a essentiellement pour but d’optimiser la gestion de la mémoire et de permettre l’exécution de plus de programmes simultanés que la mémoire vive ne peut le permettre. En essayant toutefois de trouver le bon compromis entre performances et espace disponible, les performances du meilleur disque dur qui soit étant loin d’être aussi véloces que la mémoire.

Avec Windows 2k/XP, la mémoire virtuelle est paginée. C'est-à-dire que tout comme la mémoire, la mémoire virtuelle est divisée en de multiples pages statiques. Lorsque le taux d’utilisation mémoire devient critique, le noyau libère alors des pages de la mémoire vive pour les transférer sur la mémoire virtuelle (pagefile.sys). Ce qui permet d’attribuer les pages mémoire libérées à d’autres composants du système. Malheureusement, si Windows a de nouveau besoin du contenu des pages transférées sur la mémoire virtuelle, une interruption se produit. Ce processus est nécessaire pour recharger les pages en mémoire vive.


Mémoire virtuelle

La gestion de la mémoire virtuelle devient elle aussi dynamique avec Vista.


Par conséquent, Microsoft s’est employé à augmenter les performances de Windows Vista en s’appuyant sur le même modèle dynamique utilisé par la mémoire vive. Ce qui permet là aussi, d’adapter la taille des pages en fonction des besoins réels, de diminuer les redémarrages nécessaires et de réduire fortement le phénomène de fragmentation. Ce qui implique de meilleurs accès en lecture/écriture également.

../..

Le SuperFetch

Dans le but d’optimiser le temps d’ouverture et d’accès aux différentes applications, Windows Vista intègre une « nouvelle » technologie sous la forme d’un algorithme évolué et appelé SuperFetch. Cette technique n’est en réalité pas une nouveauté puisqu’elle existe déjà au sein du noyau NT5 avec Windows 2k/XP et se nomme Prefetching.

Pour rappel, cette technique permet d’analyser les processus non système afin de déterminer quels sont les programmes les plus couramment utilisés. Une fois les informations recueillies, Windows est alors en mesure de pré-charger ces applications en mémoire, pour accélérer l’exécution de celles-ci. En contrepartie, SuperFetch a besoin de temps pour analyser vos habitudes avant d’être réellement performant. Mais le besoin en mémoire est bien sûr plus conséquent, même s’il contribue à augmenter le confort de l’utilisateur. Le lancement des applications se montrant réellement plus efficace. Ce qui explique le taux d’utilisation mémoire démesurée et d’accès au disque dur que nous rencontrons tous. D’autant plus que SuperFetch fonctionne constamment en arrière plan, de manière totalement transparente.

Avec Windows Vista, la technologie SuperFetch va plus loin puisqu’elle complète les informations recueillies de manière très précise. Tout simplement en rajoutant la notion de temps, puisque SuperFetch est capable de différencier les applications exécutées en semaine de celles qui le sont le week-end.


SuperFetch

Si la fonction SuperFetch vous semble inutile, vous pourrez
désactiver celle-ci et réduire la consommation mémoire.


Mais si l’optimisation des applications que vous utilisez couramment vous importe peu, il reste possible de désactiver la fonction SuperFetch. Pour cela, ouvrez le panneau de configuration, puis respectivement les onglets Système et Maintenance, Outils d’Administration et enfin Services. Il ne reste plus qu’à localiser le service SuperFetch pour le désactiver.

../..

ReadyBoost

Pour offrir un fonctionnement optimal à la fonction SuperFetch, Microsoft conseille vivement l’utilisation de 1Go de mémoire minimum pour assurer un meilleur confort sous Windows Vista. Une telle quantité mémoire est d’ailleurs aujourd’hui couramment utilisée puisque c’est aussi le minimum conseillé pour jouer sur PC dans de bonnes conditions. A titre purement informatif, avec notre plate-forme de test l’utilisation mémoire moyenne flirte avec les 700/800 Mo. Ce qui est certes plus impressionnant que sous Windows XP.
Store n go 2Go
La technologie ReadyBoost permet de s'appuyer sur une unité de stockage USB
pour optimiser les temps de chargement d'applications sous Vista.


Toutefois, la technologie ReadyBoost permet d’exploiter la mémoire Flash des clés USB haute performance, en allouant une partie de sa capacité de stockage qui sera utilisée pour accélérer le temps de chargement des applications. Accessible via l’onglet ReadyBoost situé dans les propriétés du lecteur, la clé USB est alors identifiée par le système comme un périphérique mémoire externe (ou EMD pour External Memory Devices). Mais de toute façon, lors de la première insertion de la clé USB, Windows Vista vous proposera d’utiliser la fonction ReadyBoost.



ReadyBoost       Ready Boost Verbatim

Une fois le support de stockage amovible inséré, Windows Vista vous propose d'allouer
une partie de l'espace de stockage à la fonction ReadyBoost.


Toutefois, pour assurer un niveau de performance optimal, la clé USB devra offrir un minimum d’espace disque de 256 Mo, avec un débit minimum direct de 2,5 Mo/seconde en lecture et de 1,75 Mo/seconde en écriture. Si bien peu de clés répondaient encore à ces critères il y a peu, les constructeurs ont commencé à proposer de nombreuses clés USB certifiées ReadyBoost. Et c’est toujours une alternative intéressante pour libérer de la mémoire.


Verbatim USB

Avant de courir acheter un support amovible USB certifié ReadyBoost,
tester les performances de votre support à l'aide de l'utilitaire HD Tune.


Encore anecdotique compte tenu de l’indisponibilité majeure des disques durs hybrides, la fonction ReadyDrive promet d’optimiser davantage les performances sous Vista. A commencer par l’optimisation du temps de démarrage du système. Mais aussi en réduisant le temps de sortie de la mise en veille hybride, ou encore en réduisant davantage la consommation électrique.

Bref, nous voyons bien que Microsoft a effectivement optimisé le système de gestion mémoire avec le nouveau noyau NT6. Ce qui permet de bénéficier d'une plus grande stabilité système comparée à Windows XP, avec en prime une mise à disposition des ressources optimisée et dynamique, une réduction de la fragmentation du fichier d'échange (SWAP) mais également de la mémoire, ainsi qu'une analyse en temps réel de l'état physique de la mémoire afin de mettre en quarantaine les éventuels secteurs défectueux. Sans oublier l'avantage de ne plus devoir systématiquement redémarrer en cas de changement de la configuration système. De quoi réjouir les utilisateurs de Vista...