Académique Documents
Professionnel Documents
Culture Documents
!
!! Cours conu partir de!
"! Cours de E. Berthelot! #! http://www.iie.cnam.fr/%~EBerthelot/! "! Cours de A. Sylberschatz!
#!
www.sciences.univ-nantes.fr/info/perso/permanents/ attiogbe/SYSTEME/CoursSysteme.html!
"! Cours de A. Griffaut! #! http://dept-info.labri.fr/~griffault/Enseignement/SE/ Cours! "! Cours de H. Bouzour, D. Donsez! #! http://www-adele.imag.fr/~donsez/cours/#se! !
! !
F. Boyer, UJF!
1!
Problmatique!
!
!! La mmoire centrale est une ressource requise par
tout processus!
!
"! Un programme doit tre charg dans la mmoire centrale pour tre excut! Demarrer_processus(p) ! Allouer(taille(p))! Terminer_processus(p) ! Liberer(zone_alloue_ (p))! "! Un processus a gnralement besoin de mmoire dynamique! !
!! Problmatique!
"! Grer le partage de la mmoire centrale entre diffrents processus! "! Grer lallocation dynamique de mmoire!
!
F. Boyer, UJF!
! !
2!
Hirarchies de mmoire !
!! Registres! !! Caches!
"! L1 on chip (Ko)! "! L2 en multi-curs (Mo)!
!! Mmoire centrale!
"! Go!
!! Mmoires secondaire!
"! To!
!
F. Boyer, UJF!
3!
Fonctions attendues!
!! Principe de partage de la ressource mmoire!
"! Fournir une mmoire logique chaque processus (2 K)! "! Grer les translations entre les mmoires logiques et la mmoire physique (liaisons d'adresses)!
0! 0!
! ! !
2 K-1!
4!
Fonctions attendues !
!
!! Mmoire physique :!
"! Suite contigu de mots (8, 16, 32, 64 bits selon processeur)! "! Adressage direct alatoire! !
!! Mmoire logique :!
"! Espace logiquement contigu! "! Adressage direct alatoire de mots ! "! Taille maximum = 2 K 1 (k = la capacit dadressage)!
!
F. Boyer, UJF!
5!
Fonctions attendues!
!
!! Mise en uvre des mmoires logiques au dessus de
la mmoire physique!
"! Swapping (partage de la mmoire dans le temps)! "! Dcoupage (partitionnement)! "! Multiplexage! !
!
F. Boyer, UJF!
6!
Fonctions attendues !
!
!! Adresse physique !
"! Index dun mot dans la mmoire physique!
!
!! Adresse logique !
"! Index dun mot dans la mmoire logique!
!
!! Liaison dadresses !
"! Transformation dune adresse logique en une adresse physique!
F. Boyer, UJF!
7!
Liaison d'adresses !
A. Sylberschatz!
F. Boyer, UJF!
8!
Liaison d'adresses !
A. Sylberschatz!
F. Boyer, UJF!
9!
Liaison d'adresses !
!! Machines avec MMU!
"! Dispositif physique rapide!
A. Sylberschatz!
F. Boyer, UJF!
10!
Swapping / Va et vient !
!
!! La mmoire centrale ne peut pas contenir tous les
11!
!! Fonction attendue :!
"! Allouer-zone (t : taille) ! adresse! "! Librer-zone (a : adresse, t : taille)!
!! Objectifs : !
"! Optimiser lutilisation de la mmoire (limiter la fragmentation)! "! Optimiser les algorithmes dallocation / libration!
!! Techniques :!
"! Zones contigus de taille xes ! "! Zones contigus de taille variables! "! Zones non contigus de taille xe (systmes pagins)! "! Zones non contigus de taille variable (systmes segments)! !
F. Boyer, UJF!
12!
P1!
P2!
P3!
suprieure ou gale leur demande !!Choix des tailles des zones : en fonction dobservations
F. Boyer, UJF!
13!
!allocation dune zone de taille la plus proche de t! mise jour de la liste chane!
-!Librer-zone (a : adresse, t : taille) :!
14!
recouvrements)
!! Zones de tailles identiques : !! Fragmentation interne si taille(processus) << taille(zone) !! Gestion de recouvrement si taille(processus) >> taille(zone) !! Zones de tailles diffrentes : !! Fragmentation interne si mauvais dcoupage initial
F. Boyer, UJF!
15!
OS!
P1!
P2!
P3!
P0!
mmoires de tailles gale leur demande ! !! Taille des zones alloues = tailles demandes par les processus! !
! !
F. Boyer, UJF!
16!
-!
Liste chaine (ordonne) des zones libres! -! (+) Pas de mmoire supplmentaire! -! (-) Temps daccs aux blocs libres dune taille # k pour allocation / libration! -! (-) Libration : calcul dadresses pour fusionner! ! Vecteur de bits! -! (+) clatement / fusion automatiques! -! (-) recherche de k bits conscutifs! -! (-) Taille du vecteur peut tre importante!
!
l! l! l! 0! 0! 0! 0! 0! l! l! 0!
!
l!
F. Boyer, UJF!
17!
!! !
Etat courant: P1: 2 blocs, P2: 1 bloc, P3: 3 blocs, P5: 1 bloc!
!!
P1! P1!
P1! P1!
P2!
P3! P3!
P3! P3!
P3! P3!
P5! P5!
P2 libre 1 bloc! !
P4 demande 1 bloc! !
P1!
P1!
P3!
P3!
P3! BF!
P5!
FF/WF!
F. Boyer, UJF!
18!
Fit.!
!! Globalement :!
(+) Simplicit! (+) Pas de fragmentation interne! (-) Fragmentation externe ! (-) Temps de gestion des fusions / clatements!
F. Boyer, UJF!
19!
Allocation en zones contigus de tailles variables contrles ! Zones de tailles variables contrles!
! OS! P1! P2! P3!
reprsentation de la mmoire centrale!
Objectif = acclrer les temps de gestion des fusions / clatements en utilisant une gestion par subdivision
!!Allocation : si aucun bloc libre de taille approximativement gale
Algorithme Buddy: ! clatement dun bloc en deux sous-blocs de taille gale! (blocs siamois) : 2 k = 2 k-1 + 2 k-1! !
32! 48! (B1)! 56!
(B2)! 64!
2 n-1! Origine o!
o+2 n-1!
2 n-2!
2 n-3!
2 n-3!
o+2n!
o+2 n-1+2n-2!
F. Boyer, UJF!
21!
o+2n!
o+2 n-1!
o+2n!
2 n-1!
o+2 n-1! o+2n!
2 n-2!
o+2 n-1!
2 n-2!
o+2n!
o+2 n-1+2n-2!
2 n-2!
2 n-3!
2 n-3!
22!
Algorithme buddy !
!! Fragmentation interne limite (tailles arrondies une puissance de 2) !! Fragmentation externe (limite)
F. Boyer, UJF!
23!
F. Boyer, UJF!
24!
pn!
b0!
b1!
bk!
F. Boyer, UJF!
25!
adresse logique x!
! ! !
p0!
p1!
pn!
Mmoire logique de Pi
b0!
b1!
Mmoire physique
bk!
!! Dterminer quelle page est associe l'adresse x (pi)! !! Dterminer quel endroit se trouve x dans la page (dplacement)! !! Dterminer dans quel bloc est charge cette page (bj)!
F. Boyer, UJF!
! !
26!
Pagination : adressage !
Dcomposition d'une adresse logique ! !!Mmoire logique de 2 m octets ! !!Pages de 2 n octets ! !!Adresses sur m bits! ! !
No page sur m-n bits de poids fort! Dplacement sur n bits faibles!
F. Boyer, UJF!
27!
p0!
p1!
pn !
Pi:
p0! p1!
b1! b2!
b4!
b5! b5!
!
pm !
Pj:
p2,i
b0! b1!
p2,j
b2!
F. Boyer, UJF!
28!
Pagination : implantation !
p0! p1!
Pi: Pj:
b1! b2!
b4!
b5! b5!
Table globale
! !
mod! x!
F. Boyer, UJF!
29!
dadresses hardware)! !
F. Boyer, UJF!
30!
31!
32!
pages :!
"! Tables des pages plusieurs niveaux! "! Mmoires associatives! "! Tables inverses!
" Le problme est de limiter lespace consomm par la table des pages!
F. Boyer, UJF!
33!
A. Sylberschatz!
F. Boyer, UJF!
34!
! !no page basse sur 20 bits, dpl. sur 12 bits! !! Table des pages de 2 20 entres occupe 4 Mo (2 10 pages) ! !! Chaque page contient 2 10 entres! !! No page basse :! no page haute sur 10 bits, index sur 10 bits! ! Page number P | Ih 10 10 | Page offset db 12
35!
P Ih
db 0! @h! Ih! 210 210 - 1 ! Table des pages hautes 1! @b! @h!
@b! db!
Adresse accde
F. Boyer, UJF!
36!
Pagination la demande !
processus!
!! Pages charges au moment de leur accs
(si ncessaire)!
!! Pages non charges stockes sur disque
F. Boyer, UJF!
37!
Pagination la demande !
!! Matriel ncessaire!
"! Un bit de prsence dans la table des pages! "! Un disque rapide! !
38!
Algorithmes de remplacement !
!! Remplacement!
"! Slectionner une page victime! "! Enregistrer la page victime dans le disque si ncessaire! "! Modier la table des pages! !
39!
Principe de localit !
!! Proprits de localit :!
"! Temporelle! "! Spatiale !
F. Boyer, UJF!
40!
F. Boyer, UJF!
41!
Exemple FIFO !
F. Boyer, UJF!
42!
Exemple LRU !
F. Boyer, UJF!
43!
Chance!
!! FIFO! !! RANDOM!
F. Boyer, UJF!
45!
Remplacement global !
quelconque!
!! Trashing du systme si :!
"! Trop de processus prsents en mmoire centrale! "! Les processus nont pas assez de place chacun! "! Ils font beaucoup de fautes de pages ! diminution du taux dutilisation du processeur (attente des E/S)! "! Diminution du taux dutilisation du processeur ! augmentation du nombre de processus en mmoire centrale! "! etc!
F. Boyer, UJF!
46!
Remplacement local !
!! La page dcharger est prise au processus qui a fait la faute! !! Allocation dun nombre de blocs constant un processus! !! Dtermination du nombre de blocs : notion de working set!
"! Indices des pages adresses lors des K derniers accs! "! Exemple : ! ! !.. 2 6 1 5 7 7 7 7 5 1 3 4 4 4 3 4 3 4 4 4 1! ! ! ! K=10 WS(t1)={1,2,5,6,7}
t1 !
WS(t2) = {3,4}!
t2 !
F. Boyer, UJF!
47!
demande!
!! Principe de localit spatiale! !! Swapping-in dun processus !
F. Boyer, UJF!
48!
!
!! Libration de blocs ds que le nombre de blocs libres
F. Boyer, UJF!
49!
Mmoire virtuelle !
mmoire physique!
!! Taille de la mmoire virtuelle dtermine par la taille
des adresses !
"! Adresses sur n bits ! Mmoire de 2 n bits!
F. Boyer, UJF!
50!
Mmoire virtuelle !
Mmoire virtuelles des processus P1..Pn page 0 Mmoire physique
bloc
2k-1
F. Boyer, UJF!
51!