Académique Documents
Professionnel Documents
Culture Documents
1 Introduction
1
3.1 Swapping (ou méthode de va et vient) 4 Gestion de la Mémoire centrale dans les systèmes
Dans le mono programmé, le processus qui occupe un espace mémoire, il le multiprogrammés
gardera jusqu'à sa terminaison. Pour palier à ce problème, une libération
temporaire de l'espace occupé pour donner l'occasion aux processus en attente Nous distinguions deux approches principales de gestion de la mémoire :
dans le disque d'occuper la mémoire centrale.
1- Approche d’allocation contiguë : L’espace d’adressage du processus
Le principe de Swapping se base sur l'état d'un processus, si le processus P1 se est linéaire. L'espace des adresses physiques est l'ensemble des entiers
bloque suite à une E/S, un autre processus P2 est chargé pour s'exécuter. compris entre 0 et N-1
Un programme ensemble de mots mémoires contiguës inséparables
3.2 Technique de recouvrement (insécables).
La taille d’un programme peut dépasser la taille de la MC. Pour surpasser On trouve dans cette approche principalement deux types de technique:
cette limitation dans un système monoprogrammé, le programmeur doit - Technique d’allocation par partitions fixes
diviser son programme au moment de la conception en un ensemble de - Technique d'allocation par partitions variables.
modules et les charger dynamiquement à l’exécution en MC de telle sorte qu’il 2- Approche d’allocation non contiguë :
garde que les modules dont il a besoin effectivement. Chaque nouveau module Un programme ensemble de mots mémoires non contiguës séparables
chargé prend la place du module qui doit être déchargé. (sécables).
Un programme peut être divisé en une succession de morceaux contenant
chacun un ensemble de mots contiguës. Chaque morceau peut être traité
Zone Système Mémoire indépendamment des autres. On trouve dans cette approche principalement
Secondaire les technique de pagination, segmentation et la segmentation paginée
Swap Out
P1 P5 P2 Gestionnaire de MC dans un
système multiprogrammé
Process Actif
Faisant E/S se P3 P4
bloque
Allocation contiguë Allocation non contiguë
Swap In
Système de
segmentation
3
4.1.2.1.1 First Fit - La Zone choisie est la meilleure
Parcourir la liste des zones libres jusqu’à la rencontre de la première zone Inconvénients :
supérieur ou égale à la demande. - Fragmentation Externe, les petites tailles seront rarement
Avantage: réutilisables.
Stratégie rapide en temps d'exécution Allocation rapide - Recherche lente Allocation lente.
Inconvénients:
4.1.2.1.3 Worst Fit :
Un processus est placé dans la partition la plus grande. Si le gestionnaire
Etat de la MC utilise une liste des zones libres, cette liste doit être triée par ordre
avant l'allocation décroissant pour éviter de parcourir toute la liste.
Résidu Avantage:
SE SE de 3 SE SE - La Fragmentation externe permet d'avoir des résidus de grande de
16 P 13 16 16 taille. Ceci augmente la possibilité de la réutilisation des résidus
Résidu
par d'autres process.
de 1
14 14 P 13 Inconvénient:
- Sans une liste triée la Recherche sera lente
Remarques:
5 5 5 5 Résidu
de 17 - Il est important d'utiliser une liste doublement chaînée contenant les
30 First 30 Best 30 Worst P 13 zones libres, trier ces zones selon un ordre (croissant ou
Fit Fit Fit décroissant), permet au gestionnaire de parcourir la liste de début à
17
P=13 P=13 fin et vis vers sa.
P=13 Comment peut on exploiter les résidus issus de la fragmentation interne
?
Figure 4 Exemple d'application de First Fit, Best Fit et Worst Fit. 4.1.2.2 Compactage de l'espace Mémoire libre
Une opération de compactage consiste à rassembler les partitions (zones)
On peut crée des partitions qui ne sont pas intéressantes (exp: 3k voir la ), qui résidus en une partition plus grande. Cette opération est appelée aussi
ne seront peut être jamais utilisé Fragmentation interne. ramasse miettes ou Garbage Collector.
4.1.2.1.2 Best Fit : Remarque
Un processus est placé dans la partition dont le résidu mémoire sera Le compactage n’est possible que si le système se dote d’un chargeur
minimal. relogeable.
Choisir une zone dont la taille est la plus proche de la demande, ce qui
implique un parcours complet de la liste.
Avantage: 4
P1 MC
4 ko Case 0
Page 0
4.2 Allocation Non contiguë Case 1 Page 0-P1
Le gestionnaire de mémoire considère qu'un programme est partageable en Page 1 Case 2 Page 3-P1
morceaux qui peuvent occuper des espaces libres éparpillés dans la MC. Allocation
Page 2 Case 3
En fonction des tailles de ces morceaux, on distingue deux stratégies : Case 4 Page 0-P2
Page 3
Si les morceaux du programme sont de tailles fixes et égales, on parle de Case 5 Page 2-P1
Espace d’adressage
système de pagination. logique de 16 ko Case 6 Page 3-P1
- Chaque morceau est une page.
P2 Case 7 Page 1-P2
Si les morceaux du programme sont de tailles variables, on parle alors de Page 0
système de segmentation. Case Page Processus
Case 0 -1 (libre)
Page 1
- Chaque morceau est un segment. Case 1 0 P1
Espace d’adressage
Case 2 3 P1
4.2.1 Système de pagination logique de 7 ko Case 3 -1
Case 4 0 P2
L’espace d’adressage des programmes est divisé en un ensemble de Espace libre
Case 5 2 P1
Fragmentation
morceaux de même taille appelés PAGES. Cet espace est appelé l’espace interne Case 6 3 P1
logique du programme. Les adresses référencées sont relatives par rapport Case 7 1 P2
au début du programme (l’adresse zéro ‘0’, le chargeur doit être relogeable Table des cases
Figure 5 Exemple
m-1 n-1d’une pagination de deux processus 0
« de réimplantation ») elles sont, aussi, appelées adresses logiques.
- La MC est aussi divisée en un ensemble de morceaux de même taille Les n bits restants
CASES m-n de poids de poids faible
fort
- La taille d’une page égale à la taille d’une case. Cette taille est définie par le p d
matériel et le SE cible. Généralement c’est une puissance de 2 (Exp 24 K) Figure 6 Calcul d’une adresse paginée
Exemple :
Une adresse AB = 1010 1011 sur 8 bits, m=8 bits. Nous avons aussi des
pages de taille 26 mots.
Donc le nombre de pages est de 2m-n=28-6=4.
Le déplacement à l’intérieur d’une page est de n = 6bits. 5
Alors l’adresse logique devienne adresse paginée <P,D> comme suit :
P= 171 Div 64 = 2, P=2 La page numéro 2 UC MMU MC
D =171 Mod 64 = 43, D=43 un déplacement dans la page numéro 2. P1 adr Table des pages
PTBR adr
1010 1011 <2, 43> P1
Premier accès C
Dans la mémoire centrale il faut faire la correspondance adresse paginée . mémoire
Inst @
adresse physique dans la MC. ….
L’adresse physique est obtenue en remplaçant le numéro de page P par le …. +
numéro de la case C. Le déplacement D dans la page étant le même dans la 1
case. De ce fait, pour chaque processus une table de pages est construite
contenant les correspondances numéro de page numéro de case. P D + l’@ de la
Cette table est placée en mémoire centrale. 2 case C
@ paginée
l’@ physique
Chaque processus enregistre l’adresse de la table dans son PCB. @ recherchée
Lorsque un processus est élu, cette adresse est placée dans le registre PTBR Deuxième accès mémoire
(Page Table Base Registre) de la MMU. Figure 8 Accès mémoires pour calculer une adresse physique
Exemple :
Prenant les deux processus de la Figure 5 :
Processus 1
MC
Page 0 Case 1 Processus 2 Cache
Page 0 Case 4 MMU Table des pages
Page 1 Case 7 1 adr
Page 2 Case 5 Page 1 Case 7 p,c
P1
Page 3 Case 2 C
PTBR adr
- 1ere accès mémoire : pour lire l’@ début de la table des pages et trouvé
connaître le numéro de la case pour calculer l’adresse physique de la Non trouvé
case. + 2’
- 2emme accès pour l’adresse recherchée tel que adresse physique de la +
P D
case + déplacement. + 3’
d
l’@ physique
Pour accélérer les actions mémoire on utilise un cache placée pris de la MC, 2 @ recherchée
contient des couples (pages, adresses de cases) les plus récemment utilisées.
Figure 7 Un seul accès mémoire par le biais de cache pour calculer une
@ physique
6
4.2.1.2 Protection de données dans un système paginée l’adresse début du segment. Ceci est par l’utilisation de la table des
L’utilisation des tables de pages pour chaque processus garanti la protection segments qui est une structure logicielle stockée dans la MC (zone
des données. Ainsi, les pages peuvent être en lecture seul, protection contre système). Ainsi, le MMU posssede deux registres :
l’écriture malveillant des autres processus. Le STBR (Segment Table Base Register) qui contient un pointeur sur la
- table des segments d’un processus actif.
4.2.2 Système de segmentation de la MC - Le STLR (Segment Table Length Register) qui contient le nombre
de segment du processus actif.
Dans la pagination, le découpage de processus ne correspond pas à l’image
que le programmeur a de son programme.
Pour un programmeur, un programme est présenté par : adresse d’implantation Taille
MC
- des données manipulées par le programme du segment dans la MC Sys
- programme principal ou code S0 00 512
- sous-programmes (procédures / fonctions), pile. S1 512 300 Seg0
L’espace d’adressage d’un programme est divisé en un ensemble de morceaux S2 1212 64 512
n’ayant pas la même taille, mais correspond à chaque partie du programme. S3 1426 700 Seg1 : 300
Table des segments d’un processus 400
Donnée Segment 1 Seg3 : 64
50 ko Figure 9Segmentation d’un processus dans la MC
Fonction X Prog 150
principal Segment 2 Segment 3
20 ko 70 ko
Seg2 : 700
Pile
Segment 4
25 ko
Vue de l’utilisateur Le fonctionnement du gestionnaire est résumé dans l’algorithme suivant :
Segmentation
Figure 10 Vue de l’utilisateur & segmentation
Si (s> Nbr_s) alors
1 Déroutement (Segment inéxistant)
Sinon
Adr_table_s s + adr (index d’entrée du segment)
4.2.2.1 Conversion d’une adresse logique à une adresse physique
Si (d> taiille) alors % taille de segment%
Avec la segmentation l’adresse logique est appelée adresse segmentée. Cette Déroutement (en dehors du segment)
2
adresse est formée du couple <s,d> : Sinon
- d’un numéro de segment : s @physique adr + d %adr est une adresse
d’implantation du segement%
- d’un déplacement relatif par rapport au début du segment : d FinSi
Le MMU fait une conversion de l’adresse segmentée à une adresse physique FinSi
par l’association à chaque numéro de segment une adresse physique
d’implantation du segment mémoire, et par le déplacement d à partir de
7
MC
STLR
@ segmentée MMU MC
Nbr_S @ logique oui
< D
Table des segments
S D STBR S D
adr taille adr Ps Dps
>? S1
1
non S2 S2
+ + Taille adr
2 oui + +
S1 Addr f S0
@ Physique
non @ Physique
>? + S0
STBR
oui S3
S3
Table des segments Table des pages du segment
Déroutement Déroutement
Figure 12 Calcul d’adresse physique dans un système de segmentation paginé
Figure 11 Calcul de l’adresse physique d’une adresse segmentée
5 Conclusion
Les performances du SE en dépendent de la gestion de la MC qui est accomplie par un module
du SE appelé gestionnaire de la mémoire centrale MMU. Ce dernier doit gérer l’espace
mémoire alloué aux process en terme d’allocation et restitution, mais aussi en terme de
protection et partage des informations.
11
12