Qu'est-ce que Relocalisation ?

Opération qui, une fois les adresses définitives du code et des données fixées, remplace les adresses provisoires contenues dans les instructions et les données par les bonnes valeurs. Effectuée par l'éditeur de liens, et en partie à l'exécution par l'éditeur de liens dynamique.

Nom japonais: 再配置

« Relocalisation » apparaît dans 8 questions d'entraînement réparties sur 1 thèmes, dont Éditeurs de liens, chargeurs et exécutables.

Domaine: Éditeurs de liens, chargeurs et exécutables

S'entraîner : questions sur Relocalisation

Quelle description de la relocalisation effectuée par l'éditeur de liens est correcte ?

  1. AUne fois les adresses définitives du code et des données fixées, réécrire les adresses dans les instructions et les données avec les valeurs correctes
  2. BTransférer un programme en cours d'exécution vers un autre ordinateur pour y poursuivre son exécution
  3. CÉvincer des pages vers le stockage lorsque la mémoire manque
Afficher la réponse et l'explication

Réponse : A. Une fois les adresses définitives du code et des données fixées, réécrire les adresses dans les instructions et les données avec les valeurs correctes

Le compilateur produit chaque fichier comme s'il commençait à l'adresse 0, et enregistre comme informations de relocalisation les emplacements utilisant l'adresse de fonctions d'autres fichiers ou de ses propres variables. Après avoir disposé tous les fichiers et fixé les adresses réelles, l'éditeur de liens calcule pour chaque emplacement enregistré l'adresse correcte (ou la distance au PC) et l'inscrit dans l'instruction. En édition de liens dynamique, une partie de ces réécritures est effectuée à l'exécution par l'éditeur de liens dynamique.

« Relocalisation » dans les explications

Questions mentionnant « Relocalisation » (8)

  1. Quelle description de la relocalisation effectuée par l'éditeur de liens est correcte ?
  2. Quelle affirmation concernant le fichier objet (.o) produit par le compilateur à partir d'un fichier source est correcte ?
  3. Quel est le rôle principal de l'éditeur de liens (linker) ?
  4. Que signifie l'écriture « extern int count; » en C ?
  5. Quel est le rôle de l'éditeur de liens dynamique (ld.so, etc.) qui intervient au démarrage d'un programme à liens dynamiques sous Linux ?
  6. En désassemblant un fichier objet, on constate que la destination de l'instruction appelant la fonction externe printf a une valeur provisoire comme 0. Quand cette valeur est-elle correctement renseignée ?
  7. Quelle est la différence correcte entre « section » et « segment » dans un fichier ELF ?
  8. Quelle combinaison des formats d'exécutables utilisés par les principaux OS est correcte ?

Termes associés

Éditeur de liens (linker) Édition de liens dynamique Éditeur de liens dynamique Fichier objet ELF Table des symboles Résolution des symboles Point d'entrée PLT (Procedure Linkage Table) GOT (table globale des décalages)

Retour au glossaire