Quelle est la différence entre “mémoire virtuelle” et “l'espace de swap”?
Quelqu'un peut-il svp me faire clair quelle est la différence entre de la mémoire virtuelle et de l'espace de swap?
Et pourquoi dit-on que pour les 32 bits de la machine virtuelle maximale d'accès à la mémoire est de 4 GO seulement?
- stackoverflow.com/questions/1688962/...
- comment lien donné par vous, c'est une réponse à ma question..
- En effet, il n'est pas une réponse, mais je pense que des liens vers une réponse qui pourrait être très utile pour cette rubrique. Et il est écrit dans le commentaire, exactement là où il devrait être, à mon humble avis. 🙂
InformationsquelleAutor algo-geeks | 2011-02-11
Vous devez vous connecter pour publier un commentaire.
Il y a un excellent explantation de la mémoire virtuelle sur superuser.
Il suffit de mettre, la mémoire virtuelle est une combinaison de RAM et d'espace disque que les processus en cours d'exécution peut utiliser.
De l'espace de Swap est la partie de la mémoire virtuelle sur le disque dur, utilisé quand la RAM est pleine.
Comme pour pourquoi 32 bits PROCESSEUR est limitée à 4 go de mémoire virtuelle, il est adressé bien ici:
Il y a une certaine confusion quant à la durée de la Mémoire Virtuelle, et il se réfère effectivement à la suite de deux des concepts très différents
De l'espace de Swap, otoh, que, est le nom de la partie du disque utilisé pour stocker la mémoire RAM supplémentaire pages lorsque vous ne l'utilisez pas.
Un constat important à faire, c'est que l'ancien est d'une manière transparente possible en raison de la configuration matérielle et support de l'OS de ce dernier.
Afin de donner plus de sens à tout cela, vous devriez considérer comment la "Mémoire Virtuelle" (comme dans la définition 2) est pris en charge par le CPU et OS.
Supposons que vous avez un pointeur de 32 bits (64 bits points sont similaires, mais l'utilisation légèrement différents mécanismes). Une fois la "Mémoire Virtuelle" a été activée, le processeur considère ce pointeur être réalisés en trois parties.
Maintenant, quand le PROCESSEUR tente d'accéder au contenu d'un pointeur, il consulte au préalable l' Répertoire de la Page d' - une table composée de 1024 entrées (dans l'architecture X86 dont l'emplacement est indiqué par le registre CR3). Les 10 bits de la Page d'Entrée de Répertoire est un index dans cette table, qui pointe vers l'emplacement physique de la Page Table. Ceci, à son tour, est un autre tableau de 1024 entrées dont chacune est un pointeur dans la mémoire physique, et plusieurs bits de contrôle. (Nous reviendrons plus loin). Une fois qu'une page a été trouvée, les 12 derniers bits sont utilisés pour trouver une adresse à l'intérieur de cette page.
Il y a de nombreux plus de détails (Tlb, les Grandes Pages, PAE, Sélecteurs, de Protection de Page), mais l'explication ci-dessus capture l'essence des choses.
À l'aide de ce mécanisme de traduction, l'OS peut utiliser un ensemble différent de pages physiques pour chaque processus, et ainsi de donner à chaque processus de l'illusion d'avoir de la mémoire pour lui-même (comme chaque processus possède son propre Répertoire de la Page)
Sur le dessus de cette de la Mémoire Virtuelle, l'OS peut aussi ajouter la notion de Pagination. L'un des bits de contrôle discuté plus tôt permet de spécifier si une entrée est "Présent". Si elle n'est pas présente, une tentative d'accès à cette entrée en résulterait une Faute de Page exception. Le système d'exploitation peut capturer cette exception et d'agir en conséquence. OSs soutien d'échange/de pagination peut ainsi décider de charger une page à partir de la de l'Espace de Swap, corriger les tables de traduction, et puis le problème de l'accès à la mémoire à nouveau.
C'est là que les deux termes de combiner, d'un OS de soutien de la Mémoire Virtuelle et la Pagination peut donner les processus de l'illusion d'avoir plus de mémoire qu'effectivement présents à la pagination (permutation) pages dans et hors de l'espace de pagination.
Quant à votre dernière question (Pourquoi est-il dit 32 bits PROCESSEUR est limitée à 4 go de Mémoire Virtuelle). Cela se réfère à la "Mémoire Virtuelle" de la définition 2, et est une conséquence immédiate de la taille du pointeur. Si le CPU ne peut utiliser 32 bits pointeurs, vous avez uniquement en 32 bits pour exprimer des adresses différentes, cela vous donne 2^32 = 4 GO de mémoire adressable.
Espère que cela rend les choses un peu plus claires.
À mon humble avis il est terriblement trompeur d'utiliser le concept d'espace de swap comme l'équivalent de la mémoire virtuelle. VM est un concept beaucoup plus général que l'espace de swap. Entre autres choses, VM permet aux processus de référence, les adresses virtuelles en cours d'exécution, qui sont traduites en adresses physiques avec le support du matériel et des tables de pages. Ainsi, les processus ne portent pas sur la quantité de mémoire physique du système, ou lorsque l'instruction ou de données résidant dans la mémoire physique de la hiérarchie. VM permet à cette cartographie. L'élément référencé (instruction ou de données) peuvent être résident en L1 ou L2, ou de la RAM, ou enfin sur le disque, auquel cas il est chargé dans la mémoire principale.
De l'espace de Swap c'est juste un endroit sur mémoire secondaire où les pages sont stockées lorsqu'ils sont inactifs. Si il n'y a pas suffisamment de RAM, l'OS peut décider de changer les pages d'un processus, à faire de la place pour d'autres pages de processus. Le processeur ne jamais exécute l'instruction ou de lire/écrire des données directement à partir de l'espace de swap.
Avis qu'il serait possible d'avoir de l'espace d'échange dans un système sans VM. Qui est, les processus qui ont directement accès à des adresses physiques, pourrait encore avoir des portions de celui-ci sur
de disque.
Si le fil est assez vieux et a déjà été répondu. Tiens encore à partager ce lien, car c'est l'explication la plus simple que j'ai trouvé jusqu'à présent. Ci-dessous le lien a des schémas pour une meilleure visualisation.
différence-entre-virtuel-de mémoire-et-swap de la mémoire