human
Quelle est vraiment la différence entre la RAM et la mémoire virtuelle ?Je mélange constamment ces deux concepts / termes.Expliquez comme si j'avais cinq ans.
gpt
La RAM est une mémoire physique.Il est divisé en différentes adresses.L'accès aux adresses RAM signifie accéder à la puce de mémoire réelle.La mémoire virtuelle est un autre nom pour RAM.En fait, un autre nom pour chaque adresse RAM.Cela signifie essentiellement que l'adresse virtuelle 100 peut accéder à l'adresse RAM 203, ou 1050, ou quoi que ce soit à mapper.Il y a donc un * mappage * qui décide quelle adresse virtuelle correspond à quelle adresse physique.Par exemple, les adresses virtuelles 1 à 100 peuvent être mappées aux adresses RAM 2301 à 2400.Les adresses virtuelles sont spécifiques aux programmes (c'est-à-dire que chaque programme a sa propre cartographie des adresses virtuelles aux adresses physiques. Cette cartographie est gérée par le système d'exploitation.) La raison ?Eh bien, il y en a beaucoup.1 .Attribuer une mémoire virtuelle aux programmes leur permet de travailler dans un espace restreint (disons 1 à 1000) plutôt que de traiter directement l'immense espace RAM.Cela simplifie les choses.2Un programme n'a pas besoin de s'inquiéter de l'endroit où il est chargé exactement dans RAM.Il peut accéder à ses adresses virtuelles (disons 1 à 1000) et elles sont converties en adresses réelles dans RAM par le système d'exploitation.3 et 3Autoriser l'accès direct à RAM peut permettre à un programme d'accéder à la RAM du système d'exploitation et donc de provoquer des problèmes système ou même une prise de contrôle du système.Ainsi, du point de vue de la sécurité du système, il est préférable d'avoir des adresses virtuelles qui sont ensuite mappées au bon endroit par le système d'exploitation, se fixant à partir de toute malveillance qu'un programme peut avoir l'intention de provoquer.4La mémoire virtuelle permet à un programme de voir son espace mémoire comme un bloc contigu (disons 1 à 1000), tandis que les adresses RAM correspondantes peuvent être dispersées (disons 2501 à 2550 et 4431 à 4480).Une autre simplification pour le programme, à nouveau gérée et amenée à fonctionner correctement par le système d'exploitation.5Il peut permettre à un programme de «croire» qu'il a plus d'espace RAM qu'il ne le fait réellement.Par exemple, le système d'exploitation peut donner au programme des adresses virtuelles 1 à 1000 (donc un bloc de 1000) alors que seules les adresses de 1 à 500 peuvent être mappées en RAM.Le reste peut être non cartographié.Désormais, la plupart des opérations du programme peuvent être satisfaites en accédant aux adresses virtuelles 1 à 500.Le système d'exploitation a donc économisé beaucoup de ressources et d'espace.Si le programme accède à une adresse non cartographiée, disons 700, le système d'exploitation allouera plus d'adresses RAM au programme, les mappera, puis autorisera l'accès.Cela prend un peu de temps (millisecondes seulement, mais c'est plus que des nanosecondes) mais parce que ce n'est pas souvent, le système d'exploitation économise du temps, de la puissance et de l'espace dans l'ensemble.* * C'est ce que la plupart des gens comprennent couramment par la mémoire virtuelle, mais ce n'est que l'une des fonctions de la mémoire virtuelle, en dehors des autres décrites ci-dessus.* * Modifier: mots