Вы находитесь на странице: 1из 30

CHAPITRE 3:

GESTION DE LA
MÉMOIRE
INTRODUCTION:
 Mémoire: grand tableau de mots (octets), chacun
possédant sa propre adresse
 Elle doit être gérée avec attention.
 Même si la quantité de mémoire d’un ordinateur a
beaucoup augmentée, la taille des programmes s’accroît
aussi.
 Le gestionnaire de mémoire est un sous-ensemble du
système d'exploitation. Son rôle est de partager la
mémoire entre l'OS et les diverses applications.
HIÉRARCHIE DES MÉMOIRES:

 Mémoire du cache: volatile, rapide, chère


 Mémoire centrale: volatile, moins rapide, moins chère
 Mémoire de masse–disque: non volatile, lente, pas chère
CONCEPTS LIÉS À LA GESTION DE LA MÉMOIRE :
 Chargement de processus en mémoire

 Un programme doit être placé en mémoire centrale (RAM)


afin d’être exécuté (sous forme de processus) ;
 Ce chargement en mémoire prend du temps ;
 Un processus se trouve souvent interrompu au cours de son
exécution, par exemple en attente d’une Entrée/Sortie ;
 Le système a l’objectif de conserver le plus grand nombre de
processus actifs en mémoire.
GESTIONNAIRE DE LA MÉMOIRE :

Le gestionnaire de mémoire a pour rôle de :


 Allouer de la mémoire aux processus ;
 Connaître les zones mémoire libres ou occupées ;
 Récupérer de la mémoire en fin d’exécution ;
 Traiter le va-et-vient entre le disque et la mémoire
centrale (swap).
ADRESSAGE LOGIQUE/ADRESSAGE PHYSIQUE :

 Adresse logique ou adresse virtuelle (virtual address)


 Adresse générée par la CPU.
 Adresse virtuelle
 Adresse physique:
 Adresse vue par l’unité de mémoire.
 fait référence à un emplacement dans l’unité de mémoire.
 MMU (Memory Management Unit): Dispositif matériel qui
fait la conversion des adresses virtuelles à physiques
SCHÉMA DE CONVERSION :
LOGIQUE  PHYSIQUE

 Registre de base = registre de translation (realocation


register).
 La valeur du registre de translation est additionnée à chaque
adresse générée par un processus utilisateur au moment où
il est envoyé à la mémoire.
 Le programme utilisateur n’aperçoit jamais les adresses
physiques; il traite les adresses logiques.
Adresse logique  Adresse physique
GESTION DE LA MÉMOIRE POUR SYSTÈMES
MONOTÂCHE (MONOPROGRAMMATION)

 La manière la plus simple de gestion de mémoire: exécuter


un seul programme à la fois.
 La mémoire est habituellement subdivisée en deux
partitions, une pour le SE résident (en général en mémoire
basse) et l’autre pour les processus utilisateur
 (mémoire haute).Utilisé par certains (petits) MS-DOS. Dans
les IBM-PC, la portion du système dans la ROM est appellée
BIOS (Basic Input Output System).
GESTION DE LA MÉMOIRE (MONOPROGRAMMATION)
MULTIPROGRAMMATION

 La plupart des SE modernes autorisent l’exécution de


processus multiples en même temps: Lorsqu’un processus est
bloqué en attente d’une E/S, un autre peut utiliser la CPU.
 La Multiprogrammation améliore le taux d’utilisation du CPU
mais requiert un bon partitionnement de la mémoire.
MULTIPROGRAMMATION AVEC PARTITIONS
FIXES DE TAILLES ÉGALES

 la mémoire est subdivisée en partitions fixes de tailles égales,


 Chaque partition peut contenir exactement un processus.
 Chaque nouveau processus est placé dans une partition vide
 Nécessité d’une table des partitions ayant pour rôle l’indication de
l’état (libre ou occupée) de chaque partition
 Problème de fragmentation interne : si la taille de partition est
supérieure à l’espace recueilli par un certain processus le reste de
cette partition restera vide ce qui cause une perte d’espace
mémoire. (solution: compactage mais couteuse)
 Degré de multi programmation = nombre de partitions.
MULTIPROGRAMMATION AVEC PARTITIONS
FIXES DE TAILLES INÉGALES

 subdiviser la mémoire en n partitions de taille et différentes.


 Chaque nouveau processus est placé dans la file d’attente de
la plus petite partition qui peut le contenir
 Cela peut conduire à faire attendre un processus dans une
file, alors qu’une autre partition pouvant le contenir est libre.
 Il existe deux méthodes de gestion :
 une file d'attente par partition
 une seule file d'attente globale
Partition fixes avec des files Partition fixes avec une seule
d’attente différentes file d’attente
CAS D’UNE FILE D’ATTENTE PAR PARTITION

 Chaque nouveau processus est placé dans la file d'attente


de la plus petite partition pouvant le contenir.
 Inconvénients :
 on perd en général de la place au sein de chaque partition
 il peut y avoir des partitions inutilisées (leur file d'attente est
vide)
CAS D’UNE SEULE FILE D’ATTENTE GLOBALE

 Il existe deux stratégies :


 Dès qu'une partition se libère, on lui affecte la première tâche
de la file qui peut y tenir.
 Inconvénient : on peut ainsi affecter une partition de grande taille à
une petite tâche et perdre beaucoup de place
 Dès qu'une partition se libère, on lui affecte la plus grande
tâche de la file qui peut y tenir.
 Inconvénient : on pénalise les processus de petite taille.
 Alternative: dès qu’une partition se libère, le système y place le
premier processus de la file qui peut y tenir. Cette solution réduit
la fragmentation interne de la mémoire.
TECHNIQUES D’ALLOCATION DE LA MÉMOIRE

1. Première zone libre (first fit)


 On trouve le premier trou suffisamment grand pour contenir le
processus.
 Le trou est ensuite divisé en deux parties: une pour le processus et
l’autre pour la mémoire inutilisée.

2. Zone libre suivante (next fit)


 Identique à l’algorithme précédent sans que la recherche commence
au dernier espace libre trouvé.
 Les performance sont légèrement meilleures
TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
3. Meilleur ajustement (best fit)
 Parcourt toute la liste et recherche le plus petit trou pouvant
contenir le processus.
 Évite de partitionner inutilement les gros trous
 Cet algorithme crée des trous minuscules inutilisables par la suite
 Plus lent que les algorithmes précédents
4. Plus grand résidu (worst fit)
 On prend le plus grand trou disponible
 Le trou restant est assez grand pour être réutilisé
 Des simulations démontrent que cette solution n’est pas
meilleure que la précédente.
MULTIPROGRAMMATION AVEC PARTITIONS
VARIABLES

 Au lancement du système, on crée une seule zone libre de


taille maximale.
 Lorsqu'on charge un programme, on le place dans une zone
libre suffisante, et on lui alloue exactement la mémoire
nécessaire.
 Le reste devient une nouvelle zone libre.
 Lorsqu'un programme s'achève, sa partition redevient libre, et
peut éventuellement grossir une zone libre voisine. Il n'y a
donc ce qu’on appelle fragmentation externe.
RECOUVREMENT (SWAPPING)

 Parfois la mémoire principale est insuffisante pour maintenir


tous les processus courant actifs: il faut conserver les
processus supplémentaires sur un disque.
 Transfert temporaire d’un processus inactif (soit bloqué, soit
prêt) peut donc être placé dans le swap - il sera ensuite
ramené en mémoire pour continuer son exécution
 Mémoire auxiliaire (backing store): disque rapide
suffisamment grand pour pouvoir ranger les copies de
toutes les images mémoire de tous les utilisateurs.
SWAPPING
 La plupart du temps du swapping est constitué de temps de
transfert. Le temps total de transfert est directement
proportionnel à la quantité de mémoire transférée.
 Contraintes: Processus à transférer doit être inactif. Si les
E/S accèdent d’une manière asynchrone à la mémoire
utilisateur pour utiliser les buffers E/S, le processus ne peut
pas être transféré.
Swapping
FRAGMENTATION

 Fragmentation externe: il existe un espace mémoire


total suffisant pour satisfaire une requête, mais il n’est pas
contigu.
 Fragmentation interne: la mémoire allouée peut être
légèrement plus grande que le mémoire requise. Cette
différence est interne à une partition mais n’est pas utilisée.
 Exemple: Trou: 18464 octets; Processus: 18462 octets, Différence: 2
octets
MÉMOIRE VIRTUELLE

 La mémoire virtuelle est une technique autorisant


l’exécution de processus pouvant ne pas être complètement
en mémoire. Le principal avantage de ce schéma est que les
programmes peuvent être plus grand que la mémoire
physique.
 Fournit un espace d’adressage extrêmement grand alors que
la mémoire physique est limitée. Cela est possible en
utilisant une mémoire auxiliaire comme espace de travail
pour charger et décharger les différentes pages par le SE.
Mémoire virtuelle
PAGINATION

 L'espace d'adressage d'un processus est divisé en petites unités


de taille fixe appelées pages
 La MC est elle aussi découpée en unités physiques de même taille
appelées cadres
 Les échanges entre MC et disques ne portent que sur des pages
entières.
 l'espace d'adressage d'un processus est potentiellement illimité
(taille du disque)
 Pour un processus, le système ne chargera que les pages utilisées
Pagination
SEGMENTATION

 l'espace d'adressage d'un processus est divisé en segments,


générés à la compilation
 Chaque segment est repéré par son numéro S et sa longueur
variable L.
 Un segment est un ensemble d'adresses virtuelles contiguës.
 Une adresse est donnée par un couple (S , d), où S est le n° du
segment et d le déplacement dans le segment, d ∈ [0 , L]
 Pour calculer l'adresse physique, on utilise une table des segments
:
L'adresse physique correspondant à l'adresse virtuelle (S , d) sera donc B + d, si d <= L
FIN DU
CHAPITRE

Вам также может понравиться