MMU ( unité de gestion mémoire )

Transcription

MMU ( unité de gestion mémoire )
GESTION DE LA MÉMOIRE
Translation d’adresse
MÉMOIRE VIRTUELLE
logique Î physique
mécanisme (MMU)
protection
Mémoire virtuelle
Allocation de la mémoire
organisations et algorithmes
interaction avec l'allocation du CPU et le swapping
similarité avec l'allocation des fichiers
Chargement de page sur demande
Performance - temps d’accès
- espace utilisé
Allocation contiguë
partitions fixes
partitions variables Æ algorithmes
Gestion des pages et écroulement ( thrashing )
Algorithmes de remplacement de page
Cache mémoire
Mémoire paginée
Mémoire segmentée
Mémoire segmentée et paginée
4-1
ORGANISATION DE LA MÉMOIRE
0
Î Espace logique
NOYAU
Î Allocation & mapping
Contiguë
processus # 1
Paginée
0
Translation d'adresse
logique --> physique
Linéaire
Contiguë
4-2
MULTI-PROGRAMMATION
P1
CPU
processus # 2
Paginée
0
P2
- lors du chargement
- à l'exécution - dynamique
(matériel spécial)
Segmenté Segmentée Segmentée
& Paginée
CPU
Problèmes:
protection
performance
4-3
ADRESSE LOGIQUE VS ADRESSE PHYSIQUE
MMU ( unité de gestion mémoire )
0
MÉMOIRE
données
données
À quoi correspondent
les adresses dans le
code en mémoire ?
+ relatives au processus
+ doivent être traduites
(translation d'adresse)
0
Processus
mov ad_1, ad_2
CPU
MÉMOIRE
jmp ad_3
CPU
MMU
adresse
ad_3
MMU
ad_1
ad_2
adresse
Translation d'adresse
Protection mémoire
données
données
CPU
MÉMOIRE
registre
MÉMOIRE
base
CPU
+
+
<
adresse
limite
adresse
4-6
Programme C
Adresse logique vs adresse physique
MMU
CODE
MÉMOIRE
registre
CPU
+
INSTRUCTION
int a;
4.2
Gestion des
adresses
COMPILATION
a = ...
adresse
a
0
CODE
pr.c
DATA
ADRESSE
a
pr.o
ÉDITEUR
DE LIENS
0
ESPACE
LOGIQUE
ESPACE
PHYSIQUE
(obj)
fichiers OBJ
xx
MÉMOIRE
CODE
Base
DATA
a
adresse
logique
MÉMOIRE
CHARGEMENT
ET
EXÉCUTION
+
adresse
physique
reg.
Programme
pr.out
(exe)
CPU
TRANSLATION D'ADRESSE
Compilation
Source
0
A
Var
A
B
Module Objet
var_1 var_2
L1
ÉDITEUR DE LIENS
0
extern int var_1
int var_2
static int var_3
Code exécutable
CHARGEMENT EN MÉMOIRE
0
Mémoire
mov
add
void func_1( )
{
int local_1
var_1
}
var_2
Objet A
Objet B
Objet B
CODE
func_1
Prog
Prog.
fichier objet
MOV B, A
test
JSB L1
Objet A
adr.
fichier source
B
Prog
A = B
if( ....)
then
CODE
DATA
+
données
constantes
variables
var_3
COMPOSITION D'UN
MODULE OBJET
variables internes
export
var_2
func_1
(références)
adr_2
adr_4
privées
adr_3
var_3
variables externes
import
var_1
?
liste des
références
4-8
format ELF
format ELF
Module objet
table des symboles
- nom (strtab)
- adresse +section
ou
Fichier
exécutable
tables de relocatisation
- # symbole
- position
4-11
ALLOCATION CONTIGUË
Édition
des liens
4-4
Un registre pour l'adresse de base
données
MÉMOIRE
Æ translation d'adresse
1) Résoudre les références externes
+
Æ protection
<
2) L'assignation mémoire
limite
adresse
3) Relocalisation des symboles
4-13
PARTITIONS FIXES
Le nombre et la taille des partitions sont fixes
0
P1
ALLOCATION MÉMOIRE ET GESTION DES TÂCHES
(allocation des processus - haut niveau)
Une file par partition
NOYAU
0
P1
Partition
A
1.5 M, 1 M, 2 M
Noyau
2 M
2.5 M, 4 M, 5 M
6 M
P2
Partition
B
Algorithme
d'allocation
des tâches
FCFS
SPN
PRIORITÉ
0
P2
base
CPU
Un registre de limite (taille)
12 M, 8 M
12 M
PARTITIONS VARIABLES ou dynamiques
Une seule file
4-15
Le nombre et la taille des partitions sont variables
Noyau
2 M
0
NOYAU
6 M
0
1 M, 7 M, 3 M, 2 M, 5 M
P1
12 M
P1
0
P2
P2
Problèmes de
- sélection de la grandeur des partitions
- fragmentation interne
Problèmes de
- fragmentation externe
- maintenir une liste des espaces disponibles ( trous )
4-16
Algorithme FIRST-FIT
0
Choisi le PREMIER espace libre
pouvant contenir le processus
à partir du DÉBUT de la
liste des espaces libres
a
Système
( noyau)
16 M libre
b
utilisé
c
FCFS
demandes
13 M
5M
14 M
14 M libre
Liste des espaces libres
d
adresse
de début
taille
e
f
a
c
e
g
16 M
14 M
5M
30 M
utilisé
5 M libre
utilisé
g
30 M libre
Nous utilisons
? autres critères
- une liste ordonnée selon l'adresse
- reprise de la recherche au début de la liste
Algorithme FIRST-FIT
Algorithme FIRST-FIT
0
Choisi le PREMIER espace libre
pouvant contenir le processus
à partir du DÉBUT de la
liste des espaces libres
Système
( noyau)
13 M
a'
b
3M
0
Choisi le PREMIER espace libre
pouvant contenir le processus
à partir du DÉBUT de la
liste des espaces libres
13 M
a'
b
utilisé
c
FCFS
demandes
5M
14 M
14 M libre
Liste des espaces libres
d
adresse
de début
taille
e
f
a'
c
e
g
3M
14 M
5M
30 M
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche au début de la liste
utilisé
FCFS
demandes
5 M libre
14 M
utilisé
g
30 M libre
Système
( noyau)
Liste des espaces libres
adresse
de début
taille
a'
c'
e
g
3M
9M
5M
30 M
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche au début de la liste
c'
d
3M
utilisé
5M
9 M libre
utilisé
e
f
5 M libre
utilisé
g
30 M libre
Algorithme FIRST-FIT
0
Choisi le PREMIER espace libre
pouvant contenir le processus
à partir du DÉBUT de la
liste des espaces libres
FCFS
demandes
Algorithme NEXT-FIT
Système
( noyau)
13 M
a'
b
Liste des espaces libres
adresse
de début
taille
a'
c'
e
g'
3M
9M
5M
16 M
c'
d
3M
16 M libre
b
utilisé
FCFS
demandes
5 M libre
13 M
utilisé
5M
14 M
14 M
g'
16 M libre
14 M libre
Liste des espaces libres
d
adresse
de début
taille
e
f
a
c
e
g
16 M
14 M
5M
30 M
utilisé
utilisé
g
30 M libre
Algorithme NEXT-FIT
0
a
0
Choisi le PREMIER espace libre
pouvant contenir le processus
SUIVANT la dernière insertion
dans la liste des espaces libres
Système
( noyau)
16 M libre
b
a
16 M libre
utilisé
utilisé
5M
14 M
c
14 M libre
Liste des espaces libres
d
adresse
de début
taille
e
f
a
c
e
g'
16 M
14 M
5M
17 M
FCFS
demandes
utilisé
5 M libre
14 M
utilisé
13 M
g'
17 M libre
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche à la suite de la dernière insertion
14 M libre
Liste des espaces libres
d
adresse
de début
taille
e
f
a
c
e
g''
16 M
14 M
5M
12 M
FCFS
utilisé
13 M
g''
5M
12 M libre
Algorithme NEXT-FIT
0
a'
b
Système
( noyau)
14 M
2M
utilisé
d
adresse
de début
taille
e
f
a'
c
e
g''
2M
14 M
5M
12 M
utilisé
FCFS
demandes
5 M libre
13 M
utilisé
5M
13 M
g''
5M
12 M libre
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche à la suite de la dernière insertion
a
14 M
Système
( noyau)
16 M libre
b
Nouveau départ
14 M libre
Liste des espaces libres
0
Choisi le PREMIER espace libre
pouvant contenir le processus
SUIVANT la dernière insertion
dans la liste des espaces libres
c
demandes
utilisé
5 M libre
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche à la suite de la dernière insertion
Algorithme NEXT-FIT
Choisi le PREMIER espace libre
pouvant contenir le processus
SUIVANT la dernière insertion
dans la liste des espaces libres
Système
( noyau)
b
c
FCFS
5 M libre
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche à la suite de la dernière insertion
Algorithme NEXT-FIT
demandes
Système
( noyau)
c
5M
9 M libre
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche au début de la liste
Choisi le PREMIER espace libre
pouvant contenir le processus
SUIVANT la dernière insertion
dans la liste des espaces libres
a
utilisé
utilisé
e
f
0
Choisi le PREMIER espace libre
pouvant contenir le processus
SUIVANT la dernière insertion
dans la liste des espaces libres
utilisé
c
14 M libre
Liste des espaces libres
d
adresse
de début
taille
e
f
a
c
e
g
16 M
14 M
5M
30 M
utilisé
5 M libre
utilisé
g
30 M libre
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche à la suite de la dernière insertion
Algorithme NEXT-FIT
Algorithme NEXT-FIT
0
Choisi le PREMIER espace libre
pouvant contenir le processus
SUIVANT la dernière insertion
dans la liste des espaces libres
a
0
Choisi le PREMIER espace libre
pouvant contenir le processus
SUIVANT la dernière insertion
dans la liste des espaces libres
Système
( noyau)
16 M libre
b
a
16 M libre
b
utilisé
FCFS
demandes
5M
14 M
Liste des espaces libres
c'
d
adresse
de début
taille
e
f
a
c'
e
g
16 M
1M
5M
30 M
utilisé
13 M
1M
utilisé
FCFS
demandes
5 M libre
14 M
utilisé
g
Liste des espaces libres
adresse
de début
taille
a
c'
g
16 M
2M
30 M
c'
d
13 M
1M
utilisé
5 M5 M
libre
utilisé
g
30 M libre
30 M libre
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche à la suite de la dernière insertion
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche à la suite de la dernière insertion
Algorithme NEXT-FIT
Algorithme BEST-FIT
0
Choisi le PREMIER espace libre
pouvant contenir le processus
SUIVANT la dernière insertion
dans la liste des espaces libres
Système
( noyau)
a
Choisi le PLUS PETIT espace libre
pouvant contenir le processus
dans la liste des espaces libres
Système
( noyau)
16 M libre
0
a
Système
( noyau)
16 M libre
b
b
utilisé
utilisé
c
FCFS
demandes
Liste des espaces libres
adresse
de début
taille
a
c'
g'
16 M
2M
16 M
c'
d
13 M
1M
utilisé
FCFS
demandes
5 M5 M
libre
13 M
utilisé
5M
14 M
14 M
g'
16 M libre
Nous utilisons
- une liste ordonnée selon l'adresse
- reprise de la recherche à la suite de la dernière insertion
Liste des espaces libres
d
adresse
de début
taille
e
f
e
c
a
g
5M
14 M
16 M
30 M
utilisé
utilisé
g
30 M libre
Algorithme BEST-FIT
0
a
Choisi le PLUS PETIT espace libre
pouvant contenir le processus
dans la liste des espaces libres
Système
( noyau)
16 M libre
b
0
a
demandes
5M
14 M
Liste des espaces libres
c'
d
adresse
de début
taille
e
f
c'
e
a
g
1M
5M
16 M
30 M
Nous utilisons une liste ordonnée
selon la taille la plus petite
Système
( noyau)
16 M libre
b
utilisé
FCFS
5 M libre
Nous utilisons une liste ordonnée
selon la taille la plus petite
Algorithme BEST-FIT
Choisi le PLUS PETIT espace libre
pouvant contenir le processus
dans la liste des espaces libres
14 M libre
utilisé
13 M
1M
utilisé
FCFS
demandes
5 M libre
14 M
utilisé
g
Liste des espaces libres
adresse
de début
taille
c'
a
g
1M
16 M
30 M
30 M libre
c'
d
13 M
1M
utilisé
5 M5 M
libre
utilisé
g
30 M libre
Nous utilisons une liste ordonnée
selon la taille la plus petite
Algorithme BEST-FIT
Choisi le PLUS PETIT espace libre
pouvant contenir le processus
dans la liste des espaces libres
Algorithme WORST-FIT
0
Choisi le PLUS GRAND espace libre
pouvant contenir le processus
dans la liste des espaces libres
Système
( noyau)
14 M
a'
b
2M
0
a
Système
( noyau)
16 M libre
b
utilisé
utilisé
c
FCFS
demandes
Liste des espaces libres
adresse
de début
taille
c'
a'
g
1M
2M
30 M
c'
d
13 M
1M
utilisé
FCFS
demandes
5 M5 M
libre
13 M
utilisé
5M
g
14 M
30 M libre
Nous utilisons une liste ordonnée
selon la taille la plus petite
14 M libre
Liste des espaces libres
d
adresse
de début
taille
e
f
g
a
c
e
30 M
16 M
14 M
5M
utilisé
utilisé
g
30 M libre
Nous utilisons une liste ordonnée
selon la taille la plus grande
Algorithme WORST-FIT
Choisi le PLUS GRAND espace libre
pouvant contenir le processus
dans la liste des espaces libres
Algorithme WORST-FIT
0
a
Choisi le PLUS GRAND espace libre
pouvant contenir le processus
dans la liste des espaces libres
Système
( noyau)
16 M libre
b
0
a
16 M libre
utilisé
FCFS
utilisé
5M
14 M
c
14 M libre
Liste des espaces libres
d
adresse
de début
taille
e
f
g'
a
c
e
17 M
16 M
14 M
5M
FCFS
demandes
utilisé
5 M libre
14 M
utilisé
13 M
g'
17 M libre
Nous utilisons une liste ordonnée
selon la taille la plus grande
Choisi le PLUS GRAND espace libre
pouvant contenir le processus
dans la liste des espaces libres
0
a'
b
Système
( noyau)
14 M
2M
utilisé
14 M libre
Liste des espaces libres
d
adresse
de début
taille
e
f
c
g''
e
a'
14 M
12 M
5M
2M
Nous utilisons une liste ordonnée
selon la taille la plus grande
Liste des espaces libres
d
adresse
de début
taille
e
f
a
c
g''
e
16 M
14 M
12 M
5M
utilisé
5 M libre
utilisé
13 M
g''
5M
12 M libre
4-18
c
demandes
14 M libre
Nous utilisons une liste ordonnée
selon la taille la plus grande
Algorithme WORST-FIT
FCFS
Système
( noyau)
b
c
demandes
5 M libre
utilisé
5 M libre
utilisé
13 M
g''
5M
12 M libre
Allocation d'un
espace de 16K
4-18
COMPACTION
4-11
nouveau
travail
ALLOCATION
DU CPU et
Disque
SWAP
IN
GESTION DES
TRAVAUX
SWAP
OUT
stockage sur disque
sur disque
chargement
en mémoire
travaux mémoire
1
600 K
2
1000K
3
300 K
4
700 K
5
500 K
transfert
sur disque
en mémoire
4-20
Exécution de travaux avec allocation mémoire
chargement FCFS
(allocation des travaux)
allocation mémoire
First-Fit
allocation du CPU
Round-Robin
file d'attente des travaux
création
d'un
processus
Efficacité Æ minimiser les déplacements
CPU
temps cpu
10
5
20
8
15
(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
file d'attente CPU
0
10
14
20
fin de 4
28
fin de 3
30
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
E/S
30
38
40
50
53
58
file d'attente E / S
4-20
ALLOCATION DE TRAVAUX
Recouvrement (Overlay)
segmentation manuelle
Allocation de la mémoire
+ chargement FCFS
temps 0
0
+ allocation de la mémoire
avec First-Fit
A
25
+ allocation du CPU avec
40
50
Round-Robin (Q=1)
1
CPU
1 ut
2 ut
1 ut
2 ut
1 ut
3
0
C
D
20
35
40
50
B
travail mémoire
A
40 K
B
50 K
C
20 K
D
15 K
E
60 K
2
0
4
0
C
D
20
35
40
50
B
5
0
20
20
D
35
40
50
B
35
40
50
B
20
D
75
75
75
75
90
90
90
90
90
100
100
100
100
100
7
0
D
35
0
25
Arbre d'appels
de procédures
25
35
50
50
B
75
6
0
50
E
E
75
75
75
95
100
95
100
100
Allocation du CPU
termine
A
termine
B
C
termine
D
B
termine termine
D
E
temps 0
1
2
3
4
5
6
A
B
B
C
D
C
D
B
D
B
B
D
D
E
E
7
4-21
4-23
PAGINATION
Recouvrement (Overlay)
Fichier de recouvrement
mémoire
physique
adresse logique
p
page
d
0
mémoire
déplacement
1
0
2
1
3
2
4
déplacement = adresse modulo
no de page
ALLOCATION NON CONTIGÜE DES PAGES
1
P2 - 1
Division de l'espace en pages
déplacement
P1 - 0
p
0
P2 - 0
2
P2 - 2
Table des pages
déplacement
0
1
p
2
d
p
# page
logique
p+b
b
b+1
b+2
d
# page
logique
+
b
0000
p+b
d
# page
physique
Pagination
0
b
ESPACE
PHYSIQUE
ESPACE
LOGIQUE
P2
1
taille des pages
taille des pages
4-25
P1
P1 - 1
adresse /
4-24
mémoire physique
0
=
0
1
1
0000
d
# page
physique
2
0
page 0
3
1
page 1
4
2
page 2
5
déplacement
p
d
p
# page
logique
page 2
2
f
4
3
1
d
# page
physique
3
page 1
4
page 0
5
4-27
4-28
Table des pages
Æregistres
PDP11 – 8regu8K
Utilisation
d'un TLB
pour la
traduction
d'adresse
Æ mémoire
base register
2 accès mémoire
Æ registre associatif
4-25
4-27
TEMPS D'ACCÈS EFFECTIF À LA MÉMOIRE
4-29
Temps effectif = temps moyen
Faire la somme pondérée des différents cas possibles
Temps effectif =
Temps effectif =
Mémoire associative
Accès direct
prob
temps
prob
temps
80%
T1
80%
T1
20%
Temps effectif
50%
T2
10%
T2
50%
T3
10%
T3
=
6 Temps( cas k) u Prob( cas k)
=
0.8 u T1 + 0.2 u ( 0.5 u T2 + 0.5 u T3 )
=
0.8 u T1 + 0.1 u T2 + 0.1 u T3
6 Temps( cas k) u Prob( cas k)
Temps( cas 1) u Prob( cas 1)
+ Temps( cas 2) u Prob( cas 2)
+ Temps( cas 3) u Prob( cas 3)
prob
temps
prob
temps
80%
T1
80%
T1
50%
T2
10%
T2
50%
T3
10%
T3
20%
TEMPS D'ACCÈS EFFECTIF À LA MÉMOIRE
accès mémoire
= 100 nanosecondes
vérification dans le TLB
= 20 nanosecondes
(Translation Look-aside Buffers)
__________________________
Taux de réussite du TLB = 80 %
temps d'accès effectif =
(hit ratio)
0.8 x (20 ns + 100 ns )
+ 0.2 x (20 ns + 100 ns + 100 ns)
= 140 ns
accroissement de 40%
4-30
TEMPS D'ACCÈS EFFECTIF À LA MÉMOIRE
Une table
des pages
par
processus
accès mémoire
= 100 nanosecondes
vérification dans le TLB
= 20 nanosecondes
(Translation Look-aside Buffers)
__________________________
Taux de réussite du TLB = 98 %
read only /
read write
Processus P1
0 Code A
2 Code C
3
Data 1
3
4
4
Data 2
6
10
1
2
5
ro v
ro v
ro v
1 Code C
rw v
rw v
3
Table des pages
4
Code E
5
Data 2
2
(hit ratio)
0 Code D
1
7
4
10
9
0
1
Code E
2
3
4
2 Code B
3
Data 1
6 Code A
Processus P2
0.98 x (20 ns + 100 ns )
+ 0.02 x (20 ns + 100 ns + 100 ns)
= 122 ns
accroissement de 22%
Mémoire
0
0
1
2
1 Code B
temps d'accès effectif =
4-31
valide /
invalide
Data 3
7 Code D
ro v
ro v
8
ro v
rw v
i
9
Data 3
10 Code B
Table des pages
11
12
4-27
Une table des pages par processus
Protection Æ gestion de la table des pages
partage des pages entre processus
droits 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-32
Table des pages à plusieurs niveaux
TABLE INVERSÉE DES PAGES
Mémoire
0
# page logique
Processus P1
1 Code C
2
0 Code A
déplacement
1 Code B
2 Code C
31
22 21
12 11
0
3
index dans la
table de haut
niveau
index dans la
table de bas
niveau
déplacement
dans la page
P1
p
d
f
Data 1
Data 2
P1
P1
2
3
0
1
2
3
Processus P2
P2
P1
P1
P2
1
4
0
0
4
5
6
7
P2
P1
P2
3
1
2
8
9
10
11
4
0 Code D
1
Code E
2
Code F
3
Data 3
?
Data 1
3
12
Table inversée
des pages
d
4
Code E
5
Data 2
6 Code A
7 Code D
8
9
Data 3
10 Code B
11
12
Code F
4-33
FONCTION DE HASHING POUR TABLE INVERSÉE
# page logique
200 1
4-35
SEGMENTATION
# page physique
9
# de groupe
mémoire physique
P1
Table inversée
des pages
groupe A
début de
liste
101
9
2
P2 - S 1
S1
P1 - S 0
3
4
401
0
P2
5
S0
6
7
8
groupe B
2001
5
P1 - S 1
S0
0
1
2
9
10
11
P2 - S 0
S1
9
P2 - S 2
S2
12
groupe C
4-35
SEGMENTATION
Similarités avec
“ code
“ données
espace logique
Segment
Æ
-- programme
-- variables
-- pile (stack)
“ partitions de taille variable Æ groupe
“ pagination
Æ pages de taille variable
module ou objet
Modifier le matériel pour le faire correspondre à
l'image (logique) de l'usager.
Fragmentation externe Æ comme partitions variables
Adresse Æ < # segment >, < déplacement >
mov
31 <8 bits> 24 23
Souplesse Æ possibilité de liens dynamiques
Protection et partage simplifiées
A, B
<24 bits>
0
31 <8 bits> 24 23
<24 bits>
s
d
s
d
# seg.
déplacement
# seg.
déplacement
TRANSLATION D'ADRESSE
Compilation
Source
0
A
Var
A
B
Module Objet
B
Prog
MOV B, A
test
JSB L1
Prog
A = B
if( ....)
then
TABLE DES SEGMENTS
Un segment
Æ partition variable
L1
ÉDITEUR DE LIENS
Objet A
0
Code exécutable
Objet A
Objet B
Objet B
CHARGEMENT EN MÉMOIRE
Prog.
0
Mémoire
Plusieurs segments
0
4-37
4-37
4-37
Un programme
est composé
de plusieurs
segments
4-37
Partage de
segments
4-38
Stall. 351
4-39
4-40
PC/RT (IBM 6150)
Systèmes segmentés et paginés
Passage d'une adresse logique 32 bits à une
adresse virtuelle étendu sur 40 bits du PC/RT
PC/RT et Pentium
4-40
Système de pagination inversé du PC/RT
TABLE INVERSÉE DES PAGES
Mémoire
4-33
0
# page logique
Processus P1
1 Code C
0 Code A
2
déplacement
1 Code B
2 Code C
P1
p
d
f
3
Data 1
4
Data 2
P1
P1
2
3
0
1
2
3
Processus P2
P2
P1
P1
P2
1
4
0
0
4
5
6
7
P2
P1
P2
3
1
2
8
9
10
11
0 Code D
1
Code E
2
Code F
3
Data 3
?
Data 1
3
d
4
Code E
5
Data 2
6 Code A
7 Code D
8
9
Data 3
10 Code B
11
Code F
12
12
Table inversée
des pages
4-41
FONCTION DE HASHING POUR TABLE INVERSÉE
# page logique
200 1
# page physique
9
PENTIUM
# de groupe
Table inversée
des pages
groupe A
début de
liste
101
9
2
Tables de
descripteurs de
segments
3
4
401
0
5
6
7
8
groupe B
2001
5
9
10
11
12
groupe C
Registres sélecteurs
0
1
2
9
4-42
4-42
PENTIUM
Registres sélecteurs
Tables de
descripteurs de
segments
Pagination à 2 niveaux du Pentium