La mémoire est représentée par un grand tableau de mot (octets), chacun ayant sa propre adresse. Le processeur va extraire les instructions de la RAM en fonction de la valeur d’un compteur d’instructions. Une partie du SE gère le stockage de la mémoire centrale de l’ordinateur et du disque : ceci se nomme le système de gestion de la mémoire. Les principales fonctions du systèmes de gestion de la mémoire sont :
• Le suivi de l’état des différentes parties de la mémoire si elles sont utilisées ou non utilisées => connaître les zones libres et utilisées
• L’allocation et la libération de la mémoire principale aux différents processus
• L’utilisation de la mémoire virtuelle et le contrôle du va et vient (swapping) entre la mémoire principale et le disque lorsque cette dernière ne peut pas contenir tous les processus. Il existe plusieurs stratégies pour gérer la mémoire telles que :
La Multiprogrammation avec partitions fixes : Exemple
![]() |
Va et Vient , le partitionnement dynamique
Gestion de la mémoire : Pagination (Paging)
Avant d’expliquer la notion de pagination, quelques prés-requis sont nécessaires.
• L’espace adresse logique (virtuelle) d’un processus n’est pas contigu. Alors que, la mémoire physique est découpée en blocs de taille fixe appelés cadres de pages ou en anglais frames.
• La mémoire logique est également subdivisée en blocs de la même taille appelés pages.
• Pour exécuter un programme de n pages, il faut trouver n cadres libres et charger le programme. Il faut savoir quels cadres sont alloués, lesquels sont disponibles, etc. Cette information est sauvegardée dans la table de cadre (Frame table).
La pagination consiste donc à diviser l’espace d’adressage virtuel en pages qui ont la même taille. La mémoire physique est également divisée en pages physiques ayant la même taille. La pagination consiste à placer seulement certaines pages dans la RAM. Les autres pages restent dans la mémoire auxiliaire jusqu’à qu’elles soient référencées. Une table de pages existe pour gérer les correspondances entre les pages virtuelles et les pages physiques, c’est à dire : il traduit l’adresse logique en adresse physique. (voir Figure 8)
Pagination: défaut de page
Maintenant, on va étudier le cas où l’adresse virtuelle référence une page qui n’est pas présente en mémoire physique. Ce cas est nommé défaut de page. Dans le cas de défaut de page, le mécanisme d’adressage génère un défaut de page. Si la mémoire physique est pleine, il faut virer de la mémoire physique une page c’està-dire un remplacement. Le choix d’une page « victime » se fait selon une stratégie de remplacement. Il existe plusieurs stratégies de remplacement :
• FIFO, l’abréviation de First In First Out nommée aussi PEPS (l’abréviation de Premier Entré Premier Sortie) : le premier qui arrive sera celui qui sera servi le premier, donc par ordre chronologique de chargement. On remplace la page la plus anciennement utilisée, ce qui implique une datation lors du chargement de chaque page virtuelle.
• LRU, l’abréviation de Least Recently Used : on remplace la page le plus récemment utilisée. Ce qui impose, encore, de dater les pages.
• LFU, l’abréviation de Last Frequently Used : on remplace la page la moins fréquemment utilisée. Pour cela, on a besoin d’un compteur de fréquence d’utilisation de chaque page.
• RNDOM : il s’agit de choisir au hasard la page à remplacer. Cela ne nécessite pas d’informations supplémentaires.
La Segmentation
Les programmes se divisent en parties appelées segments. Chaque segment représente une entité (procédure, bloc de données) (Voir Figure 9) .
Les segments n’ont pas toujours la même taille.
Un segment virtuel est de même taille qu’un segment en mémoire physique.
Le principe de traduction d’adresses consiste à traduire les adresse virtuelles (logiques) vers celles physiques. La Figure 10 montre l’utilisation du tableau des segments pour effectuer la traduction de l’adresse virtuelle vers l’adresse physique. Comme la pagination, la segmentation est également un schéma de gestion de mémoire. Le processus est divisé en segments de taille variable et chargé dans l’espace d’adressage mémoire logique. L’espace d’adressage logique est la collection de segments de taille variable. Chaque segment a son nom et sa longueur. Pour l’exécution, les segments de l’espace mémoire logique sont chargés dans l’espace mémoire physique. L’adresse spécifiée par l’utilisateur contient deux quantités : le nom du segment et le décalage. Les segments sont numérotés et référencés par le numéro de segment au lieu du nom de segment. Ce numéro de segment est utilisé comme index dans la table de segments et la valeur de décalage détermine la longueur ou la limite du segment. Le numéro de segment et le décalage génèrent conjointement l’adresse du segment dans l’espace de mémoire physique.





0 Commentaires