Question

Je lis les systèmes d'exploitation Concept et je suis sur le chapitre 8! Cependant, je pourrais utiliser des éclaircissements, ou l'assurance que je comprends bien.

Adresses logiques: Les adresses logiques sont générées par la CPU, selon le livre. Qu'est-ce que cela signifie exactement? (Dans un système d'adresses généré exécuter ..) Je suppose que lorsque le code est compilé pour un programme, le programme a pas idée où le code sera chargé en mémoire. Tout le compilateur fait est mis en place un aperçu général de la mise en page du programme et la façon dont l'image doit être posée, mais n'attribue aucune adresse réelle à elle. Lorsque le programme est exécuté, la CPU prend cette image mise en page que le compilateur fait et les mains sur quelques adresses (celles logiques) à celles générées par le code.

adresses physiques: Les adresses physiques ne sont pas générés jusqu'à ce que l'unité centrale génère un certain ensemble d'adresses logiques (constitués d'une adresse de base et un décalage). Les adresses logiques passent par le MMU ou un autre appareil et quelque part le long de la ligne les adresses logiques sont mis en correspondance avec les adresses de RAM physique.

Quelle est donc la différence réelle? Je peux voir un avantage. L'utilisation d'adresses logiques donne plus de liberté aux applications. Si les adresses physiques ont été codées en dur, le succès du programme dépendra en grande partie sur la machine de l'ordinateur physique, les adresses RAM disponibles etc.

Ne pas l'utilisation d'adresses logiques converties à l'adresse physique imposer deux étapes au lieu d'un à un, et donc plus sur la tête?

Où puis-ce que les adresses logiques résident après génération? Ils peuvent exister dans un registre sur la CPU alors que la CPU est l'entretien d'un processus, mais avant et après, où vont-ils? Je comprends cela dépend la mise en œuvre. Je suppose qu'ils peuvent être stockés dans un espace de registre spécial ou d'un tampon sur la CPU comme un TLB, correct? Sinon, la table peut exister dans la RAM réelle elle-même, et la CPU ne détient qu'un pointeur / adresse à l'adresse de base de la table dans la RAM, correcte?

Il semble maintenant les adresses dans la mémoire vive est contre-productif à la fin des adresses de mémoire logique. Je ne peux que supposer que ma compréhension est erronée.

Était-ce utile?

La solution

Cette réponse est loin d'être exhaustive, mais elle peut l'expliquer de quoi faire les choses cliquez sur.

Dans les systèmes de mémoire virtuelle, il existe un décalage entre les adresses logiques et physiques.

Une application peut être donné un espace d'adressage virtuel (par exemple le let) 4G. Ceci est la mémoire utilisable et il est libre de l'utiliser comme il l'entend. Il est un beau bloc contigu de mémoire (du point de vue de l'application).

Cependant, ce ne sont pas uniquement cours d'exécution de l'application et le système d'exploitation doit servir de médiateur entre tous. Sous ce beau modèle contigu, il y a beaucoup de cartographie en cours pour convertir adresses logiques en adresses physiques.

Avec cette application, le système d'exploitation et le matériel (je vais appeler ces couches inférieures à partir de maintenant) est libre de mettre les pages d'application partout où il veut (que ce soit dans la mémoire physique ou permutée au stockage secondaire).

Lorsque l'application tente de mémoire d'accès à l'adresse logique 50, les niveaux inférieurs peuvent traduire à une adresse physique en utilisant des tables de traduction. Et, si elle tente d'accéder à la mémoire logique qui a été permutées sur le disque, une erreur de page est élevée et les niveaux inférieurs peut apporter le dos de données pertinentes en mémoire, quel que soit physique adresse il veut.

Dans les mauvais jours où les adresses physiques étaient tout ce que vous aviez, le code devait être repositionnable (ou fixe sur la charge) car il pourrait charger partout. Avec la mémoire virtuelle, ce code (et les données) peuvent être à l'emplacement de mémoire logique 50 dans une douzaine de différents processus en même temps -. Il est réel physique adresse sera différent cependant

Il peut même être partagée afin que l'on physique copie existe dans l'espace d'adressage de nombreux processus à la fois. Ceci est le point crucial de code partagé (donc nous ne l'utilisons pas plus de mémoire physique que nous avons besoin) et de la mémoire partagée pour permettre une communication simple inter-processus).

Il est, bien sûr, moins efficace qu'un environnement d'adresse physique pure, mais les fabricants de CPU tentent de le rendre aussi incroyablement efficace que possible, car il est largement utilisé. Les avantages far l'emportent sur les inconvénients.

Autres conseils

adresse logique est l'adresse par rapport au programme. Il indique la quantité de mémoire un processus particulier prendra, pas dire ce qui va l'emplacement exact du processus et cet endroit exact nous avons généré en utilisant une cartographie, et est connu comme l'adresse physique.

Adresse logique: - Adresse logique générée par la CPU. quand nous donner le problème à l'ordinateur alors notre ordinateur passe le problème au processeur par adresse logique, que nous ne sommes pas vu cette adresse appelée adresse logique.

Adresse physique: - lorsque notre processeur le processus de création de résoudre notre problème, nous enregistrons des données dans la mémoire secondaire par adresse appelée adresse physique

  1. Une adresse générée par l'unité centrale est communément appelé une adresse logique. L'ensemble de toutes les adresses logiques générées par un programme est connu comme espace d'adressage logique. Considérant que, vu d'une adresse de la mémoire UNIT- qui est, celui chargé dans le registre mémoire d'adresse de la mémoire- est communément appelée adresse physique. L'ensemble de toutes les adresses physiques correspondant aux adresses logiques est connue comme espace d'adresse physique.
  2. La compilation et l'adresse de liaison à la charge en temps procédés génèrent des adresses logiques et physiques identiques. Toutefois, dans le schéma adresse de liaison temps d'exécution, les espaces logiques et physiques diffèrent-adresse.
  3. Le programme utilisateur ne voit jamais les adresses physiques. Le programme crée un pointeur vers une adresse logique, par exemple 346, stocke en mémoire, le manipuler, le compare à d'autres adresses- logique tout comme le numéro 346. Seulement lorsqu'une adresse logique est utilisée comme adresse de mémoire, il est déplacé par rapport au registre de base / délocalisation. Le dispositif matériel de mappage de mémoire appelé l'unité de gestion mémoire- (MMU) convertit des adresses logiques en adresses physiques.
  4. adresses logiques comprises entre 0 et max. Le programme utilisateur qui génère l'adresse logique pense que le processus se déroule dans des endroits 0 à max. adresses logiques doivent être mis en correspondance avec des adresses physiques avant leur utilisation. Les adresses physiques varient de (R + 0) à (R + max) pour une valeur de registre de base / relocalisation R.
  5. Exemple: entrer la description d'image ici Correspondance de la logique d'adresses physiques à l'aide de l'unité de gestion de mémoire (MMU) et la relocalisation / registre de base La valeur dans le registre de relocalisation / base est ajoutée à chaque adresse logique généré par un processus utilisateur, au moment où elle est envoyée à la mémoire, pour générer l'adresse physique correspondante. Dans la figure ci-dessus, la valeur de base / déplacement est 14000, puis une tentative par l'utilisateur pour accéder à l'emplacement 346 est mis en correspondance à 14346.

Logique Vs l'espace d'adresse physique

Une adresse générée par l'unité centrale de traitement est généralement arbitré comme adresse logique, alors que l'adresse vu par l'unité de mémoire, qui est une chargée dans le registre d'adresse de mémoire de la mémoire est couramment arbitré comme étant le temps de compilation adresse.Système physique et de la charge adresse de temps de liaison génère le addresses.However logique et physique identique, le schéma d'association d'adresse de temps d'exécution des résultats dans différentes adresses logiques et physiques.

L'ensemble de toutes les adresses logiques générées par un programme est connu comme l'espace Adresse logique, alors que l'ensemble de toutes les adresses physiques qui correspondent à ces adresses logiques correspond à l'adresse physique Space.Now, le mappage de temps d'exécution de l'adresse virtuelle à l'adresse physique est effectuée par un dispositif matériel appelé Unit.Here gestion de la mémoire dans le cas de la cartographie du registre de base est connue comme la relocalisation valeur registre dans le registre de relocalisation est ajouté à l'adresse générée par un processus utilisateur au moment où il est envoyé à la mémoire de Soient comprendre cette situation avec l'aide de l'exemple: Si le registre de base contient la valeur 1000, puis une tentative par l'utilisateur à l'adresse emplacement 0 est dynamiquement déplacé à l'emplacement 1000, un accès à l'emplacement 346 est mis en correspondance à l'emplacement 1346

Le programme utilisateur ne voit jamais le véritable espace d'adresse physique, il traite toujours avec les addresses.As logiques que nous avons deux types d'adresses différentes d'adresse logique dans la gamme (0 à max) et les adresses physiques dans la gamme (R à R + max) où R est la valeur de l'utilisateur relocalisation de registre ne génère que les adresses logiques et pense que les pistes de processus dans l'emplacement de 0 à max.As il est clair à partir du texte qui précède que les fournitures de programme d'utilisateur seulement des adresses logiques, ces adresses logiques doit être mis en correspondance à l'adresse physique avant leur utilisation.

Une adresse logique est une référence à l'emplacement de mémoire indépendante de l'affectation actuelle des données à la mémoire. Une adresse physique ou adresse absolue est un emplacement actuel dans la mémoire principale.

Il est au chapitre 7.2 de Stallings.

Au meilleur de ma mémoire, une adresse physique est explicite, jeu d'adresse de pierre en mémoire, tandis qu'une adresse logique se compose d'un pointeur de base et le décalage.

La raison en est que vous avez essentiellement spécifié. Il permet non seulement la segmentation des programmes et des processus en fils et des données, mais aussi pour le chargement dynamique de ces programmes et l'allocation d'au moins pseudo-parallélisme, sans entrelacement réel des instructions en mémoire ont besoin d'avoir lieu.

J'ai trouvé un article sur logique vs adresse physique dans le système d'exploitation, ce qui explique clairement à ce sujet.

Adresse logique est généré par l'UC pendant qu'un programme est en cours. L'adresse logique est adresse virtuelle car il n'existe pas physiquement donc il est aussi connu que l'adresse virtuelle. Cette adresse est utilisée comme référence pour accéder à l'emplacement de mémoire physique par CPU. Le terme espace d'adressage logique est utilisé pour l'ensemble de toutes les adresses logiques générées par un point de vue des programmes. Le dispositif matériel appelé unité de gestion de mémoire est utilisée pour cartographier l'adresse logique à son adresse physique correspondante.

Adresse physique identifie un emplacement physique des données requises dans une mémoire. L'utilisateur ne traite directement avec l'adresse physique, mais peut accéder par son adresse logique correspondant. Le programme utilisateur génère l'adresse logique et pense que le programme est en cours d'exécution dans cette adresse logique, mais le programme a besoin de mémoire physique pour son exécution donc l'adresse logique doit être mis en correspondance à l'adresse physique bu MMU avant leur utilisation. Le terme adresse physique L'espace est utilisé pour toutes les adresses physiques correspondant aux adresses logiques dans un espace d'adressage logique.

Source: www.geeksforgeeks.org

Une adresse logique est l'adresse à laquelle un élément (cellule de mémoire, l'élément de stockage, l'hôte du réseau) semble résider dans la perspective d'un programme d'application d'exécution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top