Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

gestionnaire taches

2 réponses
Avatar
Paul_XXV
bonjour,

dans le gestionnaire de tâches,
on peut afficher une colonne "erreurs de page"
Pour certains programmes, je vois cette valeur
augmenter régulièrement.

Que cela signifie-t-il ?

Merci !

2 réponses

Avatar
Jean-Claude BELLAMY
Dans le message news: ,
Paul_XXV s'est ainsi exprimé:

bonjour,

dans le gestionnaire de tâches,
on peut afficher une colonne "erreurs de page"
Pour certains programmes, je vois cette valeur
augmenter régulièrement.

Que cela signifie-t-il ?


Petits rappels sur le mécanisme de mémoire virtuelle et fichier d'échange
---------------------------------------------------------------------
Au préalable, une remarque sémantique :
"swap" = "échange" en anglais
Et comme tout informaticien qui se respecte est assez feignant par nature,
il utilise ce mot de 4 lettres au lieu de "Fichier d'échange" ou encore de
"Mécanisme d'échange de pages mémoire entre mémoire vive et fichier de
pagination stocké sur disque dur" (ouf!)

Le swap :
Vu que Windows est un système multi-tâches, et que certaines applications
peuvent demander beaucoup de mémoire, la quantité de RAM disponible peut
être parfois insuffisante.

Donc on va "générer" de la mémoire supplémentaire en utilisant une partie
d'un ou plusieurs disques durs pour lire et écrire ce qui ne tient pas en
RAM Physique.

Cette "mémoire additionnelle" apparait sur le(s) disque(s) sous la forme de
fichier(s) dits de "swap" ("pagination" ou "échange" en français), dont le
nom est "pagefile.sys" sous NT/W2K/XP/W2K3 (win386.swp sous Win9x/ME).
Le stockage/recopie des morceaux de mémoire RAM dans ce(s) fichier(s) est
effectué par paquets de 4 ko, appelés "page".

L'ensemble RAM + Fichier(s) de swap constitue la "Mémoire virtuelle", dans
laquelle sont chargés codes et données.
(NB: souvent, par abus de langage, on croit que la mémoire virtuelle est
synonyme de swap uniquement. Or cette appellation désigne en réalité
l'ensemble RAM+SWAP. Mais même Microsoft fait parfois la confusion !)

L'enchainement des opérations de swap sont les suivantes :

1) Lancement d'une nouvelle appli.
(ou nouvelle action à l'intérieur d'une appli existante)
Soudain, RAM insuffisante !
Le microprocesseur constate qu'une (ou plusieurs) page(s)
de 4ko nécessaires n'existe pas en mémoire vive.
Il génère alors (via une "exception", sorte d'interruption)
une "défaillance de page", transmise au gestionnaire de
mémoire ("VMM" = Virtual Machine Manager),

2) Le VMM déclenche alors une copie de page de 4ko de la
RAM (affectée à une appli en arrière plan) vers le disque
(fichier) de swap.

3) Les 4ko de RAM ainsi libérés sont récupérés
pour la nouvelle appli

Et si on a besoin de revenir à l'ancienne appli qui a été mise en
arrière-plan pendant ce temps :

4) Copie d'une page de 4k en RAM (d'une autre appli
en arrière plan) vers le disque

5) Récupération de ces 4ko en RAM pour recopie depuis
le disque des 4ko copiés à l'étape 2

6) Exécution en RAM du code contenu dans cette page


NB: Le terme "erreur de page", ou encore "défaillance de page" ("page fault"
en anglais) ne désigne pas un dysfonctionnement.
Ce n'est pas réellement une "faute" (ou défaut), mais au contraire cela fait
partie de la gestion mémoire.
En d'autres termes :
Chaque fois qu'une page du fichier de swap est demandée en RAM, le VMM
procède à un échange (swap) entre :
- cette page demandée (au départ sur disque)
et
- une autre page (au départ en RAM), moins
"urgente" que la première (parce qu'appartenant
à une appli en arrière-plan à cet instant).

Cette autre page sera donc RECOPIEE de la RAM vers le disque.

Au passage, parler d'émulation de mémoire (comme on le voit parfois écrit)
est un abus de langage!
A tout instant les instructions binaires des différents programmes (applis
et système) ont TOUJOURS lieu dans la RAM (physique, en silicium!).
P.ex., si on possède de 512 Mo de RAM + 300 Mo de swap, soit AU TOTAL de 812
Mo de mémoire virtuelle, les traitements RÉELS (opérés par le
microprocesseur) n'ont lieu A TOUT MOMENT que dans 512 Mo de RAM.

Corollaire :
------------
Si une application génère une "invalid page fault" dans un module, cela
signifie que le VMM a essayé de charger EN VAIN une page à une adresse
invalide (pour "x" raisons).
- Si ce module est en mode "utilisateur" (une appli quelconque),
ce n'est pas trop grave (l'appli plante, et c'est tout).
- Par contre, si ce module est en mode "noyau" (p.ex. un driver
de périphérique), là c'est plus gênant, puisque ça affiche un
bel écran BLEU (BSOD = "Blue Screen Of Death"), avec obligation
de redémarrer le PC.

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Paul_XXV
Ok. Merci pour le ce petit rappel.
Néanmoins, cela ne m'explique pas pourquoi, dans
l'ensemble des processus présent, seul 1 (ma petite application c#)
voit la valeur "erreurs de page" augmenter.
D'autres processus occupant davantage de mémoire gardent
leur valeurs constantes.

(est-ce parceque je gère mal la vie de mes objets...!)