Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations...
-
Upload
aurelien-jarry -
Category
Documents
-
view
105 -
download
1
Transcript of Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations...
Allocation de mémoire
Allocation de mémoire
Allocation de mémoire
Concept de Base Mémoire virtuelle :
– l'ensemble des informations potentiellement accessibles par le processeur
– l'ensemble des emplacements dont l'adresse peut être engendrée par le processeur.
Allocation Mémoire– concrétiser la mémoire virtuelle
• mémoire réelle• mémoire de masse (disque)
Allocation de mémoire
Informations accessibles par un processus
– l'ensemble des informations désignables dans son programme (objets)
– l'ensemble des informations de désignations (noms)
– la mise en correspondance noms/objets.
Allocation de mémoire
Du texte au processus
Etape de traduction– mise en correspondance
• objets : emplacement mémoire • noms : adresses relatives correspondantes
Etape d'édition de lien – liaison entre programmes traduits
séparément Etape de chargement
– affectation définitive des adresses
Allocation de mémoire
Désignation, liaison / Allocation
Langage MémoireVirtuelle
Mémoirephysique
Nom Adressevirtuelle
Adressephysique
Désignationet liaison
Allocationmémoire
Allocation de mémoire
Organisation de la mémoire virtuelle Mémoire virtuelle linéaire
– emplacements organisés séquentiellement– adresses : entiers consécutifs
Mémoire virtuelle segmentée– ensemble de segments d ’informations de même
nature– adresses : (numéro de segment, déplacement)
Allocation de mémoire
Allocation Mémoire
doit permettre à un processus d'accéder à un objet défini en mémoire virtuelle, en amenant en temps voulu cet objet en mémoire principale :
– réaliser la correspondance entre adresses virtuelles et adresses physiques,
– réaliser la gestion de la mémoire physique (allocation des emplacements, transfert de l'information)
– réaliser le partage d'info entre utilisateurs;– assurer la protection mutuelle d'info appartenant à
des usagers distincts.
Allocation de mémoire
Le recouvrement (overlay)
A CB
AB
C
A B
A C
mémoire physique
programme
arbre de recouvrement
configuration 1
configuration 2
Allocation de mémoire
Le recouvrement
– le découpage en segments est réalisé explicitement– la correspondance entre adresse virtuelles et
physiques est réalisé une fois pour toutes, – les zones de mémoires affectées aux segments sont
également allouées lors du chargement,– le transfert des segments entre mémoire principale
et mémoire secondaire est réalisé, au cours de l'exécution du programme, par des instructions spéciales insérées dans le programme.
Allocation de mémoire
Différentes Réalisations de l'Allocation Mémoire implantation statique
– Correspondance virtuel/physique établie une fois pour toutes
réimplantation dynamique – Correspondance virtuel/physique variable
dans le temps
Allocation de mémoire
Différentes Réalisations de l'Allocation Mémoire Physique par zones
– de taille variable par pages
– de taille fixe
Allocation de mémoire
Politique d'allocation
Idéale– l'information nécessaire à l'exécution de
l'instruction en cours est immédiatement accessible au processeur (en mémoire principale)
Plus réaliste– réduire la probabilité que l'information soit absente
de la mémoire lorsqu'elle est nécessaire (défaut de segment ou de page).
Allocation de mémoire
2 questions
– QUAND charger un objet en mémoire principale ?
• lorsqu'on en a besoin (chargement à la demande)• avant d'en avoir besoin (pré-chargement).
– OU charger cet objet ?• s'il y a assez de place libre, dans quels emplacements
le charger (placement)• sinon, quel objet renvoyer en mémoire secondaire afin
de libérer de la place en mémoire principale (remplacement).
Allocation de mémoire
Comportement des programmes Non-Uniformité
– Un faible pourcentage des pages cumule généralement un taux très important du nombre total des références. • Il est courant que plus des 75% des
références intéressent moins de 20% des pages
Allocation de mémoire
Comportement des programmes Localité
– Sur un temps d'observation assez court, la répartition des références présente une certaine stabilité.• les références observées dans un passé
récent sont en général une bonne estimation des prochaines références
Allocation de mémoire
Partage de la mémoire sans réimplantation Va-et-vient Simple (swapping)
– zone fixe de mémoire réservée aux utilisateurs
– programmes conservés sous forme absolue– exécution : amener un programme dans sa
totalité– si réquisition
• sauvegarde de la mémoire du processus interrompu sur disque avant le chargement du processus suivant.
Allocation de mémoire
Va-et-vient Simple (swapping) Avantage: Simplicité Inconvénients
– La CPU est inactive pendant le swapping• on ne sauvegarde que la partie modifiée : la
zone des données• l'algorithme de la "peau d'oignon" :
recharger que la partie recouverte• conserver simultanément plusieurs
programmes : partition de la mémoire
Allocation de mémoire
Partition fixe de la mémoire
Mémoire partagée de façon statique en plusieurs zones
Chaque programme est « pré-affecté » à une zone
Conservés sur disque sous forme absolue Pendant qu’un programme est transféré, une
autre peut s’exécuter.
Allocation de mémoire
Partition fixe de la mémoire
Système zone1 zone2
A
C B
mémoire physique
programmes
Activité {UC
Canal
A(1) B(2) C
B(2) A(1) C(1)
(1)
B(2)
programmes(zone)
chargement
sauvegarde
Allocation de la mémoire
Chronogramme d'activité
Allocation de mémoire
Partition variable de la mémoire
Découpage en zones pas fixé a priori Redéfini à chaque fin d’un programme
et répartie entre d ’autres programmes Fixation des adresses au chargement
du programme Pas de réimplantation dynamique
Allocation de mémoire
Allocation par zones
Réimplantation dynamique par registre de base :– les adresses des programmes sont en relatif– la valeur d ’un registre (registre de base) est
systématiquement ajoutée à chaque adresse. Déplacer un programme
– réinitialiser la valeur du registre de base à celle de l ’adresse absolue du début de la zone
Allocation de mémoire
– choix d'une représentation des zones,– définition des critères de sélection
d'une zone libre,– politique de libération d'une zone
occupée,– décision à prendre lorsqu'aucune
zone ne convient.
Algorithmes de gestion de la mémoire par zones
Allocation de mémoire
Représentation des zones Une zone :
– taille– adresse de début
La mémoire :– nombre variable de zones– liste des zones :
• ordre de libération des zones• classement par adresse• classement par taille
Allocation de mémoire
Algorithmes de sélection demande d ’une zone libre de taille T chercher une zone suffisamment grande créer une zone libre avec le résidu 2 choix possible pour la recherche :
– la première possible (first fit)– la plus petite possible (best fit)
• chaînage par tailles des zones
Allocation de mémoire
Libération d'une zone
Trois cas• la zone libérée est entourée de deux zones
libres,• la zone libérée est entourée d'une zone libre
et d'une zone occupée,• la zone libérée est entourée de deux zones
allouées.
Regrouper les zones libres contiguës• chaînage par adresses croissantes plus
pratique
Allocation de mémoire
Fragmentation et compactage Problème de la fragmentation de la
mémoire Compactage
• par recopie à l'intérieur de la mémoire physique, en utilisant une instruction de type MOVE.
• par recopies successives des zones sur disque puis du disque en mémoire.
Allocation de mémoire
Principes et mécanismes de base de la pagination
Mémoire virtuelle : – page de taille fixe– adresse virtuelle
• (numéro de page, déplacement)
Mémoire physique : – case de même taille– adresse réelle
• (numéro de case, déplacement)
Allocation de mémoire
Pagination simple
......
Fonction de Pagination
(1)
(2)
(3) (1)
(3)
(2)
Défaut de page
Mémoire Virtuelle
Mémoire Réelle
Allocation de mémoire
Fonction de pagination
Mémoire associative
npage
npage dep
012...
ncase
NC-1
ncase dep
défaut de pagesi échec
Adr. Virtuelle
Adr. Physique
Mémoire associative
Allocation de mémoire
Mémoire topologique
ncase
npage dep
0 1 2 . . .
npage
NP-1
ncase dep
défaut de page si présent = 0
Adr. Virtuelle
Adr. Physique
1 0 1
Registres topographiques
Allocation de mémoire
Table de pages en mémoire :
npage dep
Adr. Virtuelle
npage
npage ncase
.
.
.
.
.
.
.
.
. .
R. de base
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 0 prot ncase
echecprésent modif
Table des pagesDéfaut de page si présent = 0
ncase dep
Adr. physique
Allocation de mémoire
Pagination à deux niveaux
npage dep
Adr. Virtuelle
nhyp
npage
.
.
.
.
.
ncase
.
.
.
.
.
nhyp
.
.
.
.
.
R. de base
1
présent
Défaut de page si présent = 0
ncase dep
Adr. physique
table des hyperpages
+
LTp
<
+ Erreur adressage
non
Table des hyperpages
LTp
Table des pages de l'hyperpage nhyp
succès
Pagination à deux niveaux
Allocation de mémoire
Mise en œuvre de la pagination Traduction num page / num case Mise à jour du bit d'écriture et du bit
d'utilisation Détection du défaut de page qui
provoque un déroutement
Allocation de mémoire
Défaut de page
trouver en mémoire secondaire la page manquante
trouver une case libre en mémoire principale ; s'il n'y a pas de case libre, il faut en libérer une
provoquer le chargement de la page dans la case ainsi rendue libre.
Allocation de mémoire
Gestion d'une mémoire virtuelle paginée Partition fixe ou variable
– fixe : un nombre fixe de case est alloué à chaque processus
Pagination à la demande ou pré-chargement– pagination à la demande : une page est
chargée lorsqu’il y a défaut de page– pré-chargement : une page est chargée
avant de provoquer un défaut de page
Allocation de mémoire
Gestion d'une mémoire virtuelle paginée Remplacement local ou global
– local : la page enlevée appartenait au même processus
Critère sur les pages :– Pages "propres ou sales" :
• propre : qui n ’a pas été modifiée depuis son chargement
– Page partagée– Page à statut spécial : tampon d’E/S
Allocation de mémoire
Description des algorithmesde défaut de page
Aléatoire : la page enlevée est choisie de manière aléatoire
FIFO : la page enlevée est choisie en fonction de son ordre de chargement
Least Recently Used (LRU) : Ordre chronologique d'utilisation
First In Not Used, First Out (FINUFO) : LRU sur un bit.