Gestion de la mémoire centrale Allocation de la mémoire ...

56
Joëlle Delacroix AMSI1999/2000 1 Gestion de la mémoire centrale Allocation de la mémoire physique

Transcript of Gestion de la mémoire centrale Allocation de la mémoire ...

Page 1: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 1

Gestion de la mémoire centraleAllocation de la mémoire physique

Page 2: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 2

Fonction de mémorisationMémoire centrale CPU

Bus donnéesBus adresses

Bus commandes

RAD

RDO

ensemble linéaire de mots d'adresses contigues

Page 3: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 3

Monoprogrammation

0SYSTEME

D'EXPLOITATION

PROGRAMMEUTILISATEUR

P1

P1 : 100 ms calcul / 100 ms E/S50 % d'inactivité du processeur

NP1

CPU

DMA

Page 4: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 4

Multiprogrammation : cas idéal

P1 : 100 ms calcul / 100 ms E/SP2 : 100 ms calcul / 100 ms E/S0 % d'inactivité du processeur

0SYSTEME

D'EXPLOITATION

PROGRAMMEUTILISATEUR

P1

PROGRAMMEUTILISATEUR

P2

N

P1

P2

CPU

DMA

Page 5: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 5

Multiprogrammation

• Le degré de multiprogrammation est défini par nombre de processus présents en mémoire centrale

ici mettre la courbe

Page 6: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 6

Multiprogrammation et gestion mémoire

• Trois problèmes à résoudre vis-à-vis de la mémoire :

– Définir un espace d'adressage indépendant pour chaque processus

– Protéger les espaces d'adressages des processus entre eux

– Allouer de la mémoire physique à chaque espace d'adressage

Page 7: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 7

Multiprogrammation et gestion mémoire programme

ensemble insécable de mots contigus

ensemble sécable de mots contigus

espace d'adressage linéaire

allocation en partitionsfixes ou variables espace d'adressage paginé

espace d'adressage segmenté

Page 8: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 8

Allocation d'un seul tenant

• Le programme est considéré comme un espace d'adresses insécable

• La mémoire physique est découpée en zones disjointes de taille fixe ou variable : les partitions

0

n

Partition 1

Partition 2

Partition 3programme

partitionensemble d'adresses physique contigues

Page 9: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 9

Allocation en partition fixe

• A la génération du système, la mémoire est découpée en partitions de taille fixe, non nécessairement identiques

Allocation : choisir la partition libretelle queTaille (Zone) - Taille (programme)soit le plus petit possible

Partition 1

Partition 2

Partition 3

0

nprogramme

Page 10: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 10

Allocation en partition fixe

n

Partition 1

Partition 2

Partition 3

Partition n-1

Partition n

Système0

nn+1 Programme

Partition 2

Système0

nn+1

Initialement

Programme

Programme

Programme

à l'instant t

Trous

Page 11: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 11

Allocation en partition variable

• La mémoire est découpée en partitions de taille variable, c'est-à-dire adaptables à la taille des programmes.

• La mémoire est formée d'un ensemble de zones libres et de zones occupées (partitions allouées)

• Allouer un programme P de taille Taille(P) :trouver une zone libre telle que Taille (Zone Libre) > Taille (P)

Fisrt Fit : la première zone qui convientBest Fit : celle générant le moins de perte

Page 12: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 12

Système0n

n+1 Programme 1

Système0n

n+1

Programme 2

Programme 4

Programme 3

Programme 5

ChargementZONELIBRE

ZONELIBRE

La mémoire est formée d'un ensemble de zones libreset de zones occupées (partitions allouées)

Programme 1

Système0n

n+1

Programme 3

Programme 5

Zone libre

Zone libre

Zone libre

Fin P2, P4

à l'instant t'à l'instant tInitialement

Page 13: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 13

Allocation First Fit

0

Programme 6

Système

Programme 3

Programme 5

Zone libre

Zone libre

Zone libre

Zone libre

0

Programme 6

Système

Programme 3

Programme 5

Programme 7

Zone libre

Zone libre

Zone libren n

80K60K 60K

120K40KProgramme 7

100K 100K

150K 150K

Page 14: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 14

Allocation Best Fit

0

Programme 6

Système

Programme 3

Programme 5

Zone libre

Zone libre

Zone libre

Zone libre

0

Programme 6

Système

Programme 3

Programme 5

Programme 7

Zone libre

Zone libre

Zone libre

n n

80K60K 60K

120K120 K

Programme 7

100K20K

150K 150K

Page 15: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 15

Compactage de la mémoire

0 0

Programme 6

Système

Programme 3

Programme 5

Programme 7

Zone libre

Zone libre

Zone libre

Programme 6

Système

Programme 3

Programme 5

Programme 7

Zone libre

n n

180K60 K

120 KProgramme 8

20K

150K350 K

Fragmentation

Page 16: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 16

Compactage de la mémoire

• Allocations et désallocations successives des programmes créent des trous (zones libres de taille insuffisante) en mémoire centrale : fragmentation

• Le compactage consiste à déplacer les programmes en mémoire centrale de manière à ne créer qu'une seule et unique zone libre.

• Le compactage est une opération très coûteuse. Elle suppose une translation des adresses dynamique.

Page 17: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 17

LE CHARGEMENT statique : les adresses du programme sont translatées de la valeur de l'adresse d'implantation en MC au chargement

Editeur de texte

Compilateur

Editeur de liensChargeur

0adr

adr +

adresse d'implantation

Chargementstatique

Adresse d'implantationen mémoire centrale

programme relogeableExécutable sur disque

Exécutable en mémoire

Page 18: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 18

LE CHARGEMENT dynamique: les adresses du programme sont translatées de la valeur de l'adresse d'implantation en MC à l'exécution

Editeur de texte

Compilateur

Editeur de liens Chargeur

0

Adresse d'implantationen mémoire centrale

adr

adr

Chargementdynamique

Registre de translation

programme relogeableExécutable sur disque

Exécutable en mémoire

Page 19: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 19

Compactage

adr

adr

Registre de translation

• Déplacer un programme : modifier la valeur du registre de translation

Page 20: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 20

Compactage de la mémoire centrale

Systèmed'exploitation

P1 200K

P2 100K

P3 200K

P4 400K

400K

300K

200K

Systèmed'exploitation

P1 200K

P2 100KP3 200K

P4 400K

900K

Systèmed'exploitation

P1 200K

P2 100K

P4 400K

P3 200K

900K

Systèmed'exploitation

P1 200K

P2 100K

P4 400K

P3 200K

900K

600K déplacés 400K déplacés 200K déplacés

Page 21: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 21

Protection en allocation d'un seul tenant

• Toute adresse générée par l'exécutuion du programme doit appartenir à l'intervalle des adresses qui lui sont allouées

Programme P

Registres Borneschargés par le systèmeMin

Sup

Page 22: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 22

Faiblesses de l'allocation d'un seul tenant

• Nécessité d'une opération de compactage de la mémoire

• Exigence d'allouer le programme en une zone d'un seul tenant

Diviser le programme en portions de taille fixe et égale à l'unité d'allocation de la mémoire centrale : les pages

Page 23: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 23

La paginationMémoire

Page 1

Page 3

Page 2

Case1

Page 1

Page 2Page 4

Page 3

Case 2

Case 3

Case 4

Case 5

Case 6Espace d'adressagedu programme

Case 7Page 4

Page 24: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 24

La pagination

• L'espace d'adressage du programme est découpé en morceaux linéaires de même taille : la page.

• L'espace de la mémoire physique est lui-même découpé en morceaux linéaires de même taille : la case

• La taille d'une case est égale à la taille d'une page

• Charger un programme en mémoire centrale consiste à placer les pages dans n'importe quelle case disponible.

Page 25: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 25

La mémoire paginée

PAGEDe 512 octets

à8192 octetsadresse

physique

<n°page; deplacement>

Il faut convertir l'adresse paginée en son équivalent adresse physiqueAdresse physique = adresse implantation case contenant la page

+ deplacement

Table des pages

Page 26: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 26

La mémoire paginéeMémoire

Page 1

Page 2

Page 4

Numéropage1

2

3

4

Page 3

Numérocase Page 1

Page 3

Page 2

Page 4

2

6

3

7

Table des pages Case1

Case 2

Case 3

Case 4

Case 5

Case 6

Espace d'adressagedu programme

Case 7

Page 27: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 27

Implémentation de la table des pages

• Un ensemble de registres matériels – commuter de processus = charger tous les registres avec les

adresses des pages du processus– la table des pages ne peut pas être très grande (256 entrées)

• En mémoire centrale, repérée par un registre PTBR (page table base register)– commuter de processus = charger le registre PTBR avec l'adresse

de la table des pages du processus– pas de limite de taille à la table des pages

problème : le temps d'accès à un emplacement mémoire d'un programme

Page 28: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 28

La mémoire paginéeMémoire

Adresse logique

p d

Registre adresseTable des pages

adresse table

+adr page

Adresse phy sique

+

Table des pages

Page 29: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 29

Implémentation de la table des pages• temps d'accès à un emplacement mémoire d'un programme :

deux accès mémoire

p d

adresse table

+adr page

Adresse logique

Adresse phy sique

+

Table des pages

Page 30: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 30

Implémentation de la table des pages

• Un cache associatif contenant les derniers couples <page, case> accédés est placé en amont de la table des pages

p dAdresse logique

adresse table

+adr page<p, adr page>

non trouvé

Adresse phy siquetrouvé

+

Table des pages

Page 31: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 31

Pagination - Segmentation

Segment 1

Segment 2

Segment 3

Segment 4Pile

Programmeprincipal

Sqrt

données

Vue Utilisateur

Espace d'adressagedu programme

Ensemble de pagesEspace d'adressage

du programmeEnsemble de segments

Page 32: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 32

La mémoire segmentée

• Le programme est divisé en segments par le compilateur, un segment étant un espace d'adressage linéaire formé d'adresses contigues.

• Un segment correspond à une partie logique du programme : segment de code, segment de données, segment de pile

S1

S2

S3

100 K

50 K30 K

Espace d'adressage segmenté

180K

Espace d'adressage linéaire

Page 33: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 33

La mémoire segmentée

S1

S2

S3

100 K

50 K

Espace d'adressage segmenté

0

180K

Espace d'adressage linéaire 0

Adresse du mot avant chargementDéplacement depuis 0

Adresse du mot après chargementAdresse d'implantation + Déplacement

Adresse du mot avant chargementN° segment, Déplacement depuis 0

Adresse du mot après chargementAdresse d'implantation du segment

+ Déplacement

Page 34: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 34

La mémoire segmentée

SEGMENTadresse

physique

<n°segment; deplacement>

Il faut convertir l'adresse segmentée en son équivalent adresse physiqueAdresse physique = adresse implantation segment + deplacement

Table des segments

Page 35: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 35

La mémoire segmentée Mémoire

Segment 120K

Segment 225K

Segment 315K

Segment 410K

Segment 1

Segment 4

Segment 3

Segment 2

Numéro Position

1

2

3

4

50 K

195 K

95 K

150 K

Table des segments50K

95K

150 K

195 KEspace d'adressage

du programme

Page 36: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 36

La mémoire segmentéeMémoire

<s d

LT adresse table

Registre adresseTable des Segments

< +

taille adr debut

+

oui

Table des segments

Page 37: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 37

La segmentation

• Allouer un segment S de taille Taille(S) :trouver une zone libre telle que Taille (Zone Libre) > Taille (S)

• Allocations et désallocations successives des segments créent également un problème de fragmentation

combiner segmentation et pagination : paginer les segments

Page 38: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 38

La mémoire segmentée paginéeMémoire

<

d

p d'

ouis d

LT adresse table

< +

tailleAdresse

tabledes pages

+ cRegistre adresseTable des Segments +

oui

Table des segments

Page 39: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 39

Gestion mémoire• L'allocation en partitions fixes ou variables considère le programme

comme un ensemble d'adresses insécables. Ce type d'allocation pose un problème de fragmentation et nécessite des opérations de compactage de la mémoire centrale

• La pagination découpe l'espace d'adressage du programme en pageset la mémoire physique en cases de même taille. Une adresse générée par le processeur est de la forme <n°page, déplacement dans la page>. La table des pages du processus permet de traduire l'adresse paginée en adresse physique

• La segmentation découpe l'espace d'adressage du programme en segments correspondant à des morceaux logiques du programme. Uneadresse générée par le processeur est de la forme <n°segment, déplacement dans le segment>. La table des segments du processuspermet de traduire l'adresse segmentée en adresse physique

• Segmentation et pagination sont très souvent associées.

Page 40: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 40

Gestion de la mémoire centraleMémoire Virtuelle

Page 41: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 41

Mémoire virtuelle

Espaces d'adressagedes programmes

Case 1

Case 2

Case 3

Case 4

Case 5

Case 6

Case 7

Page 1

Page 2Page 4

Page 3 Page 1-1

Page 3-2

Page 2-1

Page 4-1

Mémoire physique

Page 1

Page 2

Page 3Page 1

Page 2Page 4

Page 3

Programme 1

Programme 2

Programme 3

Page 2-2

Page 1-2

Page 3-1

Page 42: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 42

Mémoire virtuelle

• La capacité de la mémoire centrale est trop petite pour charger l'ensemble des pages des programmes utilisateurs.

Ne charger que les pages utiles à un instant. Mémoire physique

Page 1

Page 2Page 4Page 3

Page 1Page 2

Page 3Page 1

Page 2Page 4Page 3

Programme 1

Page 1-1

Page 3-2

Page 2-3

Page 1-3

Page 2-1

Page 3-3 Case 1

Case 2

Case 3

Case 4Programme 2

Case 5

Case 6Programme 3

Case 7Page 4-1

Page 43: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 43

Bit de validation

• Ne charger que les pages utiles à un instant

il faut pouvoir tester la présence d'une page en mémoire centrale

N° de case physiqueV

• Bit validation à vrai si la page est présente en mémoire centrale

Page 44: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 44

Bit de validationVVIV

24-7

IIV

--3

VVVI

561-Processus 2

Processus 1 Processus 3 Mémoire physique

Page 1

Page 2Page 4Page 3

Page 1Page 2

Page 3Page 1

Page 2Page 4Page 3

Programme 1

Page 1-1

Page 3-2

Page 2-3

Page 1-3

Page 2-1

Page 3-3 Case 1

Case 2

Case 3

Case 4Programme 2

Case 5

Case 6Programme 3

Case 7Page 4-1

Page 45: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 45

Bit de validation et défaut de pageVVIV

24-7

IIV

--3

VVVI

561-Processus 2

Processus 1 Processus 3 Mémoire physique

Page 1

Page 2Page 4Page 3

Page 1Page 2

Page 3Page 1

Page 2Page 4Page 3

Programme 1

Page 1-1

Page 3-2

Page 2-3

Page 1-3

Page 2-1

Page 3-3 Case 1

Case 2

Case 3

Case 4Processus 2 : accès à la page 2

DEFAUT DE PAGEProgramme 2 Case 5

Case 6Programme 3

Case 7Page 4-1

Page 46: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 46

Bit de validation et défaut de page

• Ne charger que les pages utiles à un instant

il faut pouvoir tester la présence d'une page en mémoire centrale : rôle du bit de validation

si un processus cherche à accéder à une page non présente en mémoire centrale, il se produit un déroutement de défaut de page

• le système d'exploitation lance une entrée/sortie disquepour charger la page en mémoire dans une case libre

Page 47: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 47

Défaut de page Mémoire

Adresse logiquep d

adresse table

Registre adresseTable des pages

+

-I

1. DéroutementE/S disque

Table des pages

Page 48: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 48

Défaut de page Mémoire

p d

adresse table

+

5I

case libre

3. Mise à jour table des pages

Adresse logique4. Reprise instruction

Registre adresseTable des pages

2 Chargement de la page

Table des pages

Page 49: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 49

Chargement de page

• Lors d'un défaut de page, la page manquante est chargée dans unecase libre

la totalité des cases de la mémoire centrale peuvent être occupéesil faut libérer une case globalement (parmi l'ensemble des cases) ou localement (parmi les cases occupées par les pages du processus en défaut)

• le système d'exploitation utilise un algorithme pour choisirune case à libérer

- FIFO (First In, First out)- LRU (Least Recently Used)

Page 50: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 50

Algorithmes de remplacement de page

• FIFO : la page la plus anciennement chargée est la page remplacée

Chaine de référence

7 0 1 2 0 3 0 4 2 3 0

7 7

0

1

2

0

1

2

0

1

2

3

1

2

3

0

4

3

0

4

2

0

4

2

3

0

2

3

7

0

D DD D DD DD D D

Page 51: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 51

Algorithmes de remplacement de page

• LRU : la page la moins récemment accédée est la page remplacée

Chaine de référence

7 0 1 2 0 3 0 4 2 3 0

7 7

0

1

2

0

1

2

0

1

2

0

3

2

0

3

4

0

3

4

0

2

4

3

2

0

3

2

7

0

D DD D DDD D D

Page 52: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 52

Algorithme de remplacement de page

N° de case physiqueVMA

• Bit modification à vrai si la page a été modifiée en mémoire centrale

• Champ Accès :FIFO : date de chargementLRU : date de dernier accès

Page 53: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 53

Conversion d'une adresse virtuelle

Procedure Conversion (in adresse_virtuelle, out adresse_physique)

debutentrée := adresse_virtuelle.page + adresse_table(processus)Si (entrée.V = FAUX)alors

-- defaut de pageCharger_page(adresse_virtuelle.page, adresse_case);entrée.V = vrai;entrée. case := adresse_case;

fsiadresse physique := adresse_case + adresse_virtuelle.deplacement;return (adresse_physique);

fin

Page 54: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 54

Conversion d'une adresse virtuelle

Procedure Charger_Page (in page, out case)

debutSi (Trouver_case_Libre( ) = FAUX)alors

Choisir_case_à_libérer (case_à_liberer, page_victime);si (page_victime.M = Vrai)alors

Ecrire_Disque(page_victime)fsiLire_Disque(case_à_liberer, page)return (case_à_liberer)

fin

Page 55: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 55

Ecroulement

• On appelle Ecroulement, une haute activité de pagination. Un processus s'écroule lorsqu'il passe plus de temps à paginer qu'às'exécuter.

Ecroulement

Uti l

isat

ion

de l'

UC

Degré de multiprogrammation

Page 56: Gestion de la mémoire centrale Allocation de la mémoire ...

Joëlle Delacroix AMSI1999/2000 56

Mémoire virtuelle

• Les pages d'un processus ne sont chargées en mémoire centrale que lorsque le processus y accède

• Lorsqu'un processus accède à une page non présente en mémoire centrale, il se produit un défaut de page. La page manquante est alors chargée dans une case libre.

• Si aucune case n'est libre, le système utilise un algorithme de remplacement de page pour choisir une case à libérer.

• L'écroulement est la situation pour laquelle un ou plusieurs processus passent plus de temps à paginer qu'à s'exécuter.