Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations...

37
Allocation de mémoire Allocation de mémoire

Transcript of Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations...

Page 1: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

Allocation de mémoire

Allocation de mémoire

Page 2: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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)

Page 3: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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.

Page 4: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 5: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

Allocation de mémoire

Désignation, liaison / Allocation

Langage MémoireVirtuelle

Mémoirephysique

Nom Adressevirtuelle

Adressephysique

Désignationet liaison

Allocationmémoire

Page 6: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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)

Page 7: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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.

Page 8: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 9: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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.

Page 10: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 11: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

Allocation de mémoire

Différentes Réalisations de l'Allocation Mémoire Physique par zones

– de taille variable par pages

– de taille fixe

Page 12: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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).

Page 13: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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).

Page 14: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 15: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 16: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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.

Page 17: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 18: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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.

Page 19: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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é

Page 20: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 21: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 22: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 23: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 24: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 25: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 26: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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.

Page 27: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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)

Page 28: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 29: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 30: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 31: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 32: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 33: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 34: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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.

Page 35: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 36: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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

Page 37: Allocation de mémoire. Concept de Base Mémoire virtuelle : –l'ensemble des informations potentiellement accessibles par le processeur –l'ensemble des.

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.