Éditeurs de liens, chargeurs et exécutables

Lorsque 100 processus utilisent la même bibliothèque partagée, quelle est l'utilisation correcte de la mémoire physique ?

  1. ALes pages de code non modifiées sont partagées en une seule copie, et chaque processus possède ses propres pages de données modifiables
  2. BLe code comme les données sont dupliqués en 100 copies, une par processus
  3. CToutes les pages, données comprises, sont partagées en une seule copie, et les valeurs sont visibles entre processus
Afficher la réponse et l'explication

Réponse : A. Les pages de code non modifiées sont partagées en une seule copie, et chaque processus possède ses propres pages de données modifiables

L'OS projette la bibliothèque partagée dans l'espace d'adressage virtuel de chaque processus, en faisant pointer les pages de code et de constantes non modifiées vers les mêmes pages physiques. Les pages de données modifiables, comme les variables, sont rendues distinctes pour chaque processus, par exemple en créant une copie au moment de l'écriture (copy-on-write). Ainsi, même pour 100 processus, la mémoire correspondant au code de la bibliothèque n'existe qu'en un exemplaire.

S'entraîner sur ce thème Retour au thème

Autres questions sur Éditeurs de liens, chargeurs et exécutables

  1. 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 ?
  2. Quel est le rôle d'un script d'édition de liens (linker script) utilisé en développement embarqué ?
  3. Sur un microcontrôleur sans OS, quel traitement le code de démarrage effectue-t-il juste après la mise sous tension, avant d'appeler main ?
  4. Quelle est la différence correcte entre « section » et « segment » dans un fichier ELF ?
  5. Quelle attaque est plus facile à prévenir en n'autorisant jamais simultanément « inscriptible » et « exécutable » sur une page mémoire (W^X, séparation écriture-exécution) ?

Comparatifs sur ce thème