Professional Documents
Culture Documents
SITE : http://www.sir.blois.univ-tours.fr/mirian/
La mmoire est une ressource importante qui doit tre gre avec attention.
Mme si la quantit de mmoire dun ordinateur a beaucoup augmente, la taille
des programmes saccrot aussi.
La situation idale serait de donner chaque programmeur une mmoire
infiniment grande, infiniment rapide, non volatile et, de plus, bon march. La
technologie ne fournit pas de telles mmoires.
Hirarchisation de la mmoire: les ordinateurs ont une petite quantit de
mmoire trs rapide, chre et volatile (mmoire RAM) et beaucoup de gigabytes
de mmoire plus lente, bon march et non volatile.
Le SE a le rle de coordonner lutilisation des diffrentes mmoires.
CPU
Memory Disk
management Memory controller
unit
Bus
Multiple
input queues
800K
Partition 4 Partition 4
700K
400K
Partition 2 Partition 2
200K
Partition 1 Partition 1
100K
Operating Operating
system system
0
(a) (b)
Inconvnient des diffrentes files: la file pour une grande partition est vide
tandis que celle pour une petite partition est pleine. Avec une seule file, cela peut
tre rsolu.
Comme il nest pas judicieux dattribuer une grande partition un petit travail,
autres stratgies existent:
Parcourir la file dattente pour chercher le plus gros travail qui peut tre
plac dans la partition. Cet algorithme pnalise les petits travaux.
Solutions:
Conserver au moins une petite partition afin que les petits travaux
puissent sexcuter sans quune grande partition leur soit affect.
Un travail ligible ne peut pas tre ignor plus de k fois.
Les SE dont les partitions de taille fixe sont mises en place manuellement
et restent inchanges par la suite a t utilis par le OS/360 de l IBM
(mainframes).
????
?????
?????
Time
?
C C C C C
? B B B B
A
A A A
D D D
?
Operating
system
(a)
Operating
system
(b)
Operating
system
(c)
Operating
system
(d)
Operating
system
(e)
Operating
system
(f)
Operating
system
(g)
Diffrence principale par rapport aux partitions fixes: leur nombre, leur
localisation et leur taille varient dynamiquement au gr des allers retour
des processus.
La flexibilit ne dpend pas dun nombre fixe de partitions qui pourra tre
trop grand ou trop petit suivant lutilisation de la mmoire.
La libration et allocation de mmoire est plus complique.
B-Stack
Room for growth
Room for growth
B-Data
???
?
B Actually in use
B-Program
A-Stack
?
?
Room for growth
Room for growth
A-Data
A Actually in use
A-Program
Operating Operating
system system
(a) (b)
Bit maps
???
???
A B C D E
8 16 24
?
?
(a)
11111000 P 0 5 H 5 3 P 8 6 P 14 4
11111111
11001111
H 18 2 P 20 6 P 26 3 H 29 3 X
11111000
Avantage du bit map: Moyen simple de garder une trace des mots mmoire dans une
quantit fixe de mmoire
???
???
A B C D E
8 16 24
?
?
(a)
11111000 P 0 5 H 5 3 P 8 6 P 14 4
11111111
11001111
H 18 2 P 20 6 P 26 3 H 29 3 X
11111000
Si la liste des segments est trie par adresse, la mise jour est directe.
???
???
Before X terminates After X terminates
(a) A X B becomes A B
(b) A X becomes A
?
(c) X B becomes B
(d) X becomes
Quand es processus et les trous sont indiqus dans une liste trie par adresse,
plusieurs algorithmes peuvent tre utiliss:
1. First-fit: Alloue le premier trou suffisamment grand. Le trou est ensuite divis en
deux parties, lune destine au processus et lautre la mmoire non utilise,
sauf si le processus et le trou ont la mme taille.
2. Next-fit: Variation de First-fit. Dbute la recherche de espace libre dans la liste
partir de lendroit o il sest arrt la fois prcdente.
3. Best-fit: Alloue le trou le plus petit suffisamment grand. Plutt que de casser un
trou, il essaye de trouver un tour qui correspond la taille demande.
Il est ncessaire de parcourir la liste entire moins que la liste ne soit trie par
taille.
Cette stratgie fait rester le trou le plus petit.
4. Worst-fit: Alloue le trou le plus grand (parcours de toute la liste).
Best-fit est plus lent que First-fit et il perd plus de place mmoire que First-fit et
Next-fit: il tend remplir la mmoire avec des minuscules trous inutiles.
La rapidit de algorithmes peut tre amliore si lon tablit des listes spares
pour les processus et les trous.
Contrepartie: complexit plus grande et ralentissement quand la mmoire est
libre: un segment qui est libr doit tre effac de la liste des processus et
insr dans la liste des trous.
Liste des trous doit tre trie par taille afin daugmenter la rapidit de lalgorithme
du Best-fit.
Dans le cas dune liste de trous trie par taille, le Best-fit et le First-fit sont aussi
rapides lun que lautre et le Next-fit est inutile.
Implantation
Pagination la demande
Segmentation la demande
Adresses virtuelles: Un ordinateur peut produire des adresses sur 16 bits avec
des valeurs entre 0 et 64 KBytes.
Lordinateur a seulement 32 KBytes de mmoire physique.
La taille de page et de cadre est de 4 KBytes.
Nous avons donc 16 pages virtuelles et 8 cadres de pages.
Virtual
address
space
60K-64K X
56K-60K X Virtual page
52K-56K X
48K-52K X
44K-48K 7
40K-44K X
Physical
36K-40K 5 memory
32K-36K X address
28K-32K X 28K-32K
24K-28K X 24K-28K
20K-24K 3 20K-24K
16K-20K 4 16K-20K
12K-16K 0 12K-16K
8K-12K 6 8K-12K
4K-8K 1 4K-8K
0K-4K 2 0K-4K
Page frame
Syst`emes dexploitation - Mrian Halfeld-Ferrari p.29/71
Pagination la demande
Que se passe-t-il si le programme essaye par exemple de faire appel une page non
prsente, avec linstruction
MOV REG, 32780
qui correspond loctet 12 de la page virtuelle 8 (qui commence 32768)?
La MMU remarque que la page est absente et fait une droutement de page.
SE dcide de dplacer le cadre de page 1, il doit charger la page virtuelle 8
ladresse physique 4K et faire deux changements de correspondance dans la
MMU.
1. Marquer lentre de la page virtuelle 1 comme non utilise.
2. Changer le bit prsence/absence de la page 8.
3. Quand linstruction droute sera r-excute, il mettra ladresse virtuelle
32780 en correspondance avec ladresse 4108.
Virtual
address
space
60K-64K X
56K-60K X Virtual page
52K-56K X
48K-52K X
44K-48K 7
40K-44K X
Physical
36K-40K 5 memory
32K-36K X address
28K-32K X 28K-32K
24K-28K X 24K-28K
20K-24K 3 20K-24K
16K-20K 4 16K-20K
12K-16K 0 12K-16K
8K-12K 6 8K-12K
4K-8K 1 4K-8K
0K-4K 2 0K-4K
Page frame
Syst`emes dexploitation - Mrian Halfeld-Ferrari p.33/71
Exemple: adresse virtuelle
Outgoing
1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 physical
address
(24580)
15 000 0
14 000 0
13 000 0
12 000 0
11 111 1
10 000 0
9 101 1
12-bit offset
Page 8 000 0
copied directly
table 7 000 0 from input
6 000 0 to output
5 011 1
4 100 1
3 000 1
2 110 1 110
1 001 1
Present/
0 010 1
absent bit
Virtual page = 2 is used
as an index into the
page table Incoming
virtual
address
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
Syst`e(8196)
mes dexploitation - Mrian Halfeld-Ferrari p.34/71
Adresse virtuelle
Solution standard
Utiliser les registres associatifs (ou translation look aside buffers: TLB): petite
mmoire cache matrielle spciale la consultation rapide.
Contiennent seulement quelques entres de la table
Recherche en parallle
Page number Frame number
Second-level
page tables
Page
table for
the top
4M of
memory
Top-level
page table
1023
6
Bits 10 10 12
5
PT1 PT2 Offset 4
3
(a) 2
1
0
1023
6
5
4
3 To
pages
2
1
0
Caching
disabled Modified Present/absent
?? Referenced Protection
Champ le plus important est le numro de cadre de page (le but est de le
trouver).
Bit de prsence/absence: quand il est 0 la page virtuelle laquelle lentre
appartient nest pas en mmoire.
Bits de protection prcisent quelle sorte daccs sont permis. Dans sa forme la
plus simple ce champ contient un seul bit (valeur 0 pour lecture/criture et 1 pour
lecture seulement). Un schma plus sophistiqu propose 3 bits (un pour la
lecture, un pour lcriture et un pour lexcution).
Traditional page
table with an entry
for each of the 252
pages
52
2 -1
256-MB physical
memory has 216
4-KB page frames Hash table
16
2 -1 216 -1
0 0 0
Indexed Indexed
by virtual by hash on Virtual Page
page virtual page page frame
Allocation quitable
m cadres
n processus
m/n cadres pour chaque processus
Allocation proportionnelle
Allocation prioritaire
Utiliser un schma dallocation proportionnelle o la quantit de cadres dpend non de
la taille des processus mais de leurs priorits.
Syst`emes dexploitation - Mrian Halfeld-Ferrari p.54/71
Allocation globale et allocation locale
Age
A0 10 A0 A0
A1 7 A1 A1
A2 5 A2 A2
A3 4 A3 A3
A4 6 A4 A4
A5 3 A6 A5
B0 9 B0 B0
B1 4 B1 B1
B2 6 B2 B2
B3 2 B3 A6
B4 5 B4 B4
B5 6 B5 B5
B6 12 B6 B6
C1 3 C1 C1
C2 5 C2 C2
C3 6 C3 C3
(a) (b) (c)
Page faults/sec
A
Pr-pagination
Taille de la page
Structure des programmes
Verrouillage des E/S
20K
16K 16K
Constants
0K 0K 0K 0K 0K
Segment Segment Segment Segment Segment
0 1 2 3 4
????
????
??
(3K) (3K)
Segment 4 Segment 4
(7K) (7K) Segment 5 Segment 5 (10K)
(4K) (4K)
(4K)
Segment 3 Segment 3 Segment 3
Segment 5
(8K) (8K) (8K) Segment 6 (4K)
(4K)
Segment 6
Segment 2 Segment 2 Segment 2 Segment 2 (4K)
? (5K)
Segment 1
(8K)
Segment 0
(4K)
(5K)
(3K)
Segment 7
(5K)
Segment 0
(4K)
(5K)
(3K)
Segment 7
(5K)
Segment 0
(4K)
(5K)
(3K)
Segment 7
(5K)
Segment 0
(4K)
Segment 2
(5K)
Segment 7
(5K)
Segment 0
(4K)
(a) (b) (c) (d) (e)
Protection
Partage
Les segments sont partags quand les entres dans les tables de segments de 2
processus diffrents pointent vers les mmes emplacement
Chaque processus possde une table de segments
Microprocesseurs:
1. Ligne Motorola: 68000
2. Intel 80X86
Modle de mmoire fusionn (mlange de pagination et segmentation)
Cette combinaison est mieux illustre par 2 architectures diffrentes
1. MULTICS
2. OS/2 (version 32 bits)