Qu'est-ce qu'un ensemble de travail et à quoi sert-il?
Un ensemble de travail est un sous-ensemble de pages virtuelles résidant dans la mémoire physique.
Il existe plusieurs types de jeux de travail dans Windows:
Les ensembles de travail de processus contiennent les pages référencées par des threads au sein d'un même processus.
Le jeu de travail Système contient le sous-ensemble résident du code système paginable (cela inclut principalement le noyau et les pilotes chargés), parmi le pool paginé et le cache système.
Ensembles de travail de session qui contiennent des sous - ensembles résidents de données spécifiques à la session en mode noyau allouées par le sous-système Windows, le pool paginé de session, les vues mappées de session et d'autres pilotes de session.
En substance, un ensemble de travail est utilisé pour décider de la quantité de mémoire physique pouvant être utilisée pour éviter beaucoup de pagination. Lorsqu'un défaut de page se produit, les limites de l'ensemble de travail et la quantité de mémoire libre sur le système sont examinées. Si nécessaire, le gestionnaire de mémoire permet à un processus d'atteindre son maximum de travail. Si la mémoire est insuffisante, Windows remplacera les pages d'un ensemble de travail en cas d'erreur de page.
Windows tentera de conserver la mémoire disponible en écrivant les pages modifiées sur le disque. Si la mémoire est insuffisante, le gestionnaire des ensembles de travail essaiera de supprimer la plupart des ensembles de travail pour augmenter la quantité de mémoire RAM physique disponible disponible pour le système. Les processus qui ont une plus grande quantité de pages ont une tendance plus élevée à être examinés.
Le jeu de travail par défaut pour un processus comprend un minimum de 50 pages et un maximum de 345 pages. Les limites peuvent être modifiées mais les valeurs par défaut suffiront dans la plupart des cas d'utilisation, il faut également noter que la taille maximale du jeu de travail ne peut pas dépasser le maximum à l'échelle du système calculé au démarrage.
Windows signale les quantités totales, maximales et privées de RAM physique utilisées par les pages du jeu de travail virtuel pour un processus. Privé indique une mémoire qui n'est pas partagée entre les processus.
Qu'est-ce que la charge de validation et à quoi sert-elle?
Les pages de l'espace d'adressage virtuel d'un processus sont libres, réservées ou validées. Les applications peuvent réserver un espace d'adressage, puis s'y engager ; se réserver ne prend pas de mémoire ou d'espace de fichier de page, il est principalement fait pour réduire la mémoire en différant les engagements de page.
Les pages validées sont des pages qui, lorsqu'elles sont consultées, se traduisent finalement par des pages valides dans la mémoire physique; ils sont soit privés et partageables, soit mappés à une vue d'une section. Une section peut être de la mémoire partagée ou des fichiers mappés ; donc, si des pages validées sont mappées à une partie d'un fichier mappé, elles peuvent devoir être importées du disque lors de l'accès.
Le fichier mappé connu le plus courant est le fichier d'échange. Il stocke les pages modifiées qui sont encore utilisées par certains processus mais ont dû être écrites sur le disque. En procédant ainsi de manière plus agressive, la mémoire peut être vidée plus facilement sans avoir à effectuer d'écritures d'E / S avant cela.
Le gestionnaire de mémoire assure le suivi des frais de validation privés sur une base globale et par processus en tant que quota de fichier d'échange. Ces valeurs sont ensuite utilisées pour déterminer la fréquence d'écriture dans le fichier d'échange. Veuillez noter que la libération de la mémoire se fait par le mécanisme du jeu de travail ...
Quand quelque chose n'est plus en mémoire, il est chargé depuis le fichier d'échange.
Les rapports Windows engagent la charge comme la quantité totale de mémoire qu'un processus utilise pour laquelle il n'y a pas de stockage de sauvegarde; il résume essentiellement les quantités de RAM physique qui sont encore absentes dans le fichier d'échange et en soustrait d'autres fichiers mappés.
Un magasin de sauvegarde est un stockage qui contient une sauvegarde des données; par exemple, si vous mappez une image en mémoire, alors l'image sera à la fois en mémoire et sur votre disque; il est donc inutile de calculer cette image en tant qu'utilisation de la mémoire étant donné que vous pouvez toujours y accéder à partir du disque lorsque cela est nécessaire dans des conditions de mémoire élevée.
Que sont les tas de mémoire et à quoi servent-ils?
Connu sous le nom de pool paginé et non paginé ...
Les threads système du noyau n'ont pas d'espace d'adressage comme les processus; par conséquent, ils doivent allouer tout stockage dynamique dans les tas de mémoire du système d'exploitation, celui-ci étant principalement formé par le pool paginé ou non paginé.
Le pool paginé se compose de mémoire virtuelle qui peut être paginée dans et hors du système. Les pilotes de périphérique qui n'ont pas besoin d'accéder à la mémoire à un faible niveau de répartition (une priorité plus élevée) peuvent utiliser librement les pools paginés.
Le pool non paginé se compose de mémoire virtuelle qui est garantie de résider en mémoire physique à tout moment et est donc accessible à tout moment sans encourir de défaut de page. Les pilotes de périphérique qui doivent accéder à la mémoire à un niveau de répartition inférieur DOIVENT utiliser le pool non paginé pour garantir que les données sont accessibles car les appels d'E / S ne sont pas disponibles à ce stade, il existe de toute façon un code critique à ce niveau ...
Ces pools ont une taille minimale et maximale, ils sont déterminés à être un petit procent de la RAM disponible. Bien qu'ils puissent croître, veuillez noter qu'ils ne dépasseront pas un certain pourcentage de la mémoire RAM disponible. Bien que le pool non paginé soit assez solide étant donné qu'il ne concerne que la mémoire la plus critique, le pool paginé s'étendra dans le fichier d'échange.
C'est l'un des problèmes les plus surveillés lorsque les gens désactivent leur fichier d'échange. Entre autres problèmes de stabilité et de performances , qui valent certainement la peine d'être vérifiés si vous avez désactivé le fichier d'échange.
- Source : Extraits du livre Windows Internals réécrits en un texte compréhensible.