Académique Documents
Professionnel Documents
Culture Documents
RAM
• Sur le disque dur ?
rapide
• Peut-on les exécuter s’ils sont sur le disque
dur?
• Non, le disque dur est un périphérique de Micro-processeur
stockage lent
lent…
• Donc, il nous faut les transférer dans la
mémoire principale (RAM)
Disque dur
Programme 3
2
Allocation mémoire
• Objectif principal:
• partager la mémoire RAM entre les divers programmes
• Objectifs secondaires:
• Utilisation simple pour un programme
3
Allocation mémoire: 2 stratégies
4
Allocation mémoire contigüe
5
Allocation mémoire contigüe
6
Allocation mémoire contigüe, taille fixe
Taille totale: 6Mo
1Mo
1Mo
1Mo
7
Allocation mémoire contigüe, taille fixe
Taille totale: 6Mo
1Mo
P1: 512Ko
1Mo
1Mo
1Mo
1Mo
1Mo
8
Allocation mémoire contigüe, taille fixe
Taille totale: 6Mo
P1: 512Ko
1Mo
1Mo
P2: 768Ko
1Mo
1Mo
1Mo
1Mo
9
Allocation mémoire contigüe, taille fixe
Taille totale: 6Mo
P1: 512Ko
1Mo
P2:1Mo
768Ko
1Mo
P3: 1Mo
1Mo
1Mo
1Mo
10
Allocation mémoire contigüe, taille fixe
Taille totale: 6Mo
P1: 512Ko
1Mo
P2:1Mo
768Ko
P3:
1Mo1Mo
1Mo
1Mo
P4: 1.5Mo Ne peut être admis en mémoire!
1Mo
11
Allocation mémoire contigüe, taille fixe
Taille totale: 6Mo
1Mo
1Mo
12
Fragmentation
Taille totale: 6Mo
• Il en existe 2 types: P1: 512Ko
1Mo
Fragmentation interne
• Fragmentation interne: espace perdu
à l’intérieur une partition P2:1Mo
768Ko
13
Allocation mémoire contigüe
14
Allocation mémoire contigüe, taille variable
Taille totale: 6Mo
15
Allocation mémoire contigüe, taille variable
Taille totale: 6Mo
P1: 512Ko
16
Allocation mémoire contigüe, taille variable
Taille totale: 6Mo
P1: 512Ko
P2: 768Ko
17
Allocation mémoire contigüe, taille variable
Taille totale: 6Mo
P1: 512Ko
P2: 768Ko
P3: 1Mo
18
Allocation mémoire contigüe, taille variable
Taille totale: 6Mo
P1: 512Ko
P2: 768Ko
P3: 1Mo
P4: 1.5Mo
19
Allocation mémoire contigüe, taille variable
Taille totale: 6Mo
P1: 512Ko
P2: 768Ko
P3: 1Mo
20
Allocation mémoire contigüe, taille variable
Taille totale: 6Mo
P1: 512Ko
768Ko
P3: 1Mo
2.25Mo
21
Allocation mémoire contigüe, taille variable
Taille totale: 6Mo
P1: 512Ko
768Ko
P3: 1Mo
• Quels sont les problèmes avec
l’allocation contigüe avec
partitions de taille variable? P4: 1.5Mo
22
Fragmentation
Taille totale: 6Mo
• Il en existe 2 types: P1: 512Ko
23
Algorithmes d’allocation de mémoire
• Il existe plusieurs algorithmes afin de déterminer l’emplacement d’un
processus en mémoire. Le but de tous ces algorithmes est de
maximiser l’espace mémoire occupé.
• Première allocation (First Fit): Le processus est mis dans le premier bloc de
mémoire suffisamment grand à partir du début de la mémoire.
• Souvent utilisé malgré sa simplicité apparente!
• Prochaine allocation (Next Fit): Le processus est mis dans le premier bloc
de mémoire suffisamment grand à partir du dernier bloc alloué.
• Crée souvent un peu plus de fragmentation que « First Fit »
• Pire allocation (Worse Fit): Le processus est mis dans le bloc de mémoire le
plus grand.
24
Exercice mémoire contigüe
• Effectuez les étapes suivantes pour un système ayant
une mémoire de 16Mo:
• Les processus suivants sont alloués en mémoire (dans l’ordre)
• P1, 3Mo
• P2, 5Mo
• P3, 2Mo
• P4, 2Mo
• P1 et P3 se terminent
25
Exercice mémoire contigüe
0
• Effectuez les étapes suivantes pour un système ayant
une mémoire de 16Mo: 1
2
• Les processus suivants sont alloués en mémoire (dans l’ordre)
3
• P1, 3Mo
4
• P2, 5Mo
5
• P3, 2Mo
6
• P4, 2Mo
7
• P1 et P3 se terminent
8
12
13
14
15
26
Exercice mémoire contigüe
0
• Effectuez les étapes suivantes pour un système ayant
une mémoire de 16Mo: 1
2
P1 (3Mo)
• Les processus suivants sont alloués en mémoire (dans l’ordre)
3
• P1, 3Mo
4
• P2, 5Mo
5
• P3, 2Mo
6
P2 (5Mo)
• P4, 2Mo
7
• P1 et P3 se terminent
8
13
14
15
27
Exercice mémoire contigüe
0
• Effectuez les étapes suivantes pour un système ayant
une mémoire de 16Mo: 1
2
• Les processus suivants sont alloués en mémoire (dans l’ordre)
3
• P1, 3Mo
4
• P2, 5Mo
5
• P3, 2Mo
6
P2 (5Mo)
• P4, 2Mo
7
• P1 et P3 se terminent
8
13
14
15
28
Exercice mémoire contigüe
Première allocation
0
• Effectuez les étapes suivantes pour un système ayant
une mémoire de 16Mo: 1 P5 (2Mo)
2
• Les processus suivants sont alloués en mémoire (dans l’ordre)
3
• P1, 3Mo
4
• P2, 5Mo
5
• P3, 2Mo
6
P2 (5Mo)
• P4, 2Mo
7
• P1 et P3 se terminent
8
13
14
15
29
Exercice mémoire contigüe
Prochaine allocation
0
• Effectuez les étapes suivantes pour un système ayant
une mémoire de 16Mo: 1
2
• Les processus suivants sont alloués en mémoire (dans l’ordre)
3
• P1, 3Mo
4
• P2, 5Mo
5
• P3, 2Mo
6
P2 (5Mo)
• P4, 2Mo
7
• P1 et P3 se terminent
8
13 P5 (2Mo)
14
15
30
Exercice mémoire contigüe
Meilleure allocation
0
• Effectuez les étapes suivantes pour un système ayant
une mémoire de 16Mo: 1
2
• Les processus suivants sont alloués en mémoire (dans l’ordre)
3
• P1, 3Mo
4
• P2, 5Mo
5
• P3, 2Mo
6
P2 (5Mo)
• P4, 2Mo
7
• P1 et P3 se terminent
8
13
14
15
31
Exercice mémoire contigüe
Pire allocation
0
• Effectuez les étapes suivantes pour un système ayant
une mémoire de 16Mo: 1
2
• Les processus suivants sont alloués en mémoire (dans l’ordre)
3
• P1, 3Mo
4
• P2, 5Mo
5
• P3, 2Mo
6
P2 (5Mo)
• P4, 2Mo
7
• P1 et P3 se terminent
8
13 P5 (2Mo)
14
15
32
Exercice mémoire contigüe
• Un système possédant une mémoire de 16Mo doit
allouer les processus suivants:
Processus Taille Temps de création Durée
P1 3Mo 0 3
P2 2Mo 1 3
P3 4Mo 2 3
P4 2Mo 3 3
P5 3Mo 4 3
33
Exercice mémoire contigüe
Processus Taille Temps de création Durée
0
P1 3Mo 0 3 1
P2 2Mo 1 3
2
P3 4Mo 2 3
P4 2Mo 3 3 3
P5 3Mo 4 3 4
6
Temps: 7
8
Processus
9
10
11
12
13
14
15
34
Exercice mémoire contigüe
Processus Taille Temps de création Durée
0
P1 3Mo 0 3 1
P2 2Mo 1 3
2
P1 (3Mo)
P3 4Mo 2 3
P4 2Mo 3 3 3
P5 3Mo 4 3 4
6
Temps: 0 7
8
Processus
9
10
P1: 3
11
12
13
14
15
35
Exercice mémoire contigüe
Processus Taille Temps de création Durée
0
P1 3Mo 0 3 1
P2 2Mo 1 3
2
P1 (3Mo)
P3 4Mo 2 3
P4 2Mo 3 3 3
P5 3Mo 4 3 4 P2 (2Mo)
5
6
Temps: 1 7
8
Processus
9
10
P1: 2
11
P2: 3 12
13
14
15
36
Exercice mémoire contigüe
Processus Taille Temps de création Durée
0
P1 3Mo 0 3 1
P2 2Mo 1 3
2
P1 (3Mo)
P3 4Mo 2 3
P4 2Mo 3 3 3
P5 3Mo 4 3 4 P2 (2Mo)
5
6
Temps: 2 7 P3 (4Mo)
8
Processus
9
10
P1: 1
11
P2: 2 12
P3: 3 13
14
15
37
Exercice mémoire contigüe
Processus Taille Temps de création Durée
0
P1 3Mo 0 3 1
P2 2Mo 1 3
2
P3 4Mo 2 3
P4 2Mo 3 3 3
P5 3Mo 4 3 4 P2 (2Mo)
5
6
Temps: 3 7 P3 (4Mo)
8
Processus
9
10
P1: 0
11
P2: 1 12
P3: 2 13
14
15
38
Exercice mémoire contigüe
Processus Taille Temps de création Durée
0
P1 3Mo 0 3 1 P4 (2Mo)
P2 2Mo 1 3
2
P3 4Mo 2 3
P4 2Mo 3 3 3
P5 3Mo 4 3 4 P2 (2Mo)
5
6
Temps: 3 7 P3 (4Mo)
8
Processus
9
10
P1: 0
11
P2: 1 12
P3: 2 13
14
P4: 3
15
39
Exercice mémoire contigüe
Processus Taille Temps de création Durée
0
P1 3Mo 0 3 1 P4 (2Mo)
P2 2Mo 1 3
2
P3 4Mo 2 3
P4 2Mo 3 3 3
P5 3Mo 4 3 4
6
Temps: 4 7 P3 (4Mo)
8
Processus
9
10
P1: 0
11
P2: 0 12
P3: 1 13
14
P4: 2
15
40
Exercice mémoire contigüe
Processus Taille Temps de création Durée
0
P1 3Mo 0 3 1 P4 (2Mo)
P2 2Mo 1 3
2
P3 4Mo 2 3
P4 2Mo 3 3 3
P5 3Mo 4 3 4
P5 (3Mo)
5
6
Temps: 4 7 P3 (4Mo)
8
Processus
9
10
P1: 0
11
P2: 0 12
P3: 1 13
14
P4: 2
15
P5: 3
41
Allocation contigüe, taille variable
Taille totale: 6Mo
• Quels sont les problèmes avec P1: 512Ko
l’allocation contigüe avec partitions
de taille variable? 768Ko
42
Adresses virtuelles et adresses physiques
• Est-ce qu’un processus doit absolument savoir à
quel endroit il est placé en mémoire?
P1: 512Ko
1Mo 1Mo
ou
1Mo 1Mo
1Mo 1Mo
43
Adresses virtuelles et adresses physiques
• Aucune différence!
P1: 512Ko
1Mo 1Mo
ou
1Mo 1Mo
1Mo 1Mo
44
Adresses virtuelles et adresses physiques
1Mo
0x00000
0x100000
P1: 512Ko
0x17FFFF 1Mo
P1: 512Ko
0x200000
1Mo
0x7FFFF 0x300000
1Mo
45
Adresses virtuelles et adresses physiques
46
Allocation contigüe (partitions fixes): MMU
• En allocation contigüe avec partitions de taille fixe, le MMU effectue le calcul
suivant pour traduire une adresse virtuelle en adresse physique:
0x100000
P1: 512Ko
P1: 512Ko 0x17FFFF 1Mo
0x200000
0x7FFFF 1Mo
47
Allocation contigüe (partitions variables): MMU
• En allocation contigüe avec partitions de taille variable, le MMU effectue le
calcul suivant pour traduire une adresse virtuelle en adresse physique:
0x100000
P1: 512Ko
P1: 512Ko 0x17FFFF
0x7FFFF
48
Allocation contigüe (partitions variables): MMU
• En allocation contigüe avec partitions de taille variable, le MMU effectue le
calcul suivant pour traduire une adresse virtuelle en adresse physique:
0x100000
P1: 512Ko
P1: 512Ko 0x17FFFF
0x7FFFF
49
Exercice mémoire virtuelle
• Dans un système en allocation contigüe avec
partitions à taille variable, un processus P1 occupe
les adresses en mémoire physique 0x2000 à
0x4FFF.
• Aux «yeux» de P1, quelle est sa plage d’adresses
(virtuelles) disponible?
Rappel
aphysique = avirtuelle + apartition
50
Exercice mémoire virtuelle
• Dans un système en allocation contigüe avec
partitions à taille variable, un processus P1 occupe
les adresses en mémoire physique 0x2000 à
0x4FFF.
• Aux «yeux» de P1, quelle est sa plage d’adresses
(virtuelles) disponible?
• 0x0000 à 0x2FFF
Rappel
aphysique = avirtuelle + apartition
51
Exercice mémoire virtuelle
• Dans un système en allocation contigüe avec
partitions à taille variable, un processus P1 occupe
les adresses en mémoire physique 0x2000 à
0x4FFF.
• Quelle est la taille totale de mémoire virtuelle disponible
pour ce processus?
Rappel
aphysique = avirtuelle + apartition
52
Exercice mémoire virtuelle
• Dans un système en allocation contigüe avec
partitions à taille variable, un processus P1 occupe
les adresses en mémoire physique 0x2000 à
0x4FFF.
• Quelle est la taille totale de mémoire virtuelle disponible
pour ce processus?
• 12Ko
Rappel
aphysique = avirtuelle + apartition
53
Exercice mémoire virtuelle
• Dans un système en allocation contigüe avec
partitions à taille variable, un processus P1 occupe
les adresses en mémoire physique 0x2000 à
0x4FFF.
• Quelle est l’adresse physique correspondant aux
adresses virtuelles:
• 0x0010?
• 0x1234?
Rappel
aphysique = avirtuelle + apartition
54
Exercice mémoire virtuelle
• Dans un système en allocation contigüe avec
partitions à taille variable, un processus P1 occupe
les adresses en mémoire physique 0x2000 à
0x4FFF.
• Quelle est l’adresse physique correspondant aux
adresses virtuelles:
• 0x0010? — 0x2010
• 0x1234? — 0x3234
Rappel
aphysique = avirtuelle + apartition
55
Récapitulation: allocation contigüe
1. Un nouveau programme est copié dans un emplacement
disponible en mémoire, dans un bloc de mémoire contigu.
56