Assiste.com
cr 01.04.2012 r+ 22.10.2024 r- 22.10.2024 Pierre Pinard. (Alertes et avis de sécurité au jour le jour)
Sommaire (montrer / masquer) |
---|
Pour son origine (son invention), voir Pagination.
La « mémoire virtuelle » de Windows est constituée de la mémoire RAM augmentée de la taille d'un fichier d'échange (fichier de pagination) présent physiquement sur un volume (un disque dur, une clé USB, un disque SSD), ce qui permet à Windows d'étendre « virtuellement » son espace d'adressage lorsque des besoins s'en font sentir. Le fichier d'échange ne doit pas être confondu avec une quelconque « mémoire cache ».
Ne pas oublier que le traitement des instructions (l'exécution des applications) et les manipulations des données, se font exclusivement dans la mémoire RAM.
Sous Windows, de nombreux programmes peuvent s'exécuter (en apparence) simultanément. Windows lui-même est, en réalité, un vaste ensemble de programmes s'exécutant tous (en apparence) en même temps.
En réalité, ils s'exécutent en concurrence les un des autres, avec la pondération du nombre de processeurs, réels ou virtuels, dont dispose l'appareil.
|
Les notions de « en même temps » et de « temps réel » sont totalement fausses dans le monde PC ! Ce ne sont qu'apparences.
L'ordinateur de type PC (à architecture Intel/Windows) n'exécute qu'une instruction à la fois, ou deux à huit à la fois, depuis 2012, lorsque le matériel est doté d'un processeur multicoeur/multithread (avec des tricheries conduisant à des failles de sécurité catastrophiques du fabricant de processeurs Intel).
En réalité, chaque « programme » dispose de l'appareil durant une tranche de temps (quelques millisecondes - quelques « cycles horloge ») puis c'est au programme suivant d'en disposer, etc. dans un système de « partage de temps » (priorité des processus). Les PC à architecture Intel/Windows fonctionnent en « temps partagé » (« Time sharing »), comme les bons vieux IBM 360 des années 1966 !
Les PC ne sont pas des systèmes temps réel, ni préemptif. Un programme qui n'a rien à faire n'est pas mis dans un état d'attente (idle), il lui est attribué du temps processeur, comme aux autres programmes, dont il ne fait rien ! Le tout est pondéré par un système de « priorités » qui permet d'allouer un peu plus de cycles à des processus prioritaires et un peu moins à des processus marginaux.
Lorsque vous lancez un nouveau programme, ou lorsqu'un programme « prend la main » pour s'exécuter parce que c'est son tour, il doit se trouver dans la RAM. S'il n'y a pas de place dans la RAM, des portions des autres programmes présents dans la RAM, et dont ce n'est pas le tour de s'exécuter, sont découpés arbitrairement en bloc de 4KO (4096 caractères) appelés « pages », et ces « pages » sont « vidées/virées » dans le « fichier d'échange », également appelé « mémoire paginée » (PageFile.sys). Un algorithme optimise cette opération en tenant compte de divers paramètres dont la priorité. La mémoire RAM ainsi libérée est mise à disposition de l'application-demandeuse pour ses cycles d'exécution. Lorsque c'est à nouveau le tour de l'application qui avait été « virée » de s'exécuter, le processus recommence et les « pages » virées de l'application « remontent » en RAM. Ce fonctionnement est connu sous divers noms, mais nous retiendrons « Swap-in/Swap-out » et « Roll-in/Roll-out ».
S'il y a réellement besoin de réel temps réel (par exemple en contrôle de processus industriel, acquisition de données, génération de signaux, SCADA, etc.) il faut ajouter du matériel spécifique à l'appareil sous Windows (cartes d'acquisition/génération de signaux et base de temps externe prioritaire avec son API asservissant Windows).
Voir les articles :
|
S'il y a des erreurs de pages c'est qu'il manque de la mémoire RAM
Accédez au « Gestionnaire de tâches de Windows » en enfonçant, simultanément, les trois touches « Alt + Ctrl + Suppr ».
Afficher la colonne « Erreur de pages » (ou « Défaillance de pages »)
Anciennes versions de Windows :
Dans l'onglet « processus », la colonne « Erreur de pages » (ou « Défaillance de pages ») est affichée par défaut. Si elle ne l'est pas, faites un clic droit dans une zone quelconque des titres de colonnes cochez la case « Erreur de pages » validez.
Nouvelles versions de Windows :
Sélectionnez l'onglet « Détails » faites un clic droit dans une zone quelconque des titres de colonnes cliquez sur « Sélectionner des colonnes » cochez la case « Erreur de pages » validez.
La colonne « Erreur de pages » (ou « Défaillance de pages ») signale non pas des erreurs (le mot est mal choisi) mais le nombre d'utilisations du fichier d'échange (1 Swap-out = une utilisation du fichier d'échange, un Swap-in = une utilisation du fichier d'échange), donc le nombre de fois ou le « fichier d'échange » (le fichier PageFile.sys) a « sauvé la mise » à votre système qui manque de RAM (et on s'apperçoit bien qu'il est utilisé des centaines de millions de fois donc que son emplacement (sur un disque SSD) est un accélérateur substentiel de Windows, mais que, surtout, IL MANQUE DE LA RAM. La capture d'écran suivante est faite sur une machine dotée de 24 GO de RAM, mais très lourdement utilisée.
On comprend immédiatement que le manque de RAM, ce qui ne coûte presque rien, provoque des centaines de millions d'accès disque et donc un ralentissement très sensible des performances de l'ordinateur (et une usure importante des disques, y compris des SSD). Ce n'est pas augmenter la taille du fichier de mémoire paginée qui va améliorer les choses. C'est l'ajout de mémoire RAM.
Simultanément, le bricolage de la taille du cache disque (son augmentation) peut allourdir encore plus ce ralentissement (et pire encore).
|
Le processus de « Mémoire virtuelle » de Windows est astucieux car il permet d'exploiter des applications très gourmandes en mémoire RAM sans avoir à acheter des barrettes de mémoire (pourtant de moins en moins coûteuses) et sans provoquer une situation de blocage total en cas de manque de RAM. Si le fichier d'échange (le fichier PageFile.sys) n'existe pas et si la RAM est faible, un crash système (BSOD - Blue Screen Of the Death) vous prévient du manque de mémoire (RAM + pagination) avec un message « Mémoire virtuelle insuffisante ».
Ce processus est aussi la signature de l'inconsistance de Windows qui ne sait pas gérer la mémoire et qui, véritable usine à gaz de trucs inutiles ralentissant la machine (voir, par exemple : Les services à désactiver dans les différentes versions de Windows), nécessite des plates-formes de plus en plus puissantes pour en faire de moins en moins. Windows est incapable de gérer des objets en dehors de sa mémoire RAM et fait tout monter en RAM pour camoufler sa lourdeur. Ne lui parlez pas de fichier indexé : un index est alors entièrement monté en mémoire, etc.
Sous Windows NT/2000, XP et suivants, le fichier swap se nomme : pagefile.sys
Sous Windows 98, 98se, 98Me, le fichier swap se nomme : Win386.swp
Son emplacement est au choix de l'utilisateur mais, par défaut, il se trouve sur le volume système C:, ce qui n'est pas une bonne idée. Le fichier de mémoire virtuelle, comme tous les fichiers temporaires, devrait être dirigé vers un volume (une partition) dédiée à cela. D'autre part, bien que nous recommandions, pour toutes les partitions de Windows, à partir de NT4, d'être en NTFS, les fanatiques de la nanoseconde pourraient régler cette partition recevant les fichiers temporaires et le swapfile, en FAT32 « seulement ». Ce système de gestion de fichiers est beaucoup plus rapide que NTFS (et moins fiable).
La vitesse du fichier d'échange est effroyablement lente par rapport à la vitesse de la RAM de l'ordinateur. Si l'on entend le disque dur fonctionner sans cesse il est temps d'acheter de la RAM pour votre ordinateur - ce sera un formidable coup d'accélération de Windows et de l'ordinateur sans avoir à changer d'ordinateur (et sans avoir à changer de disque dur, après avoir perdu toutes ses données, lorsqu'il succombera aux millions d'accès à la minute imposés par trop peu de RAM).
La taille du fichier d'échange (pagefile.sys) est généralement laissée au bon soin, automatique, de Windows, mais ceci pose un problème : le fichier d'échange est alors de taille variable et ne cesse de croître puis rapetisser - il fini très vite par ressembler à un patchwork et il faut le défragmenter sinon il ralenti encore plus Windows !
|
PAGEFILE.SYS NE PEUX PAS ÊTRE DÉFRAGMENTÉ
Il est impossible de défragmenter pagefile.sys.
L'une des limitations imposée à tous les outils, y compris ceux de défragmentation, est qu'ils n'auront jamais accès aux fichiers ouverts par Windows. Dès le démarrage de Windows certains fichiers, qui vont être utilisés durant toute la session de travail, le sont en mode d'accès exclusif (y compris lors d'un démarrage en mode sans échec). Jamais aucun logiciel de défragmentation, gratuit ou commercial, ne pourra défragmenter pagefile.sys.
Exception : utilisez PageDefrag (de Mark Russinovich - SysInternals), uniquement si vous êtes sous Windows client XP 32 bits ou Windows Server 2003 32 bits.
Technet Microsoft - SysInternals
Sur les autres versions de Windows (Windows 64 bits et versions 32 bits de Windows Vista, 7, 8 et suivantes.), PageDefrag ne fonctionne pas et pagefile.sys ne peut pas être défragmenté, même en démarrant en mode sans échec.
Le seul moyen de défragmenter pagefile.sys est de monter le disque en secondaire (ou en disque externe) et de lancer une défragmentation de ce disque. A ce moment là, tous les fichiers, y compris les ruches du Registre Windows, pagefile.sys et hiberfil.sys sont défragmentés. Après cette opération, on remonte le disque primaire (système) et on peut constater une accélération de Windows si le fichier pagefile.sys était très fragmenté.
|
Astuce pour empêcher pagefile.sys de se fragmenter : calcul d'une taille fixe
Donner au fichier de mémoire virtuelle pagefile.sys de Windows une taille fixe. Le problème de fragmentation et de ralentissement est évacué. La taille de ce fichier doit alors être suffisante pour qu'il n'y ait pas de débordement, ce qui provoquerait le crash d'une application, voire le crash de tout le système.
Pour déterminer la taille du pagefile.sys dont vous avez besoin, ce qui est dépendant de votre matériel (RAM & Disques), de vos applications et de la manière de vous en servir :
réglez votre mémoire virtuelle en mode automatique (taille gérée par le système)
observez, régulièrement (2 fois par jour durant une semaine) les nombres indiqués par Windows (taille allouée actuellement et taille maximale)
défragmentez le disque sur lequel se trouve le fichier de mémoire virtuelle (monté en disque secondaire ou externe)
remontez-le en primaire et redémarez
allouez à votre pagefile.sys une taille fixe (taille personnalisée) avec pour taille minimum la taille moyenne observée et comme maximum, la taille maximum observée (sans que cela ne puisse dépasser 4096 MO sur les systèmes 32 bits et sous Windows XP).
L'intérêt de la taille fixe de pagefile.sys est que :
Windows ne perd plus son temps à augmenter/réduire la taille d'un fichier, par essence changeant.
Ce fichier n'est plus fractionnable (il n'y a plus de ralentissement dues à la fragmentation de ce fichier et vous n'avez plus besoin de le défragmenter pour tenter d'améliorer la vitesse de Windows).
|
Deux règles imbéciles pour calculer la taille optimale du pagefile.sys
Une règle, purement empirique (totalement invérifiable), sur la taille de pagefile.sys consisterait à donner, comme taille maximum, 2,5 fois la taille de la mémoire RAM de votre ordinateur (sans que cela ne dépasse 4096 MO sous Windows XP). Si votre utilisation de l'ordinateur est centrée sur des travaux de type traitement de textes et tableurs, avec des documents de petite taille, la taille de la mémoire virtuelle pourra être plus petite que si vous utilisez des logiciels comme PhotoShop sur des images de très grandes dimenssions en très haute résolution, ou des logiciels de montage vidéo etc.
Un tableau purement empirique, une pure construction de l'esprit, souvent rencontré, qui n'a rien de réaliste et ne repose sur rien. Ce tableau est connu et répété sur bien des forums de discussion. Il propose une taille fixe conseillée, pour pagefile.sys, de manière totalement arbitraire, sans aucun sens pratique ni théorique.
Ce tableau, très connu, est complètement faux ! | |
---|---|
Taille de la RAM | Taille conseillée de manière arbitraire |
1 GO | 2,5 GO (4096 MO max sur une machine 32 bits) |
1,5 GO | 3, 75 GO (4096 MO max sur une machine 32 bits) |
2 GO | 5 GO (4096 MO max sur une machine 32 bits) |
4 GO | 10 GO (4096 MO max sur une machine 32 bits) |
6 GO | 15 GO |
8 GO | 16 GO |
10 GO | 16 GO |
12 GO | 16 GO |
14 GO | 16 GO |
16 GO | 16 GO |
|
La seule bonne méthode de calcul de la taille de pagefile.sys
La taille du fichier pagefile.sys ne répond à aucune règle de calcul de taille, ni de conseils, par nature totalement faux. Elle est totalement et uniquement dépendante :
La seule bonne méthode de calcul de la taille du fichier de mémoire virtuelle de Windows (pagefile.sys) est celle des essais et erreurs (et regardez le gestionnaire des tâches pour avoir la taille mémoire réellement utilisée par chaque processus et au total).
Relire le paragraphe ci-dessus : « Astuce pour empêcher pagefile.sys de se fragmenter : calcul d'une taille fixe. »
|
Le bon emplacement du fichier de mémoire virtuelle de Windows
De préférence, créer une partition dans laquelle ce fichier est placé.
De préférence, cette partition serait mieux placée sur un disque dur physique différent du système (sinon, on perd du temps en déplacement des têtes de lecture).
Si un disque SSD est présent, mettre la mémoire virtuelle sur le volume SSD, ce qui augmentera sensiblement les performance de l'appareil sous Windows.
Comment modifier la taille du fichier de mémoire virtuelle de Windows
Attention - pour modifier la taille du fichier pagefile.sys vous devez avoir les droits administratifs - si vous faites cette manipulation sous un compte « limité », rien n'est pris en compte.
Pour allouer une taille et un emplacement à la mémoire virtuelle, il faut accéder aux « Propriétés système ». :
Lancement direct de « Propriétés système »
Sous toutes les versions de Windows, exécuter la commande SYSDM.CPL @0,3
Sous Windows XP, Vista
Démarrer Panneau de configuration Performances et maintenance Système Onglet « Avancé » Clic sur le bouton « Paramètres » dans Performances Onglet « Avancé » Clic sur le bouton « Modifier » dans Mémoire virtuelle Clic sur le volume qui doit contenir votre fichier « PageFile » (généralement C:) Sélectionnez « Taille gérée par le système » (ou « Taille personnalisée » et saisir vos nombres) Clic sur le bouton « Définir » Ok Appliquer Ok Fermer et redémarrer.
Sous Windows 7 et suivants
Démarrer Panneau de configuration Afficher par petites icônes Système Paramètres Système Avancés Clic sur le bouton « Paramètres » dans Performances Onglet « Avancé » Clic sur le bouton « Modifier » dans Mémoire virtuelle Décocher la case « Gestion automatique du fichier d'échange pour les lecteurs » Clic sur le volume qui doit contenir votre fichier « PageFile » (généralement C:) Sélectionnez « Taille gérée par le système » (ou « Taille personnalisée » et saisir vos nombres) Clic sur le bouton « Définir » Ok Ok Ok Fermer et redémarrer.
Les algorithmes de gestion de la mémoire virtuelle de Windows (le fichier pagefile.sys) optimisent le remplissage de ce fichier. Lorsqu'une application en cours d'exécution doit être éjectée momentanément de la RAM pour laisser de la place à une autre application, seules les données sur lesquelles vous travaillez, et les variables, sont envoyées dans la mémoire virtuelle (le fichier pagefile.sys). Le code en lui-même de l'application, invariable, se trouve déjà sur le disque dur, dans le fichier où vous avez installé l'application. C'est de là qu'elle sera recherchée / rechargée lorsqu'elle remontera en mémoire pour reprendre son tour d'exécution. C'est la raison pour laquelle Windows empêchera toujours de toucher aux fichiers des applications en cours d'exécution (Windows les ouvre avec un privilège d'accès exclusif).
Si l'application est un virus, elle « bénéficiera » de la même « protection » (virus vs malwares). C'est pourquoi les antivirus et antimalwares vous annonceront parfois, pour parfaire une décontamination (selon les virus ou parasites [parasitewares] trouvés), qu'ils ont besoin de redémarrer l'appareil. Dans la liste de redémarrage de Windows, l'antivirus ou antimalware a inscrit des travaux à faire en premier et va exécuter ces travaux de fin de décontamination avant de permettre le démarrage / redémarrage de tout le reste.
Pour lancer un antivirus ou antimalware, vous ne devez pas (s'il ne vous le demande pas expressement), quelle que soit la méthode, démarrer / redémarrer Windows en mode de diagnostic (dit mode « sans échec » - « Safe mode ») :
Les antivirus ou antimalwares cherchent à identifier certains virus non pas tels qu'ils sont enregistrés dans des fichiers disque (où ils peuvent masquer dynamiquement leur apparence), mais lorsque leur code exécutable monte en mémoire, au moment où ils vont chercher à s'exécuter (entrer en état « on-execution »). L'exécution est suspendue par l'antivirus ou l'antimalwares le temps que l'outil de sécurité analyse le code exécutable (ce qui est de l'ordre de quelques nanosecondes).
Le mode d'accès « on-execution » des outils de sécurité permet également :
De gagner du temps en n'analysant que ce qui cherche à s'exécuter, donc uniquement du code exécutable, au lieu d'analyser tout et n'importe quoi.
D'éviter le problème connu qui fait dire qu'il ne faut jamais avoir plus d'un antivirus ou antimalwares simultané. Cet ancien mode de fonctionnement des outils de sécurité, qui faisait intercepter, en mode exclusif, les fichiers tentant de s'ouvrir (« hook - hooker - hooking »), pour les analyser, pouvait provoquer des situations de blocages mutuels infinis entre plusieurs outils de sécurité intervenant simultanément sur le même fichier.
Accessoirement, vous pouvez lancer une seconde fois un antivirus ou antimalware à la demande (« on-demand »), en mode de diagnostic (mode « sans échec »), par acquit de conscience, mais certains antivirus le vérifient et refuseront de se lancer dans ce mode. Lorsque Windows est démarré en mode « sans échec », il est lancé dans une configuration minimum. Tout ce qui tente, habituellement, de s'activer et s'exécuter durant le démarrage de Windows, et qui ne fait pas partie du noyau minimum de Windows (le kernel), est ignoré (n'est pas lancé).
Seuls les malwares de classe « Root » (« Rootkit »), qui ont réussi à s'incruster dans le noyau de Windows (le kernel), ne peuvent être évités lors d'un démarré en mode « sans échec ». Ils font désormais partie du noyau de Windows et disposent des privilèges les plus élevés, ceux de Windows (« Ring 0 »).
Certains virus s'installent encore plus « haut » : dans le « bootstrap » du disque de démarrage (le « bootstrap » est exécuté avant le chargement de Windows), voire dans le BIOS qui est exécuté en tout premier, à la mise sous tension de l'appareil.
Les microprogrammes UEFI, qui remplacent les BIOS depuis 2012, sont suspectés de beaucoup d'intrusions franchement malveillantes et attentatoires à la vie privée et aux libertés individuelles dont :
Qui contrôle le BIOS / l'UEFI contrôle l'appareil
donc contrôle son utilisateur
Accès à la mémoire - Mémoire virtuelle et physique (Microsoft, FR)
Accès à la mémoire - Autres espaces de données (Microsoft, FR)
Les encyclopédies |
---|