0% ont trouvé ce document utile (0 vote)
20 vues19 pages

Gestion de la mémoire en multiprogrammation

Transféré par

aishamrabet4
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
20 vues19 pages

Gestion de la mémoire en multiprogrammation

Transféré par

aishamrabet4
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre IV: Gestion de la mémoire

Halima MHAMDI

Cours: Système d’exploitation


Niveau : CPI1

Institut Supérieur d’Informatique et de Multimédia de Gabès


Plan
I. Introduction

II. Organisation de la mémoire : monoprogrammation -multiprogrammation

III. Multiprogrammation et partitions multiples contigües

[Link] contiguës fixes

[Link] contiguës dynamiques

3. Partitions contiguës Siamoises

4. Va et vient (Swap)

5. Fragmentation et Compactage
I. Introduction
➢ La gestion de la mémoire est l'une des tâches fondamentales d'un
système d'exploitation.
➢ Un programme ne peut s'exécuter que si ses instructions et ses
données sont en mémoire physique. Donc, si on désire exécuter
plusieurs programmes simultanément dans un ordinateur, il
faudra que tous ces programmes soient chargés dans la mémoire.
➢ Le système d'exploitation devra donc allouer à chaque
programme une zone de la mémoire où celui-ci sera chargé. Mais
tous les programmes n'ont pas la même taille, de plus les
programmes sont lancés par les utilisateurs, puis se terminent à
des moments inconnus du système à l'avance. Chaque fois qu'un
utilisateur va demander le lancement d'un programme, le système
devra trouver une place dans la mémoire pour le charger.
I. Introduction
➢ Le fait de travailler en multiprogrammation implique donc que les
programmes d'application sont chargés dans des zones de la
mémoire dont la localisation n'est pas connue d'avance.
➢ Le système prend à sa charge la gestion de la mémoire principale,
il assure sa protection, et il fournit l'information qui permet à
chaque programme de s'exécuter sans savoir à l'avance dans quelle
zone mémoire il sera au moment de son exécution (cette zone
peut d'ailleurs changer entre différentes exécutions et même en
cours d'exécution).
➢ Le but d'une bonne gestion de la mémoire est d'augmenter le
rendement global du système.
➢ La question principale à laquelle le système devra répondre
chaque fois qu'un nouveau programme demande à être exécuté
sera donc "à quel endroit dans la mémoire ?"
II. Organisation de la mémoire : monoprogrammation -
multiprogrammation
1. Organisation de la mémoire en monoprogrammation:

➢ A la base, le rôle du plus simple gestionnaire de mémoire est


d'exécuter un seul programme à la fois, en partageant la mémoire
entre le programme et le système d'exploitation. Trois variantes
de l'organisation possible sont montrées à la figure suivante:
II. Organisation de la mémoire : monoprogrammation -
multiprogrammation
2. Gestion de la mémoire et multiprogrammation:

➢ Excepté sur des systèmes embarqués simples, on n'a plus


tellement recours à la monoprogrammation de nos jours.
➢ La plupart des systèmes modernes autorisent l'exécution de
processus multiples en même temps, ce qui implique le séjour de
plusieurs programmes en même temps en mémoire et c’est cette
technique qui a donné naissance à la gestion moderne de la
mémoire.
➢ Pour supporter la multiprogrammation et donc l'existence de
plusieurs processus en mémoire principale, on peut distinguer
deux grandes stratégies d'allocation mémoire: l'allocation de
partitions contiguës et l'allocation de partitions non-contiguës.
III. Multiprogrammation et partitions multiples contigües
➢ L'espace mémoire est divisé en partitions. Chaque partition peut
être allouée à un programme. La taille des partitions et leur
nombre peuvent être fixe ou variable.
1. Partitions contiguës fixes:
Table de description des partitions
➢ Dans cette stratégie la mémoire est divisée en n partitions de
tailles fixes (si possible inégales).
➢ Ce partitionnement se fait au démarrage du système. Le système
d'exploitation maintient une table de description des partitions.
➢ Exemple de table de description des partitions:
III. Multiprogrammation et partitions multiples contigües
1. Partitions contiguës fixes:
Allocation de partitions fixes : files d'attente séparées:
➢ Quand un processus arrive, il peut être
placé dans la file d'attente des entrées de la
plus petite des partitions assez larges pour
le contenir.
➢ La figure illustre ce type de systèmes à
partitions fixes. Le tri des processus qui
arrivent en différentes files d'attente
présente des inconvénients lorsque la file
d'attente pour une grande partition est
vide tandis que celle d'une petite partition
est pleine, comme l'illustrent les partitions
1 et 3 de la figure
III. Multiprogrammation et partitions multiples contigües
1. Partitions contiguës fixes:
Allocation de partitions fixes : file d'attente commune:
➢ Une autre organisation
possible consiste à gérer une
seule file d'attente, comme la
figure. Dès qu'une partition
devient libre, toute tâche
placée en tête de file d'attente
et dont la taille convient peut
être chargée dans cette
partition vide et exécutée.
III. Multiprogrammation et partitions multiples contigües
2. Partitions contiguës dynamiques

➢ Stratégie du premier qui convient (First Fit): La liste des partitions


libres est triée par ordre des adresses croissantes. La recherche
commence par la partition libre de plus basse adresse et continue
jusqu'à la rencontre de la première partition dont la taille est au
moins égale à celle du processus en attente.
➢ Stratégie du meilleur qui convient (Best Fit): On alloue la plus petite
partition dont la taille est au moins égale à celle du processus en
attente. La table des partitions libres est de préférence triée par
tailles croissantes.
➢ Stratégie du pire qui convient (Worst Fit): On alloue au processus la
partition de plus grande taille.
III. Multiprogrammation et partitions multiples contigües
2. Partitions contiguës dynamiques
Exemple d’allocation de partitions dynamiques contigües

➢ Soit une MC dont la table des


partitions libres est la suivante
➢ Soit les demandes suivantes
P4(24K), P5(128K), P6(256K):
➢ Déterminer l’évolution de la
table des partitions libres en
utilisant First fit, Best fit et
Worst fit:
III. Multiprogrammation et partitions multiples contigües
3. Partitions contiguës Siamoises
➢ C'est un compromis entre partitions de tailles fixes et partitions de
tailles variables.
➢ La mémoire est allouée en unités qui sont des puissances de 2.
Initialement, il existe une seule unité comprenant toute la mémoire.
Lorsque la mémoire doit être attribuée à un processus, ce dernier
reçoit une unité de mémoire dont la taille est la plus petite puissance
de 2 supérieures à la taille du processus. S'il n'existe aucune unité de
cette taille, la plus petite unité disponible supérieure au processus est
divisée en deux unités "siamoises" de la moitié de la taille de
l'original. La division se poursuit jusqu'à l'obtention de la taille
appropriée.
➢ De même deux unités siamoises libres sont combinées pour obtenir
une unité plus grande.
III. Multiprogrammation et partitions multiples contigües
3. Partitions contiguës Siamoises
Exemple
III. Multiprogrammation et partitions multiples contigües
3. Partitions contiguës Siamoises
Application
Soit un système de 1 Mo de mémoire et qui utilise le système de zones siamoises. Elaborer un diagramme
d’allocations de la mémoire après chacun des évènements suivants :

1. Arrivée du processus A, 100 Ko.

2. Arrivée du processus B, 240 Ko.

3. Arrivée du processus C, 64 KO

4. Arrivée du processus D, 256 Ko.

5. Sortie du processus B.

6. Sortie du processus A.

7. Arrivée du processus E, 75 Ko.

8. Sortie du processus C.

9. Sortie du processus E.

10. Sortie du processus D.


III. Multiprogrammation et partitions multiples contigües
4. Va et vient (Swap)
➢ Multiprogrammation et limite de la mémoire principale
Dans un système à temps partagé, parfois la mémoire principale est
insuffisante pour maintenir tous les processus courants actifs : il faut
alors conserver les processus supplémentaires sur un disque et les
charger pour qu'ils s'exécutent dynamiquement.
➢ Swap
La stratégie la plus simple, appelée va-et-vient (swap), consiste à
considérer chaque processus dans son intégralité: en cas de réquisition
du processeur, le programme en cours doit être sauvegardé sur disque
avant le chargement en mémoire principale de son successeur, dans sa
totalité, pour exécution.
III. Multiprogrammation et partitions multiples contigües
4. Va et vient (Swap)
III. Multiprogrammation et partitions multiples contigües
5. Fragmentation et Compactage
III. Multiprogrammation et partitions multiples contigües
5. Fragmentation et Compactage
➢ Exemple de fragmentation de la mémoire:
III. Multiprogrammation et partitions multiples contigües
5. Fragmentation et Compactage

➢ Compactage de la mémoire:

Les zones libres sont regroupées. C'est une technique très coûteuse, et

en plus elle change les adresses de chargement des processus.

➢ Compactage et réallocation:

Le compactage de la mémoire n'est possible que s'il y a un mécanisme

de réallocation dynamique des processus (basé sur l'utilisation des

registres de translation d'adresse (registre base))

Vous aimerez peut-être aussi