Chapitre 4-1
Chapitre 4-1
Chapitre 4-1
2. Adressage Logique / Adressage Physique : Une adresse générée par le processeur est appelée
adresse logique. Tandis qu’une adresse vue par l’unité de gestion de la mémoire, c’est à dire celle qui
est chargée dans le registre d’adresse de la mémoire, est appelée adresse physique. Il est nécessaire
au moment de l’exécution de convertir les adresses logiques en adresses physiques.
Une adresse physique est toujours calculée en ajoutant à chaque adresse logique l’adresse
de base (l’adresse d’implantation (du chargement) du programme exécutable correspondant au
processus actif) contenue dans un registre. Ce registre de translation est toujours chargé avec cette
adresse qui se trouve au niveau du PCB du processus actif.
B. H. / 2020 1
Module : Système d’Exploitation des Ordinateurs 2ème année Licence Informatique
Dans ce schéma, la valeur du registre de translation est additionnée à chaque adresse logique
générée par un processus. Par exemple, si l’adresse de base est 14000, un accès à l’emplacement 314
est converti à l’emplacement 14314.
Il est à noter que le programmeur n’aperçoit en général pas les adresses physiques ; il manipule
uniquement des adresses logiques.
3.2.1. Allocation avec partitions fixes : Dans un système multiprogrammé, il faut gérer la
répartition de l’espace entre les différents processus. Cette partition peut être faite une fois
pour toute au démarrage du système, qui subdivise la mémoire en N partitions fixes, de
préférence des partitions de tailles différentes. Chaque répartition peut contenir un et un
seul processus. Ainsi le degré de la multiprogrammation1 est limité par le nombre de ces
partitions. Quand une partition devient libre, on sélectionne un programme parmi les
programmes demandant l’exécution et on le charge dans la partition libre. Quand le
processus se termine, la partition devient libre pour un autre processus. Cette technique est
actuellement dépassée (obsolète).
Le problème qui se pose est : Comment allouer les partitions aux processus ?
–(a) une file d’attente par partition
–(b) une file d’attente pour toutes les partitions
Réponse : Chaque nouveau processus est placé dans la file d’attente de la plus petite
partition pouvant le contenir (figure 3 (a)). Cette technique peut conduire à faire attendre un
processus dans une file, alors qu’une autre partition pouvant le contenir est libre.
L’alternative à cette approche consiste à n’utiliser qu’une seule file d’attente : donc, dès
qu’une partition se libère, le système y place le premier processus de la file qui peut y tenir
(figure 3 (b)). Le problème qu’en souffre la technique des partitions fixes est la
fragmentation interne dans les partitions (figure 4). La solution qu’on pourrait proposer est
de créer des partitions variables.
1
Degré de la multiprogrammation = le nombre maximal des programmes pouvant se charger au niveau de la mémoire.
B. H. / 2020 2
Module : Système d’Exploitation des Ordinateurs 2ème année Licence Informatique
Une des méthodes consiste à obliger le SE à maintenir une table indiquant les partitions de
mémoire disponibles et celles qui sont occupées. Quand un processus arrive en demandant
de la mémoire, on cherche un espace suffisamment grand pour contenir ce processus. Si
nous en trouvons un, nous allouons seulement la quantité de mémoire nécessaire et laissant
le reste disponible pour satisfaire les futures processus.
Dans ce cas, un autre problème peut survenir : Un processus qui se termine laisse un "trou",
ce trou est utilisé pour charger un nouveau processus qui ne le remplira pas complètement
en général. On va donc, au fur et à mesure que le temps passe, vers une multitude de "petits
trous". La somme de ces petits trous peut alors n'être pas négligeable et le recours à des
techniques de récupération peuvent être mises en œuvre.
Exemple : L’état de la mémoire d’un système est décrit par la figure ci-dessous. Le système a
une file de travaux décrite par le tableau suivant :
Les figures suivantes montrent les différents états successifs de la mémoire après les entrées
et les sorties des processus :
B. H. / 2020 3
Module : Système d’Exploitation des Ordinateurs 2ème année Licence Informatique
A chaque instant, on dispose d’une liste de tailles de blocs disponibles ainsi que la file
d’attente des processus prêts. Le SE peut Scheduler la file d’attente selon un algorithme de
Scheduling (FCFS par exemple). La mémoire est allouée aux processus jusqu’à ce qu’il n’existe
aucun bloc de mémoire suffisamment grand pour contenir ce processus.
Mais comment allouer un espace de taille N à un processus à partir d’une liste de trous libres
? On peut utiliser l’un des trois algorithmes de placement suivant : First-fit, Best-fit ou Worst-
fit.
Algorithme First-fit (Le premier ajustement) : On alloue au processus le premier trou
suffisamment grand.
Algorithme Best-fit (Le meilleur ajustement) : On alloue au processus le trou le plus
petit suffisamment grand ; c’est à dire celui qui provoquera la plus petite miette
possible. Cet algorithme nécessite le parcours de toute la liste des espaces libres.
Algorithme Worst-fit (Le pire ajustement) : On alloue au processus le trou le plus
grand. Cet algorithme nécessite le parcours de toute la liste des espaces libres,
l’objectif de cet algorithme est d’éviter de créer des petits trous, c’est pour cela
qu’on choisit des partitions de grandes taille.
Dans les cas du système Linux, on utilise un algorithme par subdivision (voir TP).
Exemple : L’état de la mémoire d’un système est décrit par la figure suivante. On suppose
qu’un nouveau processus P demande un espace mémoire de taille 80KO.
B. H. / 2020 4