Tout en comprenant le concept de pagination dans la gestion de la mémoire, je suis passé à travers les termes "mémoire logique" et "mémoire physique". Quelqu'un peut-il me dire s'il vous plaît le diff. entre les deux ??? Est-ce que la mémoire physique = disque dur .__ et la mémoire logique = RAM
Il y a trois concepts liés ici:
Physique - Un appareil réel
Logique - Une traduction vers un périphérique physique
Virtual - Une simulation d'un périphérique physique
Le terme "mémoire logique" est rarement utilisé car nous utilisons normalement le terme "mémoire virtuelle" pour couvrir à la fois les traductions virtuelle et logique de la mémoire.
Dans une traduction d'adresse, nous avons un index de page et un index d'octet dans cette page.
L'index de page vers le Nième chemin du processus peut être appelé une mémoire logique. Le système d'exploitation redirige le numéro de page ordinale vers une adresse physique quelconque.
La raison pour laquelle on parle rarement de mémoire logique est que la page créée doit être simulée à l'aide de la pagination, devenant une adresse virtuelle.
La transition d'adresse est une combinaison de logique et de virtuelle. L'usage normal consiste à appeler le tout "la mémoire virtuelle".
Nous pouvons imaginer qu'à l'avenir, à mesure que la mémoire grandira, la pagination disparaîtra complètement. Au lieu d'avoir des systèmes de mémoire virtuelle, nous aurons des systèmes de mémoire logiques.
Une adresse générée par la CPU est communément appelée adresse logique, tandis qu'une adresse vue par l'unité de mémoire, c'est-à-dire celle chargée dans le registre d'adresses mémoire de la mémoire, est communément appelée adresse physique
La mémoire physique est en RAM; Appartient en réalité à la mémoire principale. L'adresse logique est l'adresse générée par la CPU. Dans la pagination, l'adresse logique est mappée en adresse physique à l'aide de tables de pages. L'adresse logique contient le numéro de page et une adresse de décalage.
Pas beaucoup de clarté ici jusqu'à présent, voici:
Physical Memory} correspond aux adresses de la CPU sur son bus d'adresses. C'est le logiciel de plus bas niveau auquel on peut accéder. La mémoire physique est organisée en une séquence d'octets de 8 bits, chacun avec une adresse physique.
Toute application devant gérer sa mémoire au niveau physique n’est évidemment pas faisable. Ainsi, depuis le début, les processeurs ont introduit des abstractions de mémoire connues collectivement sous le nom de "Gestion de la mémoire". Celles-ci sont toutes des fonctionnalités de CPU optionnelles mais omniprésentes gérées par votre noyau:
Linear Memory est ce à quoi les programmes de niveau utilisateur s'adressent dans leur code. Elle est perçue comme un espace d'adresses contiguës, mais en arrière-plan, chaque adresse linéaire correspond à une adresse physique. Cela permet aux programmes au niveau utilisateur d'adresser la mémoire de manière commune et laisse la gestion de la mémoire physique au noyau.
Cependant, ce n'est pas si simple. Les programmes de niveau utilisateur adressent la mémoire linéaire à l'aide de différents modèles de mémoire. Vous en avez peut-être entendu parler, le modèle de mémoire segmentée. Sous ce modèle, les programmes adressent la mémoire en utilisant des adresses logiques. Chaque adresse logique fait référence à une entrée de table qui correspond à un espace d'adressage linéaire. De cette manière, les systèmes d’exploitation peuvent décomposer une application en différentes parties de la mémoire en tant que fonction de sécurité (détails hors de portée ici).
Dans Intel 64 bits (sous-mode 64 bits, IA-32e), la mémoire segmentée n'est jamais utilisée et chaque programme peut au contraire adresser tous les 2 ^ 64 octets d'espace d'adressage linéaire à l'aide d'un modèle de mémoire à plat. Comme son nom l'indique, toute la mémoire linéaire est disponible à un niveau accessible par octet. C'est le plus simple.
Enfin, nous arrivons à Mémoire virtuelle. Ceci est une fonctionnalité de la CPU facilitée par la MMU, totalement invisible aux programmes au niveau utilisateur et gérée par le noyau. Il permet de mapper des adresses physiques sur des adresses virtuelles, organisées sous forme de tableaux de pages ("tableaux de pages"). Lorsque la mémoire virtuelle ("paging") est activée, les tables peuvent être chargées dans la CPU, ce qui entraîne la traduction transparente des adresses de mémoire référencées par un programme en adresses physiques. Les tables de pages sont échangées à la volée par le noyau lorsque différents programmes sont exécutés. Cela permet l'optimisation et la sécurité dans la gestion des processus/de la mémoire (détails hors de portée pour ici)
N'oubliez pas que la mémoire linéaire et la mémoire virtuelle sont des fonctions indépendantes pouvant fonctionner conjointement. Si la pagination est désactivée, les adresses linéaires mappent les adresses un à un avec des adresses physiques. Lorsqu'elles sont activées, les adresses linéaires sont mappées sur la mémoire virtuelle.
Remarques: