Je revérifiais mes notes pour la «mémoire virtuelle» et la définition dans mon manuel est:
Processus d'allocation d'une section de stockage secondaire pour faire partie de la mémoire principale
Où, comme le dit Wikipedia :
La mémoire virtuelle est une technique de système informatique qui donne à un programme d'application l'impression qu'il a une mémoire de travail contiguë (un espace d'adressage)
et (Wikipedia dit aussi)
Notez que la «mémoire virtuelle» est plus que «l'utilisation de l'espace disque pour étendre la taille de la mémoire physique»
Quelqu'un peut-il apporter des éclaircissements sur ce qui est correct?
virtual-memory
Yacoby
la source
la source
Réponses:
La mémoire virtuelle est une couche d'abstraction fournie à chaque processus. L'ordinateur a, disons, 2 Go de RAM physique, adressée de 0 à 2G. Un processus peut voir un espace d'adressage de 4 Go, qu'il a entièrement pour lui-même. Le mappage des adresses virtuelles aux adresses physiques est géré par une unité de gestion de mémoire, qui est gérée par le système d'exploitation. Généralement, cela se fait dans des "pages" de 4 Ko.
Cela donne plusieurs fonctionnalités:
Votre manuel définit la mémoire virtuelle (incorrectement) comme juste # 3.
Même sans échange, vous devez particulièrement être conscient de la mémoire virtuelle si vous écrivez un pilote de périphérique pour un périphérique qui fait du DMA (accès direct à la mémoire). Votre code de pilote s'exécute sur le CPU, ce qui signifie que ses accès à la mémoire se font via la MMU (virtuelle). Le périphérique ne passe probablement pas par la MMU, il voit donc les adresses physiques brutes. Donc, en tant que rédacteur de pilotes, vous devez vous assurer:
la source
J'essaierai de commencer lentement, puis de rassembler tout cela pour vous. C'est comme ça:
La mémoire virtuelle, telle qu'elle est couramment utilisée, fait référence à la «pagination». Comme son nom l'indique, la pagination est comme un bloc-notes humain.
Lorsque vous travaillez sur des sommes simples ou que vous apprenez des informations simples, vous faites tout dans votre tête: il vous suffit de charger toutes les informations, de les traiter et d'obtenir la réponse. C'est comme un ordinateur qui charge des fichiers à partir du disque dur - il charge les programmes ou les images ou autres informations dont il a besoin pour travailler dans sa "mémoire réelle" (ou "mémoire physique") et fonctionne avec eux avec son "cerveau" ( son processeur).
Cependant, lorsque vous apprenez des informations complexes ou travaillez avec des sommes complexes, vous ne pourrez peut-être pas tout mettre dans votre tête à la fois. Vous êtes confus, vous commencez à ralentir, vous n'arrivez pas à tout garder en même temps et vous devez oublier quelque chose pour vous souvenir d'autre chose.
La solution humaine consiste à utiliser un bloc-notes. Nous notons sur les pages toutes les choses dont nous ne pouvons pas nous souvenir en même temps, mais nous y faisons référence en faisant les sommes. Nous ne pourrons peut-être pas nous souvenir d'une énorme liste de chiffres de ventes pour le mois, mais nous pouvons regarder les pages, obtenir les informations un peu à la fois et traiter chaque bit. C'est comme si l'ordinateur «paginait» sa mémoire - écrivant des pages pleines d'informations, les plaçant dans la «mémoire virtuelle» pour référence ultérieure, et réalisant qu'il avait besoin d'une page, et rechargeant cette page de la mémoire virtuelle dans la mémoire réelle. Sous linux et unix, l'endroit où ces pages sont stockées est littéralement appelé un "fichier d'échange", et les pages de données en mémoire sont littéralement appelées "pages". Différents systèmes ont des noms différents pour ces choses, mais le concept général est à peu près le même.
Donc, la pagination est très simple. Toutes les pages d'informations ne tiennent pas en mémoire, donc certaines pages sont placées sur le disque et chargées à nouveau plus tard.
Maintenant, là où cela devient plus compliqué, c'est que les systèmes modernes offrent un mappage de la mémoire et une protection de la mémoire, qui sont généralement gérés par le même système matériel de l'ordinateur: l'unité de gestion de la mémoire, ou MMU.
Dans un ordinateur multitâche (moderne), qui peut exécuter de nombreux programmes à la fois et dispose d'une protection de la mémoire, chaque programme est généralement séparé des autres programmes exécutés sur le même système. De cette façon, un programme ne peut pas modifier un autre programme simplement en accédant à sa mémoire - la MMU sépare physiquement l'espace d'adressage d'un programme de celui des autres. En d'autres termes, les programmes de l'utilisateur ne voient pas les programmes d'autres utilisateurs ni même d'autres programmes. Ils ne voient pas la "mémoire réelle" - ils voient leur propre "mémoire virtuelle".
Maintenant, ce concept d'isolement de la mémoire et le concept de fichier d'échange sont deux choses conceptuellement différentes, c'est probablement pourquoi vous êtes confus. Cependant, la clé est qu'ils fonctionnent tous les deux à l'aide de la MMU - l'unité de gestion de la mémoire, qui divise la mémoire en pages et mappe les pages à un espace d'adressage virtuel.
Ainsi, lorsqu'un programme demande de la mémoire à une certaine "adresse de mémoire", ce qui se passe réellement, c'est que les pages de mémoire de ce programme et leurs adresses correspondantes ("l'espace d'adressage" du programme) sont recherchées, et la page qui correspond à ce bloc de mémoire est trouvé. Cette page peut être chargée quelque part dans la mémoire réelle, auquel cas le programme est autorisé à accéder, ou, elle peut être paginée vers un disque. S'il est paginé, il déclenche alors un «défaut de page» - le disque est accessible et la page est chargée en mémoire. Le programme fonctionne donc même lorsqu'il n'y a pas assez de mémoire, mais il s'exécute LENTEMENT, s'il doit utiliser le disque pour ce qui serait normalement un accès mémoire très rapide.
Maintenant, s'il n'y a pas assez d'espace pour charger cette page en mémoire, vous avez un problème. Dans ce cas, une page OTHER déjà en mémoire doit être "échangée" sur le disque, de sorte que la page du premier programme peut être chargée. Ou, ils peuvent également être des pages du même programme. Vous le voyez parfois dans les programmes graphiques, par exemple, sur des systèmes fortement chargés, lorsqu'une partie de l'image est chargée lentement et dessinée rapidement, puis la partie suivante est chargée également lentement et dessinée rapidement, et lorsque vous reprenez le travail avec la première partie, c'est encore lent. C'est parce qu'ils sont chargés pour être travaillés, puis échangés à nouveau, donc quelque chose d'autre peut être travaillé. Évidemment, c'est une façon très lente de travailler, et ce dont vous avez vraiment besoin, c'est de plus de VRAIE mémoire.
la source
Je sais qu'il est trop tard ... mais je pense que c'est encore utile.
la source
Eh bien, si nous comprenons le mot virtuel, je pense que nous pouvons comprendre comment il se rapporte à la mémoire.
"Virtuel" tel que défini sur Dictionary.com: "simulé ou étendu temporairement par un logiciel informatique: un disque virtuel en RAM; mémoire virtuelle sur un disque dur."
Dans le cas de la mémoire virtuelle, le système simule la mémoire système en utilisant des ressources de mémoire plus lentes (disque dur, clé USB, etc.). Lorsque de la mémoire supplémentaire est requise, le système échangera des données dans la mémoire système qui ne sont pas nécessaires au disque dur. lecteur ou ressource que vous avez configuré. Cela libère de la mémoire système afin que votre application puisse continuer la tâche qu'elle effectuait.
L'échange est un processus continu et donc si vous mettez à niveau votre mémoire, vous devriez voir une amélioration des performances car le système ne devrait pas nécessiter un échange pour ralentir la mémoire car il est trop fréquent.
la source
La mémoire virtuelle est une caractéristique d'un système d'exploitation (OS) qui permet à un ordinateur de compenser les pénuries de mémoire physique en transférant temporairement des pages de données de la mémoire vive (RAM) vers le stockage sur disque.
Cela signifie que c'est comme un miroir ou un exemple de mémoire utilisé dans une machine virtuelle ou une boîte virtuelle pour essayer les systèmes d'exploitation sans formater l'ordinateur.
la source
La mémoire virtuelle est un bloc de votre disque dur que le système utilise comme fichier d'échange en plus de la RAM physique.
Cela devient difficile et parfois lent, car Windows ne défragmente PAS cette partie de votre disque dur.
Les 2 meilleurs conseils que je peux offrir: 1) Virt Mem doit être réglé à la fois min et max à environ 1,5 fois votre mémoire physique. ex. 2 Go de RAM = 3070 Mo Virt. 2) Lors de la défragmentation, désactivez votre fichier d'échange. Défragmentez 2x et réinitialisez le numéro d'origine. Cela donne une tranche de lecteur propre et augmentera la vitesse du fichier d'échange.
la source