MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M...

15
Translation d’adresse logique physique mécanisme (MMU) protection Allocation de la mémoire organisations et algorithmes interaction avec l'allocation du CPU et le swapping similarité avec l'allocation des fichiers Performance - temps d’accès - espace utilisé Allocation contiguë partitions fixes partitions variables algorithmes Mémoire paginée Mémoire segmentée Mémoire segmentée et paginée GESTION DE LA MÉMOIRE Mémoire virtuelle Chargement de page sur demande Algorithmes de remplacement de page Gestion des pages et écroulement ( thrashing ) MÉMOIRE VIRTUELLE Cache mémoire ORGANISATION DE LA MÉMOIRE Espace logique Allocation & mapping 4-1 Contiguë Paginée Linéaire Contiguë Paginée Segmenté Segmentée Segmentée & Paginée P 1 P 2 CPU CPU NOYAU 0 0 0 processus # 1 processus # 2 MULTI-PROGRAMMATION Translation d'adresse logique --> physique - lors du chargement - à l'exécution - dynamique (matériel spécial) Problèmes: protection performance 4-2 MMU CPU adresse données mov ad_1, ad_2 jmp ad_3 ad_1 ad_2 ad_3 0 0 MÉMOIRE Processus ADRESSE LOGIQUE VS ADRESSE PHYSIQUE À quoi correspondent les adresses dans le code en mémoire ? + relatives au processus + doivent être traduites (translation d'adresse) MÉMOIRE MMU CPU adresse données MMU ( unité de gestion mémoire ) 4-3

Transcript of MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M...

Page 1: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

Translation d’adresse logique physiquemécanisme (MMU)protection

Allocation de la mémoireorganisations et algorithmesinteraction avec l'allocation du CPU et le swappingsimilarité avec l'allocation des fichiers

Performance - temps d’accès- espace utilisé

Allocation contiguëpartitions fixespartitions variables algorithmes

Mémoire paginée

Mémoire segmentée

Mémoire segmentée et paginée

GESTION DE LA MÉMOIRE

Mémoire virtuelle

Chargement de page sur demande

Algorithmes de remplacement de page

Gestion des pages et écroulement ( thrashing )

MÉMOIRE VIRTUELLE

Cache mémoire

ORGANISATION DE LA MÉMOIRE

Espace logique

Allocation & mapping

4-1

Contiguë Paginée

Linéaire Contiguë Paginée

Segmenté Segmentée Segmentée

& Paginée

P 1

P 2

CPU

CPU

NOYAU0

0

0

processus # 1

processus # 2

MULTI-PROGRAMMATION

Translation d'adresselogique --> physique

- lors du chargement- à l'exécution - dynamique

(matériel spécial)

Problèmes:protectionperformance

4-2

MMU

CPU

adresse

données

mov ad_1, ad_2

jmp ad_3

ad_1ad_2

ad_3

0

0

MÉMOIRE

Processus

ADRESSE LOGIQUE VS ADRESSE PHYSIQUE

À quoi correspondentles adresses dans lecode en mémoire ?

+ relatives au processus+ doivent être traduites

(translation d'adresse)

MÉMOIRE

MMU

CPU

adresse

données

MMU ( unité de gestion mémoire )

4-3

Page 2: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

MÉMOIRE

CPU

adresse

données

registre

+

Translation d'adresse

MÉMOIRE

CPU

adresse

données

base

+

limite

<

Protection mémoire

CODE

CPU

MÉMOIRE

ADRESSE

registre

+

MMU

INSTRUC-TION

ESPACEPHYSIQUE

MÉMOIRE

adressephysique

Base

+adresselogique

ESPACELOGIQUE

Adresse logique vs adresse physiqueCOMPILA-

TION

ÉDITEURDE LIENS

CHARGEMENTET

EXÉCUTION

Programme C

int a;

a = ...

CPU

reg.

+

pr.c

pr.o (obj)

adresse

0

a

CODE

DATA

xx

a

CODE

DATA

0

pr.out (exe)

Programme

CODEDATA

adr.

fichiers OBJ

MÉMOIRE

a

4-6

4.2Gestion des adresses

Var A B

Prog

A = B if( ....) then

MOV B, AtestJSB L1

Objet A

TRANSLATION D'ADRESSE

CHARGEMENT EN MÉMOIRE

CompilationSource Module Objet

0

A

B

Prog

L1

ÉDITEUR DE LIENS

Objet B

0

Objet A Objet B

Code exécutable

0Mémoire

Prog.

extern int var_1 int var_2

static int var_3

void func_1( ){

int local_1

}

func_1var_1 var_2

mov

add

var_2

var_3

CODE

variables

variables internes (références)export var_2 adr_2

func_1 adr_4

privées var_3 adr_3

variables externesimport var_1 ?

liste desréférences

var_1

constantesdonnées

fichier source

fichier objet

COMPOSITION D'UN MODULE OBJET

Page 3: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

format ELF

table des symboles- nom (strtab)- adresse +section

tables de relocatisation- # symbole- position

4-8

format ELF

Module objet

ou

Fichierexécutable

Éditiondes liens

1) Résoudre les références externes

2) L'assignation mémoire

3) Relocalisation des symboles

ALLOCATION CONTIGUË

Un registre pour l'adresse de base

translation d'adresse

Un registre de limite (taille)

protection

MÉMOIRE

CPU

adresse

données

base

+

limite

<

4-11

4-4

P1

P2

NOYAU0

0

0

P1

P2

PartitionA

PartitionB

PARTITIONS FIXES

Le nombre et la taille des partitions sont fixes

4-13ALLOCATION MÉMOIRE ET GESTION DES TÂCHES

(allocation des processus - haut niveau)

12 M

6 M

2 M

Noyau

1.5 M, 1 M, 2 M

2.5 M, 4 M, 5 M

12 M, 8 M

Une file par partitionAlgorithmed'allocationdes tâches

FCFSSPNPRIORITÉ

Page 4: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

12 M

6 M

2 M

Noyau

1 M, 7 M, 3 M, 2 M, 5 M

Une seule file

Problèmes de - sélection de la grandeur des partitions- fragmentation interne

PARTITIONS VARIABLES

Le nombre et la taille des partitions sont variables

P1

P2

NOYAU0

0

0

P1

P2

Problèmes de - fragmentation externe- maintenir une liste des espaces disponibles ( trous )

4-15ou dynamiques

Système( noyau)

16 M libre

utilisé

14 M libre

5 M libre

30 M libre

utilisé

utilisé

0

a

b

c

d

e

f

g

Liste des espaces libresadressede début taille

a 16 Mc 14 Me 5 Mg 30 M

Algorithme FIRST-FIT

Choisi le PREMIER espace libre pouvant contenir le processusà partir du DÉBUT de la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche au début de la liste

? autres critères

demandes

14 M

13 M

FCFS

5 M

4-16

Liste des espaces libresadressede début taille

a' 3 Mc 14 Me 5 Mg 30 M

Algorithme FIRST-FIT

Choisi le PREMIER espace libre pouvant contenir le processusà partir du DÉBUT de la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche au début de la liste

demandes

Système( noyau)

utilisé

14 M libre

5 M libre

30 M libre

utilisé

utilisé

0

a'b

c

d

e

f

g

13 M

3 M

14 M

FCFS

5 M

Liste des espaces libresadressede début taille

a' 3 Mc' 9 Me 5 Mg 30 M

Algorithme FIRST-FIT

Choisi le PREMIER espace libre pouvant contenir le processusà partir du DÉBUT de la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche au début de la liste

demandes

Système( noyau)

utilisé

9 M libre

5 M libre

30 M libre

utilisé

utilisé

0

a'b

d

e

f

g

13 M

3 M

5 Mc'

14 M

FCFS

Page 5: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

Liste des espaces libresadressede début taille

a' 3 Mc' 9 Me 5 Mg' 16 M

Algorithme FIRST-FIT

Choisi le PREMIER espace libre pouvant contenir le processusà partir du DÉBUT de la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche au début de la liste

demandes

Système( noyau)

utilisé

9 M libre

5 M libre

16 M libre

utilisé

utilisé

0

a'b

d

e

f

13 M

3 M

5 Mc'

14 Mg'

FCFS

Système( noyau)

16 M libre

utilisé

14 M libre

5 M libre

30 M libre

utilisé

utilisé

0

a

b

c

d

e

f

g

Liste des espaces libresadressede début taille

a 16 Mc 14 Me 5 Mg 30 M

Algorithme NEXT-FIT

Choisi le PREMIER espace libre pouvant contenir le processusSUIVANT la dernière insertiondans la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche à la suite de la dernière insertion

demandes

14 M

13 M

FCFS

5 M

Liste des espaces libresadressede début taille

a 16 Mc 14 Me 5 Mg' 17 M

Algorithme NEXT-FIT

Choisi le PREMIER espace libre pouvant contenir le processusSUIVANT la dernière insertiondans la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche à la suite de la dernière insertion

demandes

Système( noyau)

16 M libre

utilisé

14 M libre

5 M libre

17 M libre

utilisé

utilisé

0

a

b

c

d

e

f

g'13 M

14 M

FCFS

5 M

Liste des espaces libresadressede début taille

a 16 Mc 14 Me 5 Mg'' 12 M

Algorithme NEXT-FIT

Choisi le PREMIER espace libre pouvant contenir le processusSUIVANT la dernière insertiondans la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche à la suite de la dernière insertion

demandes

Système( noyau)

16 M libre

utilisé

14 M libre

5 M libre

12 M libre

utilisé

utilisé

0

a

b

c

d

e

f

g''

13 M

5 M

14 M

FCFS

Liste des espaces libresadressede début taille

a' 2 Mc 14 Me 5 Mg'' 12 M

Algorithme NEXT-FIT

Choisi le PREMIER espace libre pouvant contenir le processusSUIVANT la dernière insertiondans la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche à la suite de la dernière insertion

demandes

14 M

Système( noyau)

utilisé

14 M libre

5 M libre

12 M libre

utilisé

utilisé

0

b

c

d

e

f

g''

13 M

5 M

a' 2 M

FCFS

Système( noyau)

16 M libre

utilisé

14 M libre

5 M libre

30 M libre

utilisé

utilisé

0

a

b

c

d

e

f

g

Liste des espaces libresadressede début taille

a 16 Mc 14 Me 5 Mg 30 M

Algorithme NEXT-FIT

Choisi le PREMIER espace libre pouvant contenir le processusSUIVANT la dernière insertiondans la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche à la suite de la dernière insertion

demandes

14 M

13 M

FCFS

5 M

Nouveau départ

Page 6: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

Liste des espaces libresadressede début taille

a 16 Mc' 1 Me 5 Mg 30 M

Algorithme NEXT-FIT

Choisi le PREMIER espace libre pouvant contenir le processusSUIVANT la dernière insertiondans la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche à la suite de la dernière insertion

demandes

14 M

FCFS

5 M

Système( noyau)

16 M libre

utilisé

5 M libre

30 M libre

utilisé

utilisé

0

a

b

d

e

f

g

c'13 M

1 M

Algorithme NEXT-FIT

Choisi le PREMIER espace libre pouvant contenir le processusSUIVANT la dernière insertiondans la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche à la suite de la dernière insertion

demandes

14 M

FCFS

Système( noyau)

16 M libre

utilisé

5 M libre

30 M libre

utilisé

utilisé

0

a

b

d

g

c'13 M

1 M

5 M

Liste des espaces libresadressede début taille

a 16 Mc' 2 Mg 30 M

Algorithme NEXT-FIT

Choisi le PREMIER espace libre pouvant contenir le processusSUIVANT la dernière insertiondans la liste des espaces libres

Nous utilisons - une liste ordonnée selon l'adresse- reprise de la recherche à la suite de la dernière insertion

demandesFCFS

Système( noyau)

16 M libre

utilisé

5 M libre

16 M libre

utilisé

utilisé

0

a

b

dc'

13 M

1 M

5 M

14 Mg'

Liste des espaces libresadressede début taille

a 16 Mc' 2 Mg' 16 M

Système( noyau)

16 M libre

utilisé

14 M libre

5 M libre

30 M libre

utilisé

utilisé

0

a

b

c

d

e

f

g

Liste des espaces libresadressede début taille

e 5 Mc 14 Ma 16 Mg 30 M

Algorithme BEST-FIT

Choisi le PLUS PETIT espace libre pouvant contenir le processusdans la liste des espaces libres

Nous utilisons une liste ordonnée selon la taille la plus petite

demandes

14 M

13 M

FCFS

5 M

Liste des espaces libresadressede début taille

c' 1 Me 5 Ma 16 Mg 30 M

Algorithme BEST-FIT

Choisi le PLUS PETIT espace libre pouvant contenir le processusdans la liste des espaces libres

Nous utilisons une liste ordonnée selon la taille la plus petite

demandes

Système( noyau)

16 M libre

utilisé

5 M libre

30 M libre

utilisé

utilisé

0

a

b

d

e

f

g

c'13 M

1 M

14 M

FCFS

5 M

Liste des espaces libresadressede début taille

c' 1 Ma 16 Mg 30 M

Algorithme BEST-FIT

Choisi le PLUS PETIT espace libre pouvant contenir le processusdans la liste des espaces libres

Nous utilisons une liste ordonnée selon la taille la plus petite

demandes

Système( noyau)

16 M libre

utilisé

5 M libre

30 M libre

utilisé

utilisé

0

a

b

d

g

c'13 M

1 M

5 M14 M

FCFS

Page 7: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

Liste des espaces libresadressede début taille

c' 1 Ma' 2 Mg 30 M

Algorithme BEST-FIT

Choisi le PLUS PETIT espace libre pouvant contenir le processusdans la liste des espaces libres

Nous utilisons une liste ordonnée selon la taille la plus petite

demandes

Système( noyau)

utilisé

5 M libre

30 M libre

utilisé

utilisé

0

b

d

g

c'13 M

1 M

5 M

14 Ma' 2 M

FCFS

Système( noyau)

16 M libre

utilisé

14 M libre

5 M libre

30 M libre

utilisé

utilisé

0

a

b

c

d

e

f

g

Liste des espaces libresadressede début taille

g 30 Ma 16 Mc 14 Me 5 M

Algorithme WORST-FIT

Choisi le PLUS GRAND espace libre pouvant contenir le processusdans la liste des espaces libres

Nous utilisons une liste ordonnée selon la taille la plus grande

demandes

14 M

13 M

FCFS

5 M

Liste des espaces libresadressede début taille

g' 17 Ma 16 Mc 14 Me 5 M

Algorithme WORST-FIT

Choisi le PLUS GRAND espace libre pouvant contenir le processusdans la liste des espaces libres

Nous utilisons une liste ordonnée selon la taille la plus grande

demandes

Système( noyau)

16 M libre

utilisé

14 M libre

5 M libre

17 M libre

utilisé

utilisé

0

a

b

c

d

e

f

g'13 M

14 M

FCFS

5 M

Liste des espaces libresadressede début taille

a 16 Mc 14 Mg'' 12 Me 5 M

Algorithme WORST-FIT

Choisi le PLUS GRAND espace libre pouvant contenir le processusdans la liste des espaces libres

Nous utilisons une liste ordonnée selon la taille la plus grande

demandes

Système( noyau)

16 M libre

utilisé

14 M libre

5 M libre

12 M libre

utilisé

utilisé

0

a

b

c

d

e

f

g''

13 M

5 M

14 M

FCFS

Liste des espaces libresadressede début taille

c 14 Mg'' 12 Me 5 Ma' 2 M

Algorithme WORST-FIT

Choisi le PLUS GRAND espace libre pouvant contenir le processusdans la liste des espaces libres

Nous utilisons une liste ordonnée selon la taille la plus grande

demandes

14 M

Système( noyau)

utilisé

14 M libre

5 M libre

12 M libre

utilisé

utilisé

0

b

c

d

e

f

g''

13 M

5 M

a' 2 M

FCFS

Allocation d'un espace de 16K

4-18

Page 8: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

COMPACTION4-18

Efficacité minimiser les déplacements

Disque

nouveau

travail

création

d'un

processus

chargement

en mémoire

E / S

file d'attente E / S

CPU

file d'attente CPU

transfert

sur disque

SWAP

IN SWAP

OUT

en mémoire

sur disque

stockage sur disque

file d'attente des travaux

ALLOCATION

DU CPU et

GESTION DES

TRAVAUX

4-11

travaux 12345

mémoire 600 K 1000K 300 K 700 K 500 K

temps cpu 105

208

15

Exécution de travaux avec allocation mémoire

chargement FCFS (allocation des travaux)

allocation mémoire First-Fit

allocation du CPURound-Robin

(a) bc fin de 2 de fin de 1

1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 4 3 1 4 3 1 4 3 1 4 3 1 4 3

0 1 0 1 4 2 0 2 8 3 0

fin de 4 fin de 3 fin de 5

5 4 3 5 4 3 5 4 3 5 3 5 3 5 3 5 3 5 3 5 3 5 3 5 5 5 5 5

3 0 3 8 4 0 5 0 5 3 5 8

4-20

10 2 3 4 5 6 7

A B C D B D E

termine termine termine termine

AB

BCD

CDB

DB

BD

DE

E

0

25

100

B

A

50

10 2 3 4 5 6 7

Allocation du CPU

Allocation de la mémoire

temps

temps

75

90

40

0

100

B

C

50

75

90

40

D20

35

0

100

B

C

50

75

90

40

D20

35

0

100

B50

75

90

40

D20

35

0

100

B50

75

90

40

D20

35

0

100

E50

75

95

D20

35

0

100

E50

75

95

35

25

0

100

50

75

25

termine

+ chargement FCFS+ allocation de la mémoire

avec First-Fit+ allocation du CPU avec

Round-Robin (Q=1)

ALLOCATION DE TRAVAUX

travail mémoire CPUA 40 K 1 utB 50 K 2 utC 20 K 1 utD 15 K 2 utE 60 K 1 ut

4-20Recouvrement (Overlay)segmentation manuelle

Arbre d'appels de procédures

4-21

Page 9: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

Recouvrement (Overlay)

Fichier de recouvrement

p d

0

1

2

déplacementpage

0

1

2

3

4

mémoirephysiqueadresse logique

mémoire

déplacement = adresse modulo taille des pages

no de page = adresse / taille des pages

PAGINATION 4-23

ALLOCATION NON CONTIGÜE DES PAGES

0

P2 - 2

P2 - 0

P1 - 0

P2 - 1

P1 - 1

1

0

1

P1

P2

2

mémoire physique

4-24

ESPACEPHYSIQUE

# pagephysique

+

p

# pagelogique

ESPACELOGIQUE

d

b 0000

p+b d

déplacement

Division de l'espace en pages

4-25

Table des pages

# pagephysique

p

# pagelogique

d

b 0000

p+b d

déplacement

b b + 1b + 2

p

0

1

2

3

4

5

0

1

2

# pagephysique

p

# pagelogique

d f d

déplacement

431

p

0

1

2

3

4

5

0

1

2

page 0

page 1

page 2 page 0

page 1

page 2

Pagination

Page 10: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

Table des pages

registresPDP11 – 8reg 8K

mémoirebase register

2 accès mémoire

registre associatif

4-27 4-28

Utilisationd'un TLBpour la traductiond'adresse

4-25

4-27

Accès directMémoire associative

prob temps prob temps

80% T1 80% T1

50% T2 10% T2 20%

50% T3 10% T3

TEMPS D'ACCÈS EFFECTIF À LA MÉMOIRE

Temps effectif = temps moyen

Faire la somme pondérée des différents cas possibles

Temps effectif = Temps( cas k) Prob( cas k)

Temps effectif = Temps( cas 1) Prob( cas 1)+ Temps( cas 2) Prob( cas 2)+ Temps( cas 3) Prob( cas 3)

4-29

prob temps prob temps

80% T1 80% T1

50% T2 10% T2 20%

50% T3 10% T3

Temps effectif = Temps( cas k) Prob( cas k)

= 0.8 T1 + 0.2 ( 0.5 T2 + 0.5 T3 )

= 0.8 T1 + 0.1 T2 + 0.1 T3

TEMPS D'ACCÈS EFFECTIF À LA MÉMOIRE

accès mémoire = 100 nanosecondesvérification dans le TLB = 20 nanosecondes(Translation Look-aside Buffers)

__________________________

Taux de réussite du TLB = 80 % (hit ratio)

temps d'accès effectif = 0.8 x (20 ns + 100 ns )+ 0.2 x (20 ns + 100 ns + 100 ns)

= 140 nsaccroissement de 40%

4-30

Page 11: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

TEMPS D'ACCÈS EFFECTIF À LA MÉMOIRE

accès mémoire = 100 nanosecondesvérification dans le TLB = 20 nanosecondes(Translation Look-aside Buffers)

__________________________

Taux de réussite du TLB = 98 % (hit ratio)

temps d'accès effectif = 0.98 x (20 ns + 100 ns )+ 0.02 x (20 ns + 100 ns + 100 ns)

= 122 nsaccroissement de 22%

Code A

Code B

Code C

Data 1

0

1

2

3

4

6 ro v0

10 ro v1

1 ro v2

2 rw v3

5 rw v4

Data 2

7 ro v0

4 ro v1

10 ro v2

9 rw v3

i4

0

1

2

3

4

Code D

Code E

Code B

Data 3

0

1

2

3

Code C

Data 1

Code E

Data 2

Code A

Code D

Data 3

Code B

5

6

7

8

9

10

11

12

Processus P1

Processus P2

Mémoire

Table des pages

Table des pages

valide /invalide

read only /read writeUne table

des pages parprocessus

4-31

Une table des pages par processusProtection gestion de la table des pagespartage des pages entre processusdroits d'accès bits dans la table des pages

+ read-only / read-write+ valide / invalide

Une seule table des pages globale+ avec segmentation

pour le contrôle des droits d'accès+ bits d'identification de processus

table des pages inversée

4-27

déplacement

dans la page

index dans la

table de bas

niveau

index dans la

table de haut

niveau

0122231 21 11

Table des pages à plusieurs niveaux

4-32

0

1

2

3

4

Code C

Data 1

Code E

Data 2

Code A

Code D

Data 3

Code B

5

6

7

8

9

10

11

12

Mémoire

0

2 1

3 2

3

1 4

Table inverséedes pages

p d f d

déplacement

Code A

Code B

Code C

Data 1

Data 2

0

1

2

3

4

Code D

Code E

Code F

Data 3

0

1

2

3

Processus P1

Processus P2

P1P1

P24 5

0 6

0 7

8

3 9

P1P1P2

P21 10

2 11

P1P2

Code F

12

P1

?

# page logique

TABLE INVERSÉE DES PAGES4-33

Page 12: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

groupe C

groupe A

groupe B

0

1

101 2

3

4

Table inverséedes pages

9

401 5

6

7

8

2001 9

0

510

11

12

200 1# page logique

# de groupe

2

9

9# page physique

début deliste

FONCTION DE HASHING POUR TABLE INVERSÉE

S 0

P2 - S 2

P2 - S 0

P1 - S 0

P2 - S 1

P1 - S 1

S 1

S 0

S 1

P1

P2

S 2

mémoire physique

SEGMENTATION4-35

31 <8 bits> 24 23 <24 bits> 0

s d # seg. déplacement

SEGMENTATION

espace logique code -- programme

données -- variables

-- pile (stack)

Segment module ou objet

Modifier le matériel pour le faire correspondre àl'image (logique) de l'usager.

Adresse < # segment >, < déplacement >

mov A, B

4-35

31 <8 bits> 24 23 <24 bits> 0

s d # seg. déplacement

Similarités avec

partitions de taille variable groupe

pagination pages de taille variable

Souplesse possibilité de liens dynamiques

Protection et partage simplifiées

Fragmentation externe comme partitions variables

Var A B

Prog

A = B if( ....) then

MOV B, AtestJSB L1

Objet A

TRANSLATION D'ADRESSE

CHARGEMENT EN MÉMOIRE

CompilationSource Module Objet

0

A

B

Prog

L1

ÉDITEUR DE LIENS

Objet B

0

Objet A Objet B

Code exécutable

0Mémoire

Prog.

TABLE DES SEGMENTS

Un segment partition variable

Plusieurs segments

4-37

Page 13: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

4-37

Un programme est composéde plusieurs segments

4-37

Partage desegments

4-37

4-38 Stall. 351

Page 14: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

Systèmes segmentés et paginés

PC/RT et Pentium

4-39 PC/RT (IBM 6150)

Passage d'une adresse logique 32 bits à une adresse virtuelle étendu sur 40 bits du PC/RT

4-40

Système de pagination inversé du PC/RT4-40

0

1

2

3

4

Code C

Data 1

Code E

Data 2

Code A

Code D

Data 3

Code B

5

6

7

8

9

10

11

12

Mémoire

0

2 1

3 2

3

1 4

Table inverséedes pages

p d f d

déplacement

Code A

Code B

Code C

Data 1

Data 2

0

1

2

3

4

Code D

Code E

Code F

Data 3

0

1

2

3

Processus P1

Processus P2

P1P1

P24 5

0 6

0 7

8

3 9

P1P1P2

P21 10

2 11

P1P2

Code F

12

P1

?

# page logique

TABLE INVERSÉE DES PAGES4-33

groupe C

groupe A

groupe B

0

1

101 2

3

4

Table inverséedes pages

9

401 5

6

7

8

2001 9

0

510

11

12

200 1# page logique

# de groupe

2

9

9# page physique

début deliste

FONCTION DE HASHING POUR TABLE INVERSÉE

PENTIUM

Registres sélecteurs

Tables de descripteurs de segments

4-41

Page 15: MMU ( unité de gestion mémoire ) - Université Lavalbeaulieu/ift10544/ppt/pp4_memoire_e...12 M 6 M 2 M Noyau 1 M, 7 M, 3 M, 2 M, 5 M Une seule file Problèmes de - sélection de

Registres sélecteurs

Tables de descripteurs de segments

PENTIUM

4-42

Pagination à 2 niveaux du Pentium4-42