72
Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat 2 1 [email protected] 2 [email protected] Aix-Marseille Université Faculté des Sciences

Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 [email protected]

Embed Size (px)

Citation preview

Page 1: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Systèmes d’Exploitation - ENSIN6U3Gestion de la mémoire

Leonardo Brenner 1 Jean-Luc Massat 2

[email protected]

[email protected]

Aix-Marseille UniversitéFaculté des Sciences

Page 2: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Table de matière

1 Généralités

2 Le partage de la mémoireAllocation de mémoireAllocation de la mémoire contiguëAllocation non-contiguë : la paginationSegmentation

3 La mémoire virtuelleAlgorithmes de remplacement

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 2 / 61

Page 3: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Généralités

Table de matière

1 Généralités

2 Le partage de la mémoireAllocation de mémoireAllocation de la mémoire contiguëAllocation non-contiguë : la paginationSegmentation

3 La mémoire virtuelleAlgorithmes de remplacement

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 3 / 61

Page 4: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Généralités

Généralités

Notion de mémoire

La mémoire est une ressource :

partageable / non partageable

réquisitionnable / non réquisitionnable

reutilisable

Mémoire d’un processus

Chaque processus travail dans un mémoire logique qui est vu comme untableau de cases mémoire.

Mémoire logique

Cette mémoire logique est dite linéaire car les cases qui la composent sontcontiguës. Ces cases sont repérées par des entiers consécutifs qui sontappelés des adresses logiques.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 4 / 61

Page 5: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Généralités

Adresses logiques vs. adresses physiques

Génération d’adresses

Lors de l’exécution, chaque processus P génère des adresses logiques.A l’opposé, les cases de la mémoire physique sont repérées par desadresses physiques.

Adresses logiques :

privé au le programme, utilisé par l’unité centrale.

Adresses physiques :

accès à la mémoire, instructions de lecture/écriture de/à un registre,

la MMU (« memory management unit ») transforme les adresses logiquesen adresses physiques.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 5 / 61

Page 6: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Généralités

Catégories de mémoire

Organisation de la mémoire

partition unique

partitions fixes

Correspondance fixe

partitions variables

Mém. logique contiguë

Mém. physique contiguë Mém. physique non contiguë

mémoire paginée

mémoire virtuelle paginée

Mém. logique non contiguë

mémoire segmentée mémoire segmentée paginée

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 6 / 61

Page 7: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire

Table de matière

1 Généralités

2 Le partage de la mémoireAllocation de mémoireAllocation de la mémoire contiguëAllocation non-contiguë : la paginationSegmentation

3 La mémoire virtuelleAlgorithmes de remplacement

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 7 / 61

Page 8: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de mémoire

Allocation de mémoire

Correspondance entre adresses

La correspondance entre adresses logiques et adresses physiques :

statique (établie une seule fois) ;

dynamique (variable dans le temps).

Gestion de la mémoire physique

Partage de données entre processus ;

Protection de chaque processus.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 8 / 61

Page 9: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Système à partition unique (1/2)

Va-et-vient ou swapping

Un seul processus est placé en mémoire à la fois.

S.E. partition unique mémoire

RB

RL

Caractéristiques

les processus sont tous et toujours à la même adresse physique ;

la correspondance logique/physique est réglée lors de la compilation oudu chargement ;

la réquisition de la CPU entraîne la sauvegarde de la partition et lechargement d’un nouveau processus ;

la CPU est inutilisée durant les sauvegardes/récupérations.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 9 / 61

Page 10: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Système à partition unique (2/2)

Protection

La protection est possible par le jeu des deux registres spécialisées RB(registre de base) et RL (registre limite).

Sauvegarde

Pour limiter les E/S, le système sauvegarde uniquement les zones de lapartition qui ont été modifiées et/ou applique l’algorithme des peluresd’oignons.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 10 / 61

Page 11: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Les recouvrements

Objectifs

Limiter la taille de la mémoire occupée par le code du programme.

Caractéristiques

les programmes de taille importante sont découpés en plusieurs partiesindépendantes ;

une partie reste systématiquement en mémoire, c’est la racine durecouvrement ;

les autres parties sont chargées en mémoire à la demande.

mémoire physique

A B C

A B

A C

configuration 1

configuration 2

programme (3 parties)

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 11 / 61

Page 12: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Système à partitions fixes

A(1) C(2) B(1)

C(2) A(1) B(1) C(2)

Canal.

U.C.

sauvegarde

chargement

programme(zone)

S.E. zone 1 zone 2

A

B

C

mémoire

programmes

Allocation de la mémoire

Chronogramme d'activité

Caractéristiques

la mémoire est divisée en zones de taille fixe (spécialisation) ;

les processus s’exécutent toujours dans la même zone ;

pendant les échanges sur la zone 1, un autre processus s’exécute sur la zone 2 ;

la correspondance logique/physique est réglée lors de la compilation ou duchargement ;

protection possible par les registres RB et RL.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 12 / 61

Page 13: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Système à partitions variables

5

2

1

0

C

B

A

155

152

151

150

C

B

A

3

4

D

E

F

153

154

D

E

F

+

6

3 < RL

RL

150

RB

3

déroutement surerreur d'adressage

oui

non

Caractéristiques

les partitions sont allouées et libérées à la demande (création ou fin d’unprocessus) ;

le registre de base (RB) pointe sur la partition et le registre limite (RL) en indiquela taille.

Les processus génèrent des adresses logiques comprises entre 0 et RL-1 ;

RB et RL sont utilisés par la CPU pour traduire ces adresses en adressesphysiques à chaque accès mémoire.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 13 / 61

Page 14: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Allocation par chaînage des zones libres

Zones libres

Les zones libres sont placées dans une liste chaînée.

Où placer les processus ?

Il existe plusieurs stratégies de recherche :

First-fit : première zone libre suffisamment grande ;Best-fit : meilleur ajustement pour utiliser au mieux les zones libres :

il faut parcourir toutes les zones ;il reste des petits résidus inutilisables.

Worst-fit : plus grand résiducombat l’émiettement.

Algorithmes spécialisés.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 14 / 61

Page 15: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Algorithmes d’ordonnancement (1/3)

First fit

NoyauProc1

Proc2

+ Proc3 →

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 15 / 61

Page 16: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Algorithmes d’ordonnancement (1/3)

First fit

NoyauProc1

Proc2

+ Proc3 →

NoyauProc1

Proc3

Proc2

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 15 / 61

Page 17: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Algorithmes d’ordonnancement (2/3)

Best fit

NoyauProc1

Proc2

+ Proc3 →

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 16 / 61

Page 18: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Algorithmes d’ordonnancement (2/3)

Best fit

NoyauProc1

Proc2

+ Proc3 →

NoyauProc1

Proc2Proc3

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 16 / 61

Page 19: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Algorithmes d’ordonnancement (3/3)

Worst fit

NoyauProc1

Proc2

+ Proc3 →

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 17 / 61

Page 20: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Algorithmes d’ordonnancement (3/3)

Worst fit

NoyauProc1

Proc2

+ Proc3 →

NoyauProc1

Proc3

Proc2

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 17 / 61

Page 21: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Allocation par subdivision (buddy system)

Taille des zones

La taille des zones suit une règle définie par une relation de récurrence :

binaire : (1, 2, 4, 8, ...) Si+1 = 2 × Si

fibonacci : (1, 2, 3, 5, 8, ...) Si+1 = Si + Si−1

Zones libres

Il existe une liste de zones libres pour chaque taille.

〈allouer un bloc de taille T 〉si 〈il existe un bloc de taille T 〉 alors

〈renvoyer ce bloc〉sinon

〈allouer un bloc de 2 × T 〉〈libérer la deuxième partie de ce bloc〉〈renvoyer la première partie〉

fin si

La recherche d’une zone libre est rapide et il est facile de reconstruire deszones à la libération.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 18 / 61

Page 22: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Exemple d’allocations/libérations

Buddy system

4

2 2C

2C

A B 1 4

A 42

8

8

Alloc. de A, longueur = 2

Alloc. de B, longueur = 1

Alloc. de C, longueur = 2

Libération de A

Libération de C

Libération de B

A B 1

B 1

2 B 1

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 19 / 61

Page 23: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Fragmentation externe/interne

Fragmentation externe

La fragmentation externe est due à l’émiettement de la mémoire lors desallocations/libérations.

Fragmentation interne

La fragmentation interne c’est l’unité de mémoire minimum que le S.E. estcapable de gérer (généralement plusieurs Kilooctets).

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 20 / 61

Page 24: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation de la mémoire contiguë

Le compactage

Objectif

Le compactage de la mémoire procède par recopie des partitions pour faireapparaître une zone libre de taille suffisante.

Exemples

100

100

5050

100

100

5050

100

100

5050

100

100

5050

150 100 50

100

100

5050

200

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 21 / 61

Page 25: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

La pagination (1/2)

Description

But : solution à la fragmentation,Voir : la gestion de l’espace sur disque, les bloques.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 22 / 61

Page 26: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

La pagination (1/2)

Description

But : solution à la fragmentation,Voir : la gestion de l’espace sur disque, les bloques.

La mémoire logique est découpée en pages (toujours une puissance de2).

Une adresse logique dans un système paginé est un couple :(# page logique, déplacement)

Une adresse physique est un couple :(# page physique, déplacement)

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 22 / 61

Page 27: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

La pagination (1/2)

Description

But : solution à la fragmentation,Voir : la gestion de l’espace sur disque, les bloques.

La mémoire logique est découpée en pages (toujours une puissance de2).

Une adresse logique dans un système paginé est un couple :(# page logique, déplacement)

Une adresse physique est un couple :(# page physique, déplacement)

Si

A = adresse logique, T = taille de page

alors

# page logique = A/T , déplacement = A%TLeonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 22 / 61

Page 28: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

La pagination (2/2)

Description

La mémoire physique est découpée en cadres de page (même tailled’une page).

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61

Page 29: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

La pagination (2/2)

Description

La mémoire physique est découpée en cadres de page (même tailled’une page).

Adresses physique est un couple (f , d), cadre de pages et déplacement.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61

Page 30: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

La pagination (2/2)

Description

La mémoire physique est découpée en cadres de page (même tailled’une page).

Adresses physique est un couple (f , d), cadre de pages et déplacement.

A chaque page logique p peut correspondre un cadre de page f = f (p).

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61

Page 31: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

La pagination (2/2)

Description

La mémoire physique est découpée en cadres de page (même tailled’une page).

Adresses physique est un couple (f , d), cadre de pages et déplacement.

A chaque page logique p peut correspondre un cadre de page f = f (p).

Cette correspondance est maintenue dans la table des pages.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61

Page 32: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

La pagination (2/2)

Description

La mémoire physique est découpée en cadres de page (même tailled’une page).

Adresses physique est un couple (f , d), cadre de pages et déplacement.

A chaque page logique p peut correspondre un cadre de page f = f (p).

Cette correspondance est maintenue dans la table des pages.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61

Page 33: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

La pagination (2/2)

Description

La mémoire physique est découpée en cadres de page (même tailled’une page).

Adresses physique est un couple (f , d), cadre de pages et déplacement.

A chaque page logique p peut correspondre un cadre de page f = f (p).

Cette correspondance est maintenue dans la table des pages.

La MMU

La MMU (memory management unit) calcule un adresse physique à partird’un adresse logique selon la formule

phys(p, d) = (f (p), d)

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61

Page 34: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

La pagination (2/2)

Description

La mémoire physique est découpée en cadres de page (même tailled’une page).

Adresses physique est un couple (f , d), cadre de pages et déplacement.

A chaque page logique p peut correspondre un cadre de page f = f (p).

Cette correspondance est maintenue dans la table des pages.

La MMU

La MMU (memory management unit) calcule un adresse physique à partird’un adresse logique selon la formule

phys(p, d) = (f (p), d)

Gestion de la multiprogrammation

Le PTBR, registre de base de la table de pages,« page-table base register ».

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61

Page 35: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

Traduction des adresses logiques en adressesphysiques (1/3)

Fonction de pagination

La fonction de pagination assure la correspondance entre le numéro de lapage logique et le numéro de la page physique.

Fonction depagination

Mémoirelogique

Mémoirephysique

0

1

2 - 1

0

1

n2 - 1

n

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 24 / 61

Page 36: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

Traduction des adresses logiques en adressesphysiques (2/3)

Table de pages

Pour chaque processus, le S.E. détient une table de pages logiques qui fait lacorrespondance avec les pages physiques.

npl dep

npp npp dep

adr. logique

adr. physique

Table des pages (desc)

R. de base

+

vérifier quenpl < RL

RL

npp prot

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 25 / 61

Page 37: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

Traduction des adresses logiques en adressesphysiques (3/3)

Version algorithmique de la correspondance

〈npl, dépl 〉 := adresse logiquesi (npl < RL ) alors

si les protections desc[npl].prot sont respectées alorsnpp := desc[npl].nppadresse_physique := 〈npp, dépl 〉

sinon〈déroutement sur violation de protection〉

fin sisinon

〈déroutement sur erreur d’adressage〉fin si

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 26 / 61

Page 38: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

Exemple de pagination

Exemple

A

B

D

E

C F

G

Table despages du

processus 1

Table despages du

processus 2

pages physiques

A

D

F

C

B

E

G

Mémoirelogique duprocessus 1

Mémoirelogique duprocessus 2

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 27 / 61

Page 39: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

Avantages et inconvénients

Avantages

La gestion de la mémoire est plus simple (il suffit de gérer la liste despages libres).

Le compactage est inutile.

Protections différentes pour chaque page.

Inconvénients

Le temps d’accès en mémoire est doublé.−→ temps d’accès = 2 × t = 2 nanosecondes.

Il faut que le matériel supporte cette organisation.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 28 / 61

Page 40: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

Comportement des processus

Non uniforme

Le comportement « en moyenne »des processus est non uniforme :

20% des pages regroupent 75% des accès.

Principe de localité

les accès sont stable sur une courte période ;

l’activité actuelle est une bonne estimation de l’activité future.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 29 / 61

Page 41: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

Les tables de pages : utilisation de la mémoire

Une table par processus

Problème : si

adresse logique ∈ {0, . . . , 232 − 1}

taille d’une page = 4K = 212 ,

alors

taille de la table de pages = 220 .

Solutions

plusieurs niveaux d’indirection (table de page paginée),

tables de pages inversées,

partage de pages.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 30 / 61

Page 42: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

Mémoires associatives

100 100 500

échec

500

entre 16et 512

Caractéristiques

Peu de temps d’attente car les tests sont faits en parallèle (20nanosecondes) ;

Ces circuits sont très onéreux.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 31 / 61

Page 43: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

Mémoires associatives et pagination

Principe

Retenir les derniers couples (page logique, page physique), pour éviterl’accès mémoire à la table des pages.

npl dep

adr. logique

mémoireassociative

échec

succès

npp npp dep

adr. physique

Table des pages (desc)

RB

+

vérifier quenpl < RL

RL

npp prot

Il faut mettre à jour la M.A. après les échecs et la vider lors des commutations.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 32 / 61

Page 44: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Allocation non-contiguë : la pagination

Partage de pages entre processus

Pa

Pb

Pa

Pb

D1

D2

D4

D5

D6

D7

Table despages du

processus 1

Table despages du

processus 2

pages physiques

Pa

Pb

D1

D2

D4

D5

D6

D7

Les pages contenant le programme (Pa et Pb) sont partagées,mais les pages de données (D1, …, D7) ne le sont pas.

Mémoirelogique duprocessus 1

Mémoirelogique duprocessus 2

Principe

Les pages contenant le programme Pa et Pb sont partagées, tandis que lespages Dx ne le sont pas.

Pour une même page physique, il est possible d’avoir des protectionsdifférentes suivant le processus qui l’utilise.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 33 / 61

Page 45: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Segmentation

La mémoire segmentée

Notion de segments

Un segment est un bloc de donnée de taille variable.

code 1

0

L0

code 22

L2

data 11

L1

data 2

3

L3

Adresse logique

Une adresse logique dans un système segmenté (aussi appelée adressesegmentée) est un couple

(# segment, déplacement)Cette organisation physique de la mémoire corresponds bien à l’organisationlogique à l’intérieur d’un programme.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 34 / 61

Page 46: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Segmentation

Transformation des adresses segmentées

Table de segments

Le S.E. détient une table des segments pour chaque processus.

L0

L1

L2

L3

0

1

2

3

table des segments (desc)

code 1

code 2

mémoirephysique

RB

RL

pro

t

ori

gin

e

tail

le

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 35 / 61

Page 47: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Segmentation

Transformation des adresses segmentées

Version algorithmique de la correspondance

〈seg, dépl 〉 := adresse logiquesi (seg < RL ) et (desc[seg].taille ) alors

si les protections desc[seg].prot sont respectées alorsadresse_physique := desc[seg].origine + dépl

sinon〈déroutement sur violation de protection〉

fin sisinon

〈déroutement sur erreur d’adressage〉fin si

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 36 / 61

Page 48: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Segmentation

Partage de segment entre processus

Exemple

taille

0

1

prot origine

table des segments de P1

data 1

code

data 2

taille

0

1

prot origine

table des segments de P2

code0

data 11 data 201

P1P2

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 37 / 61

Page 49: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Segmentation

Avantages et inconvénients

Avantages

les protections concernent les segments,

on peut utiliser les mémoires associatives,

le partage de segment est simple.

Inconvénients

L’allocation de segments implique :

un problème de fragmentation externe ;

une obligation du tassage de la mémoire.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 38 / 61

Page 50: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

Le partage de la mémoire Segmentation

Pagination d’une mémoire segmentée

Adresse logique

Une adresse logique (ou adresse segmentée et paginée) est un triplet(# segment, # de page, déplacement)

La taille des segments s’exprime maintenant en nombre de pages.

npl

npp dep

adr. segmentée et paginée

adr. physique

Table des segments

R. de base

seg

+

L

vérifier que(npl < L) +

Table des pagesdu segment seg

npp

L

dep

Avantages

Plus de problème de fragmentation interne puisque les segments ne sont pluscontigus en mémoire physique.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 39 / 61

Page 51: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Table de matière

1 Généralités

2 Le partage de la mémoireAllocation de mémoireAllocation de la mémoire contiguëAllocation non-contiguë : la paginationSegmentation

3 La mémoire virtuelleAlgorithmes de remplacement

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 40 / 61

Page 52: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Mémoire virtuelle paginée

Principe

Les programmes utilisent 20% de leur page, donc il est inutile de toutes lesconserver en mémoire.

Exemple

Considérons une mémoire physique avec 1000 cadres de page. Cettemémoire peut stocker :

10 processus de 100 pages logiques ;

50 processus de (100 × 0, 2) pages utiles.

Rôle du S.E.

Le S.E. doit détecter (avec l’aide du matériel) :

les pages inutilisées (réquisition) ;

les pages utiles et présentes en mémoire physique ;

les pages utiles et absentes de la mémoire physique (défaut de page) ;

les pages utiles dans le futur et absentes de la mémoire physique(préchargement).Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 41 / 61

Page 53: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Fonction de pagination virtuelle

Fonction depagination

Mémoirevirtuelle

Mémoirephysique

Défaut de page

zone de paginationen mémoire secondaire

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 42 / 61

Page 54: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Hiérarchie de mémoire

Gestionde la

mémoirevirtuelle

Gestionde la

mémoirecache

Mémoire secondaire lente (bandes, ...)

Mémoire secondaire standard

Mémoire secondaire rapide

Mémoire centrale

Mémoire cache (lente)

Mémoire cache (de la CPU)

Registres de la CPU

Swappingin / out

Compilation

Gestion de cache

La mémoire virtuelle implante la gestion d’un niveau de cache.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 43 / 61

Page 55: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Adresses virtuelles versus adresses physiques

npv dep

npp0 npp dep

adr. virtuelle

adr. physique

1

mémoireassociative

échec

pré

sen

t

mo

dif

Table des pagesvirtuelles (desc)

RB

succès

+

défaut de pagesi présent = 0

pro

t

np

p

RL

Table des pages virtuelles

Pour chaque processus, le S.E. détient une table des pages virtuelles. Cettetable est stockée en mémoire et pointée par le registre de base.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 44 / 61

Page 56: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Transformation des adresses virtuelles

Version algorithmique de la correspondance

〈npv, dépl 〉 := adresse virtuellesi (npv < RL ) alors

si les protections desc[npv].prot sont respectées alorssi (desc[npv].présent = 1 ) alors

npp := desc[npv].nppadresse_physique := <npp, dépl>

sinon〈déroutement sur défaut de page〉

fin sisinon

〈déroutement sur violation de protection〉fin si

sinon〈déroutement sur erreur d’adressage〉

fin si

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 45 / 61

Page 57: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Exemple de mémoire virtuelle paginée

Exemple sur deux processus

A

0

1

pré

sen

t

mo

dif

np

p

B

C

D

E

F

G

H

01

B

H

D

C

F

A

B

?

?

E

F

G

?

1

1

1 1

1

1

0

0

0 -

-

- -

-

-

Tables despages virtuelles

Mémoiresvirtuelles

Mémoirephysique

Zone depagination

Processus2

Processus1

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 46 / 61

Page 58: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Traitement du défaut de page

Algorithme

〈suspendre le processus qui a provoqué le défaut〉si (il existe une page physique libre ) alors

npp := 〈numéro de cette page〉sinon

v := 〈choisir une page virtuelle victime〉npp := desc[v].nppdesc[v].présent := 0si (desc[v].modif = 1 ) alors

swap[v] := page[npp] c’est une E/Sfin si

fin sinpv := 〈numéro de la page virtuelle manquante〉page[npp] := swap[npv] c’est une E/Sdesc[npv].présent := 1desc[npv].modif := 0desc[npv].npp := npp〈reprendre le processus que a provoqué le défaut〉

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 47 / 61

Page 59: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Pagination à plusieurs niveaux

Principe

Si la mémoire est importante, le nombre de pages augmente et la table despages devient imposante.

Exemple

Une mémoire de 256 Mo (soit 228 octets) est divisée en 228/210 = 218 pages.

La table des pages a donc 218 entrées soit 1 Mo pour des entrées de 4 octets.

Solution

Paginer la table de pages ce qui revient à faire une pagination à deux niveaux.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 48 / 61

Page 60: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Organisation à plusieurs niveaux

npv dep

npp dep

adr.virtuelle

adr.physique

mémoireassociative

Table des hyperpages

R. de base

succès

nhyp

+

L

vérifier quenpv < L +

Table des pagesde l'hyperpage nhyp

npp01

pré

sen

t

mo

dif

L

défaut de pagesi présent = 0

1

pré

sen

t

Niveaux de pagination

Il peut y avoir jusqu’à 5 niveaux de pagination.

Temps d’accès = 0, 98 × 120 + 0, 02 × 520 = 128ms

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 49 / 61

Page 61: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

Mémoire virtuelle segmentée et paginée

page dep

npp dep

adr.virtuellepaginée

segmentéeadr.

physique

mémoireassociative

Table des segments

RB

succès

seg

+

L

vérifier quepage < L +

Table des pagesdu segment seg

01

pré

sen

t

mo

dif

L

défaut de pagesi présent = 0

pro

t

ori

gin

e

Avantages

Le processus est capable d’informer le S.E. d’un changement dans le moded’utilisation d’un segment.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 50 / 61

Page 62: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle

La taille des pages

Avantages de grandes pages

diminuer le nombre de pages, donc le nombre de défaut de page ;

diminuer la taille de la table de pages ;

optimiser le temps de transfert vers/depuis la zone de pagination ;

utiliser des mémoires centrales de plus en plus grandes.

Avantages de petites pages

limiter la fragmentation interne ;

définir avec plus de précision les zones de mémoires utiles à unprocessus.

S.E. récents

la taille de pages varie entre 1 Ko et 32 Ko ;

certains S.E. autorisent plusieurs tailles différentes.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 51 / 61

Page 63: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle Algorithmes de remplacement

Algorithmes de remplacement (1/3)

Pages propres

On choisit en priorité les pages virtuelles propres (qui n’ont pas étémodifiées). Ça réduit les transferts vu que la page ne sera pas sauvegardesur la zone de pagination.

Algorithmes de remplacement

Algorithme optimale (base de référence) : choisir la page virtuelle qui est utiliséele plus tard possible ou qui n’est plus utilisée ;

Algorithme aléatoire : le moins bon ;

Algorithme FIFO : il ne tient pas compte de l’utilisation des pages ;

Algorithme LRU (Least Recently Used) : est basé sur le principe de localité. Onchoisit la page dont la date du dernier accès est la plus ancienne ;

Algorithme LFU (Least Frequently Used) : choisir la page la moins utilisée ;

Algorithme LINUFO (First In Not Used First Out) : aussi connu comme algorithmede la deuxième chance.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 52 / 61

Page 64: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle Algorithmes de remplacement

Algorithmes de remplacement (2/3)

Algorithme FINUFO

L’algorithme FINUFO ou dit algorithme de la deuxième chance va remplacerune page uniquement au deuxième essai. Pour cela, on dispose :

d’un pointeur de page physique ptr ;

d’un bit par page physique noté U[k] . Ce bit U[k] est forcé à 1 aprèschaque accès à la page physique k .

Algorithme du choix de la victime FINUFO

tant que (U[prt] = 1 ) faireU[ptr] := 0ptr = (ptr + 1) mod 〈nombre de pages physiques〉

fin faireU[ptr] = 1ptr = (ptr + 1) mod 〈nombre de pages physiques〉

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 53 / 61

Page 65: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle Algorithmes de remplacement

Algorithmes de remplacement (3/3)

Exemple - FINUFO avec mémoire physique à deux pages

5

0

1

5 1

2

5 1

2 1

3 1

2 0

3

3 1

2 1

2

3 0

4 1

4

pointeur FINUFO

bit FINUFO

N° de page virtuelle

Performances

Nombrede défauts

de page

Taille de la mémoire

FIFO

FINUFO

LRU

OPT

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 54 / 61

Page 66: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle Algorithmes de remplacement

Comportement en mémoire virtuelle paginée

Nombrede défauts

de page

Taille de la mémoire

Intervalleentre

défautsde page

Taille de la mémoire

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 55 / 61

Page 67: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle Algorithmes de remplacement

Allocation des pages physiques

Allocation équitable

On donne à chaque processus une part égale de la mémoire physique.

Allocation proportionnelle

On donne à chaque processus une part proportionnelle à la taille de samémoire virtuelle.

Virtuelles PhysiquesProcessus 1 25 20Processus 2 70 53Processus 3 35 27Mémoires 130 100

Politique de choix de la victime

Remplacement local : on choisit parmi les pages du processusdemandeur ;

Remplacement global : on choisit parmi toutes les pages.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 56 / 61

Page 68: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle Algorithmes de remplacement

Écroulement d’un système paginé (1/2)

Définition

Augmentation considérable du nombre de défaut de page provoquant unchute du taux d’utilisation de la CPU.

Tauxd'utilisation

de la CPU

dégré de multiprogrammation

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 57 / 61

Page 69: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle Algorithmes de remplacement

Écroulement d’un système paginé (2/2)

Pour éviter l’écroulement du système

régulation de charge par la variation du degré de multiprogrammation(swapping in/out) ;

répartition variable de la mémoire physique.

On se base sur

méthode de l’ensemble de travail ;

observation du taux de défaut de page.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 58 / 61

Page 70: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle Algorithmes de remplacement

Méthode de l’ensemble de travail (1/2)

Fenêtre d’observation

L’ensemble de travail d’un processus au temps t noté W (t ,T ) est l’ensembledes pages ayant été référencées entre t et (t − T ). T est appelé la fenêtred’observation.

Proprieté

La probabilité que l’une des pages de W (t ,T ) soit référencée au temps(t + 1) est forte.

Conséquence

Si les pages physiques allouées à un processus ne peuvent contenirl’ensemble de travail, le nombre de défauts de page sera important.

Problème

Il est très coûteux de maintenir un ensemble de travail pour chaqueprocessus.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 59 / 61

Page 71: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle Algorithmes de remplacement

Méthode de l’ensemble de travail (2/2)

Principe d’implémentation

On utilise une approximation en associant n bits b1, ..., bn à chaque pagephysique.

chaque accès à une page physique provoque la mise à 1 du bit b1

associé à cette page ;

régulièrement (sur interruption d’horloge), le S.E. décale les bitsb1, ..., bn−1 vers la droite et le bit b1 est forcé à zéro.

donc, les bits b1, ..., bn donnent un historique d’utilisation de la page physique.

une page physique appartient à W (t ,T ) ssi

il existe j < T tel que bj = 1.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 60 / 61

Page 72: Systèmes d’Exploitation - ENSIN6U3 - lsis.org · Systèmes d’Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat2 1Leonardo.Brenner@univ-amu.fr

La mémoire virtuelle Algorithmes de remplacement

Méthode du taux de défaut de page

Principe

Le taux de défaut de page pour chaque processus doit être compris entre deux bornes.

Taux trop bas

Si le taux est trop bas , alors le nombre de pages physiques allouées à ce processusest trop important.

Taux trop haut

Si le taux est trop haut , alors le nombre de pages physiques allouées à ce processusn’est pas suffisant pour contenir son ensemble de travail. Deux actions sont possibles :

enlever des pages physiques au processus dont le taux est trop bas afin de lesredistribuer au processus qui manque de pages physiques ;

appliquer le « swapping out »d̃e processus pour diminuer le degré demultiprogrammation, et libérer des pages physiques.

En fait le S.E. tente d’égaliser les taux de défaut de page pour tous les processus dusystème.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 61 / 61