Académique Documents
Professionnel Documents
Culture Documents
Seance 7
Seance 7
Patrick TELEMAQUE
Tout programme écrit dans un langage de programmation donné suit la suite logique
suivante : il est tapé, ensuite enregistré ensuite compilé et pour finir exécuté.
Edition des liens : cette étape établit le lien entre le programme et les différents
fichiers concernés. Parmi ceux-ci on trouve, les fichiers d'entête (extension h), les
fichiers contenant les autres parties du programme ( dans le cas où il est réparti entre
plusieurs fichiers) et les bibliothèques du langage (dans le cas où des fonctions sont
appelées). Cette étape génère un fichier exécutable.
Il est nécessaire de rappeler les différentes étapes entreprises par le processeur pour
exécuter une instruction.
Décodage de l'instruction par l'UCC afin d'y identifier les opérateurs et les opérandes.
Recherche des opérandes (si elles ont été récemment utilisées, elles peuvent être dans
le cache du processeur). Le cas échéant, le processeur doit se procurer les adresses de
ces opérandes et reprendre les étapes d'extraction de la mémoire.
On appelle liaison d'adresses la correspondance entre une adresse logique et une
adresse physique.
Cette étape de liaison peut être réalisée durant l'édition des liens mais dans la plupart
des cas elle est effectuée au moment de l'exécution. Le processeur transmet des
adresses physiques sur le bus adresses.
Adressage relatif
C’est un adressage qui est relatif à la première adresse attribuée au programme
exécutable.
Toutes les adresses doivent être converties ou traduites en partant de cette adresse. On
peut ainsi changer de zone mémoire d’une exécution à l’autre. Un tel programme est dit
relogeable.
La conversion des adresses est liée au mode d’allocation appliqué : contiguë ou non.
En mode contiguë, une adresse relative qui vaut 100 doit être considérée comme 100 +
l’adresse de début du fichier généré par l’éditeur de liens.
En mode non contiguë, le programme est partagé entre plusieurs zones dispersées dans
la mémoire et le mécanisme de gestion de la mémoire doit trouver la zone et ensuite
l’adresse.
On recense essentiellement deux modes de gestion de la mémoire centrale :
le mode contigu et celui non contigu.
Stratégie préventive du worst fit : qui alloue une grande partition plutôt
qu'une petite afin de garder des petites zones libres. En effet, les petits
programmes sont plus fréquents que ceux de grande taille.
il est possible de créer des partitions plus grandes en déplaçant des programmes vers le
haut ou le bas de la mémoire. Ce traitement est appelé compactage de la mémoire,
toutefois son usage n'est pas recommandé en raison du temps processeur qu'il
nécessite.
Fragmentation
Allocations et désallocations successives des programmes en mémoire centrale créent
des trous, c'est-à-dire des zones libres de taille insuffisante en mémoire centrale : la
mémoire centrale est alors fragmentée.
La mémoire peut être allouée par zones de taille fixe ou variable. Quand
toutes les zones ont la même taille, on parle de page et de systèmes paginés.
La table des pages est une table contenant autant d'entrées que de pages dans
l'espace d'adressage d'un processus. Chaque processus a sa propre table des pages.
Chaque entrée de la table est un couple <n° de page, n° de case physique dans laquelle
la page est chargée >.
La pagination constitue un découpage de l'espace d'adressage du
processus qui ne correspond pas à l'image que le programmeur a de son
programme.
La table des segments est une table contenant autant d'entrées que de segments
dans l'espace d'adressage d'un processus. Chaque entrée de la table est un couple < n°
de segment, adresse d'implantation du segment >.