Академический Документы
Профессиональный Документы
Культура Документы
Gestion de la mmoire
La mmoire est le point central dans un systme d'exploitation, c'est travers elle que l'unit centrale communique avec l'extrieur. Idalement, on voudrait que la mmoire soit : grande, rapide, non volatile et bon march
Importance de la gestion de la mmoire
Cours SE
Mme Chraibi S.
Les solutions ces deux problmes sont diverses et sont troitement lies au matriel et aussi au type de systmes: mono- programmes ou multiprogrammes. Nous allons voir ces approches en fonction des types de SE .
Cours SE Mme Chraibi S. 2
1- Les programmes doivent tre relogeables : Il peut tre excut dans nimporte
quelle zone ; pourvu quelle soit de taille suffisante. indpendance entre les adresses du programmes et les adresses physiques du chargement. 2- La protection et lintgrit :les accs non autoriss En cours de son excution, il faut garantir quun programme ne puisse pas
Cours SE
Mme Chraibi S.
Pour la suite de ce chapitre, on va dcrire quelques tactiques appliques par les SE pour grer la mmoire tout en donnant des solutions dorganisation en respectant les contraintes : 1. les partitionnement fixes et variables, 2. le tassage, 3. la pagination, 4. La segmentation Pour chacune on prsente l'ide, la mise en uvre, les avantages et les inconvnients.
Cours SE
Mme Chraibi S.
Rappels:
Registres de lUC
Temps daccs
Mmoire volatile
Mmoire permanente
(secondaire ou auxiliaire)
Disque Bandes
- Cot par bit croissant - Vitesse daccs croissant - Capacit de stock dcroissante Cette hirarchie est gre par le gestionnaire de la mmoire L'importance de la gestion de la mmoire centrale vient de son cot et du cot relatif des autres formes de stockage,
Cours SE Mme Chraibi S. 5
IV) Gestion de la mmoire cache Rappels : dfinitionde la mmoire I-) Introduction (ou antmmoire) :
Cest une mmoire relativement petite mais trs rapide. Elle rattach au CPU dans le but daugmenter la performance de lordinateur. Elle est souvent constitue de Registres associatifs, on parle de mmoire associative ou contenu adressable . Au niveau matriel, toutes les cls sont compares simultanment la cls daccs. Si la cls est trouve Sortie la valeur correspondante est fournie en sortie. de
valeur Valeur Cls
V
.
Cours SE
Mme Chraibi S.
donne
Unit daccs
en gnral, pas une cellule mais plusieurs exemple : 8 cellules (1 octet)
adresse
0 1 2 3 4 5 6 7 8 9 10 11 12
MEMOIRE
7
@ de linstruction
chargement instruction
identification de lopration raliser
dcodage
si cest un load
si cest un store
Accde la mmoire pour : lire les instructions excuter et lire ou crire certaines variables
Cours SE Mme Chraibi S. 8
lecture dune donne en mmoire criture dune donne en mmoire addition addition soustraction comparaison affectation branchement (PC @instruction) branchement si suprieur
Cours SE
Mme Chraibi S.
@boucle
@fin
0 0
0 1 1 0 1 1 1 2
# rd # rs # rd
1 3
1 4 2 0 2 1
valeur # rd 0 0 0 0
@instruction @instruction
instruction
@x @y @produit @main
@boucle
@fin
int 4 int 3 int 0 load r1, @x load r2, @y load r3, @produit set r4, 1 compare r4,r2 bgt @fin add r3, r1, r3 add r4, r4, 1 b @boucle store r3, @produit
Cours SE
0000 0004 0008 000C 0010 0014 0018 001C 0020 0024 0028 002C 0030
00 00 00 00 00 00 14 13 21 10 11 20 01
00 00 00 XX XX XX 00 04 XX 01 04 XX XX
00 00 00 XX XX XX 01 02 XX 03 01 XX XX
04 03 00 01 02 03 04 00 00 03 04 00 03
@x @y @produit
@fin
@boucle @produit
12
Mme Chraibi S.
@x @y @produit
@boucle
@fin
@fin
@boucle @produit
Cours SE
Mme Chraibi S.
13
Solution : Notion dadresses logiques ou relatives Translation dune adresse logique en une adresse physique
Cours SE Mme Chraibi S. 14
@ du dbut pg
@x @y @produit @main
@boucle
@fin
0000 0004 0008 000C 0010 0014 0018 001C 0020 0024 0028 002C 0030
00 00 00 00 00 00 14 13 21 10 11 20 01
00 00 00 XX XX XX 00 04 XX 01 04 XX XX
00 00 00 XX XX XX 01 02 XX 03 01 XX XX
Cours SE
04 03 00 01 02 03 04 00 00 03 04 00 03
@x @y @produit
@fin
@boucle @produit
Mme Chraibi S.
0000 0004 0008 000C 0010 0014 0018 001C 0020 0024 0028 002C 0030
00 00 00 00 00 00 14 13 21 10 11 20 01
00 00 00 00 00 00 00 04 00 01 04 00 00
00 00 00 00 04 08 01 02 30 03 01 1C 08
04 03 00 01 02 03 04 00 00 03 04 00 03
15
Adresse physique
Mmoire physique
RB=@Base
@Base + N
Cours SE
Mme Chraibi S.
16
Technique de la translation
Exemple de la technique de la translation
Le mcanisme suivant est utile pour rsoudre le problme de dplacement des programmes en mmoire (relocation).
@ physique en MC A chaque utilisation d'une adresse logique du programme, on ajoute cette adresse la valeur du registre de base pour trouver l'adresse physique. L'utilisateur ne connat pas les adresses physiques. Il travaille uniquement avec des adresses logiques.
Cours SE Mme Chraibi S. 17
Techniques de la translation
La translation peut avoir lieu deux instants :
Lors du chargement du programme : le chargeur fixe ladresse de base du programme et effectue une translation. On dit que le programme subit une implantation statique. Mais Ce type de translation ne rsout pas la problme de protection. Car par calcul on peut adresser une zone mmoire et y accder!! Lors de lexcution de chaque instruction Translation dynamique Le matriel assure cette conversion. Le programme subit donc une implantation dynamique.
Ce mode de conversion permet de dplacer le programme d une zone une autre en cours dexcution Solution pour la rimplantation dynamique
Cours SE Mme Chraibi S. 18
Technique de la translation
Problme de protection inter-processus !!
Solution : Deux registres Barrire Bas et Haut Si Adresse < Bas erreur d'adresse Si Adresse >= Haut erreur d'adresse Sinon adresse correcte.
Ide : Diviser arbitrairement la mmoire en partitions de dimensions fixes : partitions statiques. Toutes les partitions ne sont pas de mme taille. Mise en uvre : Les programmes sont implants dans chaque partition. Deux faons dorganiser:
Cours SE
Mme Chraibi S.
20
Le partitionnement de la mmoire
Cas dallocation contigu
1.
2.
En cas de fichier plus grand que la plus grande partition on ne peut le loger!
Cours SE
Mme Chraibi S.
21
Le partitionnement de la mmoire
Cas dallocation contigu
Cas du partitionnement variable :
Contrairement au partitionnement fixe, la MC nest pas partitionne mais au dbut une seule zone libre est disponible, et lallocation se fait suivant les besoins des utilisateurs.
L'allocation de la mmoire change au gr des processus qui viennent en mmoire et quittent la mmoire Les zones grises indiquent la mmoire non utilise
Cours SE Mme Chraibi S. 22
Partitionnement variable
Cas dallocation contigu
Nous devons rsoudre de nouveaux problmes : lorganisation de la mmoire et tablir un algorithme dallocation de la mmoire un processus.
occup
4 (libre)
5 (libre)
2 (libre)
Les deux listes sont organises en FIFO ou par ordre croissant des adresses ou par ordre croissant des tailles des zones libres. Rq : Lordre de chanage des zones influe directement sur la gestion des zones : les mthodes de placement et de libration.
Cours SE Mme Chraibi S. 23
Une partie de la mmoire avec 5 processus, 3 trous Les petites marques verticales indiquent les units d'allocation Les zones grises sont libres Le tableau de bits correspondant Mmes informations sous la forme d'une liste chane
Cours SE Mme Chraibi S. 24
Partitionnement variable
Cas dallocation contigu
2) Algorithmes d'allocation de la mmoire:
dcident de lendroit o insrer un nouveau fichier. La zone libre choisie doit tre de taille suffisante pour satisfaire la demande.
1.
2.
Premire zone libre (first fit) : choisir la premire zone libre ayant une taille suffisante.
Cette mthode vise optimiser la rapidit de choix.
Meilleur ajustement (best fit): slectionner la plus petite zone de taille suffisante,
produisant ainsi un fragment minimal. L utilisation global est amlior mais on obtient un grand nombre de petits fragments. Cette mthode ncessite soit un examen complet de la liste soit un classement permanent de cette liste par taille .
3.
Plus grand rsidu (worst fit) : la zone la plus grande est choisie. Le fait que les
fragments produits soient en principe plus grands, peu permettre de satisfaire une demande future.
First-fit et best-fit sont meilleurs que worst-fit en termes de rapidit et utilisation de la mmoire
Cours SE
Mme Chraibi S.
25
Partitionnement variable
Cas dallocation contigu
Exemples dapplication des politiques d'allocation :
pour une demande de 1 bloc on a les situations suivantes: (a) : premire zone libre : on choisit la zone de 4 blocs => reste 3, 5 ,et 2 blocs libres (b) : meilleur ajustement : on choisit la zone de 2 blocs => reste 4, 5 et 1 blocs libres (c) : plus grand rsidu: on choisit la zone de 5 blocs => reste 4, 4 et 2 blocs libres
Figure 3:
4 (libre)
5 (libre)
2 (libre)
Dispo
(a)
(c)
(b)
Remarque : Des simulations ont montr que le premier ajustement tait meilleur que les autres. Paradoxalement, le meilleur ajustement , qui est plus coteux, n'est pas optimal car il produit une fragmentation importante.
Cours SE Mme Chraibi S. 26
Partitionnement variable
Cas dallocation contigu
Exemples de libration Fusion des partitions
Quatre combinaisons de voisinage pour un processus X qui se termine Dans ce cas lorganisation des listes pas adresse donne un fusion rapide.
Cours SE
Mme Chraibi S.
27
Partitionnement variable
Cas dallocation contigu
Limites du partitionnement variables : Problme de la fragmentation Certaines petites zones (ou fragment) restent inutilises. Deux types de fragmentation :
Fragmentation Externe somme des blocs peut satisfaire une requte, mais non contigus. Ex : Dans la figure 2, une demande de 6 blocs ne peut tre satisfaite alors quon dispose au total de 11 blocs libres. Fragmentation Interne mmoire alloue peut-tre lgrement plus large que la mmoire demande; cette diffrence de taille est une mmoire interne un bloc allou, mais non utilise. La taille dun fichier nest pas un multiple entier de la taille dun bloc ==> le dernier bloc de la zone allou nest pas utilis en entier. Rduire la fragmentation externe par du compactage
Cours SE Mme Chraibi S. 28
Partitionnement variable
Cas dallocation contigu
Solution de la fragmentation: Le compactage
Dfinition : Rorganiser la mmoire pour mettre les blocs ensemble pour en faire 1 grand bloc Compactage possible seulement si relocation est dynamique, et se fait lexcution
Plusieurs dplacements possibles:
Cours SE
Mme Chraibi S.
29
Partitionnement variable
Cas dallocation contigu
Inconvnients du compactage :
Il occupe lUC => diminution des performances globales du SE La frquence du compactage peut tre un obstacle surtout dans les systmes temps rels. Besoin de conserver des informations supplmentaires permettant de retrouver les lments ainsi dplacs.
Cours SE
Mme Chraibi S.
30
Cours SE
Mme Chraibi S.
31
Exemple :
Inconvnients : lorsque de nombreux blocs sont utiliss la table devient trs grande, ce qui pose un problme de stockage.
Cours SE
Mme Chraibi S.
33
Mmoire centrale
Transcodage
Dfinition: Mmoire virtuelle = support de l'ensemble des informations potentiellement accessibles. Avantages : Beaucoup de place ! Avec la mmoire virtuelle, la mmoire logique dun processus devient beaucoup plus grande que la mmoire physique Inconvnients : SWAP ou accs disque optimiser
mmoire virtuelle
Swapping
Disque
Pour la ralisation de la mmoire virtuelle on a recours aux mthodes de la pagination ou de la segmentation ou une combinaison des deux.
Cours SE Mme Chraibi S. 34
Notion du Swapping
Swapper, c'est changer le contenu de la mmoire centrale avec le contenu d'une mmoire secondaire. Par extension swapper devient l'action de dplacer une zone mmoire de la mmoire vers le support de swap (en gnral un disque) ou rciproquement du priphrique de swap vers la mmoire.
Le systme de swap a permis de raliser la mmoire virtuelle. En effet lorsque la mmoire de l'ordinateur arrive saturation, le systme crit sur une partition SWAP de faon librer de la mmoire.
Cours SE Mme Chraibi S. 35
Dun autre ct lespace physique (MC) est aussi divis en un ensemble de cases (ou cadres de page) de taille fixe T. Taille de page = taille de case = T
Lors de lexcution dun processus, les pages sont charges dans des cases disponibles (libres), non ncessairement adjacents de la MC. Rque : pour simplifier les calculs, la taille des pages T est habituellement dfinie comme une puissance de 2 (entre 512 octets et 16 Mo). Pour excuter un programme de n pages, lOS a besoin de trouver n cadres de page libres et charger le programme Grer une table des pages pour traduire les adresses logiques en adresses physiques Fragmentation interne
Cours SE Mme Chraibi S.
2 . . . . . . . . . . . N-1 0 1 2 . . n-1
Mmoire physique
.
. . . . . .
n-1
.
. . N-1
Mmoire physique
Mmoire virtuelle
Cours SE
Mme Chraibi S.
37
Dplacement dans la Page (d) ou dans la case (puisque Taille pages = taille cases) combin avec ladresse de base pour dfinir ladresse physique complte envoye la mmoire
Adresse logique L P D D Adresse physique PH= C *T+D
Processus
0 1 p
C
Cours SE
Mme Chraibi S.
38
Numro de page
dplacement
L:@virtuelle
2212 11..0
Cours SE
Mme Chraibi S.
39
Processus
Adresse logique
Num P
D Page case
Registre de base
Pr=0
Table des pages TPV Dfaut de page
Adresse physique
Cours SE
Mme Chraibi S.
42
1) 2) 3) 4) 5) 6) 7)
adresse virtuelle= ( p , d) si numro de page p est dans les registres associatives /*consultation de mmoire associative alors adresse physique = ( c(Reg-asso) , d) sinon /* consultation de la table des pages si prsent(p) = 1 alors - mettre jour la mmoire associative, - adresse physique = ( c(p) , d) sinon /*page fait dfaut Si la mmoire physique est pleine faire un remplacement de pages - choisir une page "victime", - si elle a t modifie, la rcrire sur disque, - modifier les indicateurs de prsence en TPV ; fsi charger la page rfrence en mmoire physique (placement) ; modifier les indicateurs de prsence en TPV. aller 5) fsi fsi
Cours SE Mme Chraibi S. 43
Une erreur de page ncessite de raliser au moins 3 actions : grer l'interruption (commutation de contexte et .) swapper la page demande relancer le processus
Cours SE
Mme Chraibi S.
44
Le systme d'exploitation doit slectionner une victime, c'est--dire, une des pages de la mmoire centrale qui sera swappe sur disque et remplace par la page demande.=> Remplacement Le choix faire sur des pages qu'il faut swaper sont donc trs importants.
Cours SE
Mme Chraibi S.
45
Algorithmes de remplacement :
Un algorithme de remplacement de page doit minimiser le nombre de dfauts de pages. On recherche l'algorithme qui rduit au mieux la probabilit d'occurrence d'une erreur de page. Un algorithme est valu en prenant une chane de numros de page et en comptant le nombre de fautes de page qui ont lieu au cours de cette suite d'accs, et cela en fonction du nombre de pages de mmoire centrale dont il dispose.
Deux sortes dalgorithmes : Ceux qui ne tiennent pas compte de lutilisation des cases : RAND : slection au hasard. On peut virer une page dont on a besoin tout de suite. FIFO : ordre chronologique de chargement ; Ceux qui tiennent compte de lutilisation des cases : LFU (least frequently used) : on remplace la page la moins frquemment rfrence LRU (least recently used) : ordre chronologique d'utilisation. On sintresse aux dates dutilisation mais pas la frquence. OPT : on remplace celle qui sera utilise au bout du temps la plus long .
Remarque: le temps de transfert est doubl: il faut la fois lire une page et sauvegarder une page sur disque
Cours SE Mme Chraibi S. 46
Cours SE
Mme Chraibi S.
47
Cours SE
Mme Chraibi S.
48
Cours SE
Mme Chraibi S.
49
Cours SE
Mme Chraibi S.
50
Cours SE
Mme Chraibi S.
51
Cours SE
Mme Chraibi S.
52
La segmentation
Principe :
La mmoire virtuelle = ensemble de segments. L espace logique dun processus est aussi un ensemble de segments En gnral, les segments correspondent un dcoupage logique d'un programme (segment de pile, de donnes, de code, ...). Un segment = suite d'emplacements conscutifs caractris par un numro de segment s et une longueur m appele limite. Ladresse logique = (s, d) o (s : numro de segment; d : dplacement lintrieur de segment s)
une table de segments pour calculer une adresse physique o chaque entre de la table contient ladresse physique du dbut du segment appel base b et la longueur m du segment. Ladresse physique =b+d 0<= d <= m
RQ : lorganisation segmente peut reflter la vision logique de lutilisateur contrairement lorganisation pagine. Cest une organisation de la mmoire qui respecte le comportement usuel des programmeurs, qui gnralement voient la mmoire comme un ensemble de tableaux distincts contenant des informations de types diffrents. Un segment pour chaque type : donnes, code, table des symboles, librairies etc. Ces diffrentes zones ayant des tailles varies, et parfois variables au cours du temps (le tas par exemple).
Cours SE Mme Chraibi S. 54
La segmentation
Conversion des adresses :
Table des segments
b
Mmoire physique
Processus
Adresse logique
d Adresse physique
<
Non interruption
b +d
Avantage: lutilisation de segments disperss de petites tailles rduit la fragmentation externe mais ne llimine pas compltement. Remarque : lutilisation des registres associatifs pour tout ou une partie de la table des segments conduit une amlioration des performances de conversion.
La mmoire segmente pose des problmes de compactage (dfragmentation). La stratgie idale est : la mmoire en segments pagins.
Cours SE Mme Chraibi S. 55
La segmentation pagine
Problme de la segmentation : La croissance de la taille des mmoires virtuelle problme de lencombrement de la mmoire principale par la table des segments dont la taille augmente, surtout si la plupart des entres sont vides.
Ide : Paginer les segments : on a une TPV par segment segmentation pagine
Une adresse logique =(numro segment , numro page, dplacement dans la page)
Conversion des adresses:
Adresse logique
Seg
page
dplacement
TPV du segment
56