Information Technology Reference
In-Depth Information
3.3.2
Chargement et édition des liens dynamique
Nous avons vu précédemment que lors d'une édition des liens dynamique, l'éditeur
de liens ne recherche pas dans les bibliothèques du langage les objets pour lesquels
des liens n'ont pas été résolus une fois les modules objets utilisateurs entrant dans la
composition du programme exécutable pris en compte. Le programme exécutable
construit alors est incomplet puisque des objets n'ont pas d'adresse. En effet, dans le
cas d'une édition des liens dynamique, la prise en compte des bibliothèques est
repoussée à l'étape de chargement. Dans ce cas les bibliothèques du langage sont
chargées en mémoire centrale. Lors du chargement du programme exécutable de
l'utilisateur, le chargeur résout les liens restants en fonction des adresses en mémoire
centrale des objets appartenant aux bibliothèques.
Ce mode opératoire présente un avantage et un inconvénient vis-à-vis de l'édition
des liens statique. Lors d'une édition des liens statique, l'éditeur des liens extrait des
bibliothèques les objets utilisés par les modules utilisateurs et les ajoute à la carte
d'implantation du programme exécutable en cours de construction. Imaginons que
l'éditeur de liens ait construit deux programmes utilisateurs faisant référence à la
même fonction mathématique SQRT 1 . Si ces deux programmes utilisateurs sont chargés
en même temps en mémoire centrale, alors le code de la fonction SQRT se trouvera
également deux fois en mémoire centrale, une fois dans chacun des programmes utili-
sateurs. Cette duplication engendre ici une perte de place inutile en mémoire centrale.
L'édition des liens dynamique résout ce problème puisque la fonction SQRT se trou-
vera une seule fois en mémoire centrale, au sein de la bibliothèque (figure 3.10).
ÉDITION
DE LIENS DYNAMIQUE
ÉDITION
DE LIENS STATIQUE
Bibliothèque math.lib
Fonction SQRT()
a
u
c
h
a
r
g
e
m
e
n
t
l
i
e
n
r
é
s
o
l
u
Module A
appel à SQRT()
Module A
appel à SQRT()
Fonction SQRT()
Module B
appel à SQRT()
Module B
appel à SQRT()
Fonction SQRT()
Figure 3.10
Chargement du programme exécutable relogeable.
1. Fonction racine carrée.
 
 
Search WWH ::




Custom Search