Saint Georges, martyr, et la lègend du dragon.pptx
Gestion de la Memoire dans un Système d'exploitation
1. Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Gestion de la mémoire dans un
système d’exploitation
RUGANO Allan Stockman
ARAKAZA Alexis
BARUMWETE Marius
GATORE SINIGIRIRA Kelly Joelle
EMERUSABE Baptiste
Faculté des Sciences (II Lic Math)
30 août 2013
2. Introduction
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La gestion de la mémoire permet de transférer les
programmes et les données nécessaires à la création des
processus, d’un support secondaire, par exemple un disque,
vers un support central, où a lieu l’exécution des processus.
Le système devra garder la trace des parties utilisées et
libres de la mémoire ainsi que gérer les transferts entre les
mémoires principale et secondaire.
Dans les systèmes multi-utilisateurs, par exemple, on doit
interdire à un utilisateur d’accéder n’importe comment au
noyau du système ou aux autres programmes des
utilisateurs.
3. Monoprogrammation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La monoprogrammation
ne permet qu’à un seul processus utilisateur d’être
exécuté.
n’est plus utilisée que dans les micro-ordinateurs.
On trouve alors en mémoire, par exemple dans le cas
de MS-DOS : le système en mémoire basse, les pilotes
de périphériques en mémoire haute (dans une zone
allant de 640 ko à 1 Mo) et un programme utilisateur
entre les deux
4. Mutiprogrammation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
autorise l’exécution de plusieurs processus indépendant
à la fois
permet d’optimiser le taux d’utilisation du processeur en
réduisant notamment les attentes sur des entrées-sorties
implique le séjour de plusieurs programmes en même
temps en mémoire
5. Quelques principes
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Un compilateur transforme un programme en un
module objet représentant la traduction des instructions
en C, en langage machine. Le code produit est en
général relogeable, commençant à l’adresse 00000 et
pouvant se translater à n’importe quel endroit de la
mémoire en lui donnant comme référence initiale le
registre de base.
Les adresses représentent alors le décalage par
rapport à ce registre.
Pour effectuer le chargement, le système alloue un
espace de mémoire libre et il y place le processus. Il
libérera cet emplacement une fois le programme
terminé.
6. Techniques pour partager le mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Recouvrements : (overlays) charger un processus par
tranches de code indépendantes.Le programmeur
peut, dans ce cas, mettre en œuvre une stratégie de
recouvrement (overlay) consistant à découper un
programme important en modules. Niveau utilisateur.
Chargement dynamique : charger le code nécessaire
uniquement quand on en a besoin. Niveau utilisateur.
Édition de liens dynamique : bibliothèques partagées.
Swapping : déplacement de processus entre mémoire
et mémoire auxiliaire (disques). Coûteux en
commutation.
Ceci est cependant très fastidieux et nécessite, pour
chaque nouveau programme, un redécoupage.
7. Techniques pour partager le mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Pour assurer une protection fondamentale, on dispose, sur
la plupart des processeurs, de deux registres délimitant le
domaine d’un processus : le registre de base et le registre
de limite. La protection est alors assurée par le matériel qui
compare les adresses émises par le processus à ces deux
registres.
Mais il faut éviter qu’un processus écrase une mémoire d’un
autre en écrivant dessus.
8. Techniques pour partager la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Même si on peut concevoir des applications qui
communiquent à travers un segment de mémoire
partagée. Dans ce cas on devra déclarer une zone
commune par une fonction spécifique, car la zone
mémoire d’un processus est protégée.
Mais il faut éviter qu’un processus écrase une mémoire
d’un autre en écrivant dessus.
9. Principe
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Avant d’implémenter une technique de gestion de la
mémoire centrale par va-et-vient, il est nécessaire de
connaître son état :
les zones libres et occupées
de disposer d’une stratégie d’allocation
enfin de procédures de libération
10. Techniques d’allocation de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Pour cela il y a des politiques de recherche et
d’occupation :
First-Fit : premier trou suffisant. Rapide.
Next-Fit : idem, mais recherche à partir de
l’emplacement précédent. Un peu moins bon.
Best-Fit : trou le plus petit possible. Moins performant.
Worst-Fit : trou le plus grand.
Quick-Fit : maintient de listes par tailles. Rapide pour la
recherche, lent pour la désallocation
11. Techniques d’allocation de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Pour cela il y a des politiques de recherche et
d’occupation :
First-Fit : premier trou suffisant. Rapide.
Next-Fit : idem, mais recherche à partir de
l’emplacement précédent. Un peu moins bon.
Best-Fit : trou le plus petit possible. Moins performant.
Worst-Fit : trou le plus grand.
Quick-Fit : maintient de listes par tailles. Rapide pour la
recherche, lent pour la désallocation
12. Techniques d’allocation de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Pour cela il y a des politiques de recherche et
d’occupation :
First-Fit : premier trou suffisant. Rapide.
Next-Fit : idem, mais recherche à partir de
l’emplacement précédent. Un peu moins bon.
Best-Fit : trou le plus petit possible. Moins performant.
Worst-Fit : trou le plus grand.
Quick-Fit : maintient de listes par tailles. Rapide pour la
recherche, lent pour la désallocation
13. Techniques d’allocation de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Pour cela il y a des politiques de recherche et
d’occupation :
First-Fit : premier trou suffisant. Rapide.
Next-Fit : idem, mais recherche à partir de
l’emplacement précédent. Un peu moins bon.
Best-Fit : trou le plus petit possible. Moins performant.
Worst-Fit : trou le plus grand.
Quick-Fit : maintient de listes par tailles. Rapide pour la
recherche, lent pour la désallocation
14. Techniques d’allocation de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Pour cela il y a des politiques de recherche et
d’occupation :
First-Fit : premier trou suffisant. Rapide.
Next-Fit : idem, mais recherche à partir de
l’emplacement précédent. Un peu moins bon.
Best-Fit : trou le plus petit possible. Moins performant.
Worst-Fit : trou le plus grand.
Quick-Fit : maintient de listes par tailles. Rapide pour la
recherche, lent pour la désallocation
15. Problème de la fragmentation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
A la longue , on trouve des emplacements qui sont vides,
mais ne pouvant pas accueillir d’autres fichiers.
On a plusieurs types de fragmentations.
1
Fragmentation externe : espace suffisant pour
l’allocation d’un nouveau processus, mais non contigu
2
Fragmentation interne : allocation volontaire de zones
inoccupées pour diminuer le travail de gestion de la
mémoire
16. Problème de la fragmentation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
A la longue , on trouve des emplacements qui sont vides,
mais ne pouvant pas accueillir d’autres fichiers.
On a plusieurs types de fragmentations.
1
Fragmentation externe : espace suffisant pour
l’allocation d’un nouveau processus, mais non contigu
2
Fragmentation interne : allocation volontaire de zones
inoccupées pour diminuer le travail de gestion de la
mémoire
17. Défragmentation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
1
Défragmentation de la mémoire par translation des
processus (code dynamique)
2
problème ==>Stratégies de compactage difficiles à
trouver, lenteur.
Et la pagination en allouant des zones de mémoire non
contigües pour un même processus : cela rend le processus
plus lent, mais cela vaut le coup.
Le système garde la trace des emplacements occupés de
la mémoire par l’intermédiaire d’une table de bits ou bien
d’une liste chaînée. La mémoire étant découpée en unités,
en blocs, d’allocation.
18. Défragmentation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
1
Défragmentation de la mémoire par translation des
processus (code dynamique)
2
problème ==>Stratégies de compactage difficiles à
trouver, lenteur.
Et la pagination en allouant des zones de mémoire non
contigües pour un même processus : cela rend le processus
plus lent, mais cela vaut le coup.
Le système garde la trace des emplacements occupés de
la mémoire par l’intermédiaire d’une table de bits ou bien
d’une liste chaînée. La mémoire étant découpée en unités,
en blocs, d’allocation.
19. La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La pagination permet d’avoir en mémoire un processus
dont les adresses sont non contiguës.
Pour réaliser ceci, on partage l’espace d’adressage du
processus et la mémoire physique en
Cadres de page : mémoire physique découpée en
zones de taille fixe
Adresse logique : numéro de page + déplacement
dans la page
Table de pages : liaison entre numéro de page et cadre
de page (une table par processus).On conserve
l’emplacement des pages par une table de
transcodage
Taille moyenne des pages : puissance de 2 entre 2 – 4
Ko
20. La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Cet implémentation a des attouts :
Pas de fragmentation externe, mais fragmentation
interne
Petites pages => moins de fragmentation
Grandes pages => commutation moins coûteuse
Impossible par définition d’accéder à une page
interdite Multiprogrammation Pagination Segmentation
Mécanismes de contrôle : pages (in)valides, en lecture,
écriture, exécution etc.
Implémentation du partage de la mémoire plus facile
21. La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Cet implémentation a des attouts :
Pas de fragmentation externe, mais fragmentation
interne
Petites pages => moins de fragmentation
Grandes pages => commutation moins coûteuse
Impossible par définition d’accéder à une page
interdite Multiprogrammation Pagination Segmentation
Mécanismes de contrôle : pages (in)valides, en lecture,
écriture, exécution etc.
Implémentation du partage de la mémoire plus facile
22. La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Cet implémentation a des attouts :
Pas de fragmentation externe, mais fragmentation
interne
Petites pages => moins de fragmentation
Grandes pages => commutation moins coûteuse
Impossible par définition d’accéder à une page
interdite Multiprogrammation Pagination Segmentation
Mécanismes de contrôle : pages (in)valides, en lecture,
écriture, exécution etc.
Implémentation du partage de la mémoire plus facile
23. La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Cet implémentation a des attouts :
Pas de fragmentation externe, mais fragmentation
interne
Petites pages => moins de fragmentation
Grandes pages => commutation moins coûteuse
Impossible par définition d’accéder à une page
interdite Multiprogrammation Pagination Segmentation
Mécanismes de contrôle : pages (in)valides, en lecture,
écriture, exécution etc.
Implémentation du partage de la mémoire plus facile
24. La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Cet implémentation a des attouts :
Pas de fragmentation externe, mais fragmentation
interne
Petites pages => moins de fragmentation
Grandes pages => commutation moins coûteuse
Impossible par définition d’accéder à une page
interdite Multiprogrammation Pagination Segmentation
Mécanismes de contrôle : pages (in)valides, en lecture,
écriture, exécution etc.
Implémentation du partage de la mémoire plus facile
25. La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Cet implémentation a des attouts :
Pas de fragmentation externe, mais fragmentation
interne
Petites pages => moins de fragmentation
Grandes pages => commutation moins coûteuse
Impossible par définition d’accéder à une page
interdite Multiprogrammation Pagination Segmentation
Mécanismes de contrôle : pages (in)valides, en lecture,
écriture, exécution etc.
Implémentation du partage de la mémoire plus facile
26. La segmentation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Alors que la pagination propose un espace d’adressage
plat et indifférencié, la segmentation partage les processus
en segments bien spécifiques. On peut ainsi avoir des
segments pour des procédures, pour la table de symboles,
pour le programme principal, etc. Ces segments peuvent
être relogeables et avoir pour origine un registre de base
propre au segment. La segmentation permet aussi le
partage, par exemple du code d’un éditeur entre plusieurs
processus. Ce partage porte alors sur un ou plusieurs
segments.
27. Le va-et-vient et Swap sous Linux
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Le va-et-vient est mis en œuvre lorsque tous les processus
ne peuvent pas tenir simultanément en mémoire. On doit
alors en déplacer temporairement certains sur une
mémoire provisoire, en général, une partie réservée du
disque (swap-area ou backing store).
Quand un processus est déchargé de la mémoire
centrale, on lui recherche une place
gérées de la même manière que la mémoire centrale
peut aussi être allouée une fois pour toute au début de
l’exécution
Le système exécute pendant un certain quantum de
temps les processus en mémoire puis déplace un de
ces processus au profit d’un de ceux en attente dans la
mémoire provisoire. L’algorithme de remplacement
peut être le tourniquet
28. Le va-et-vient et Swap sous Linux
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Le va-et-vient est mis en œuvre lorsque tous les processus
ne peuvent pas tenir simultanément en mémoire. On doit
alors en déplacer temporairement certains sur une
mémoire provisoire, en général, une partie réservée du
disque (swap-area ou backing store).
Quand un processus est déchargé de la mémoire
centrale, on lui recherche une place
gérées de la même manière que la mémoire centrale
peut aussi être allouée une fois pour toute au début de
l’exécution
Le système exécute pendant un certain quantum de
temps les processus en mémoire puis déplace un de
ces processus au profit d’un de ceux en attente dans la
mémoire provisoire. L’algorithme de remplacement
peut être le tourniquet
29. Le va-et-vient et Swap sous Linux
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Le va-et-vient est mis en œuvre lorsque tous les processus
ne peuvent pas tenir simultanément en mémoire. On doit
alors en déplacer temporairement certains sur une
mémoire provisoire, en général, une partie réservée du
disque (swap-area ou backing store).
Quand un processus est déchargé de la mémoire
centrale, on lui recherche une place
gérées de la même manière que la mémoire centrale
peut aussi être allouée une fois pour toute au début de
l’exécution
Le système exécute pendant un certain quantum de
temps les processus en mémoire puis déplace un de
ces processus au profit d’un de ceux en attente dans la
mémoire provisoire. L’algorithme de remplacement
peut être le tourniquet
30. Le va-et-vient et Swap sous Linux
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Le va-et-vient est mis en œuvre lorsque tous les processus
ne peuvent pas tenir simultanément en mémoire. On doit
alors en déplacer temporairement certains sur une
mémoire provisoire, en général, une partie réservée du
disque (swap-area ou backing store).
Quand un processus est déchargé de la mémoire
centrale, on lui recherche une place
gérées de la même manière que la mémoire centrale
peut aussi être allouée une fois pour toute au début de
l’exécution
Le système exécute pendant un certain quantum de
temps les processus en mémoire puis déplace un de
ces processus au profit d’un de ceux en attente dans la
mémoire provisoire. L’algorithme de remplacement
peut être le tourniquet
31. Listing 1 – Exemple de commandes bash pour céer une partition swap sur linux de 1G et on le monte. bash –version 4.2.25
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly 1
Joelle
2
EMERUSABE
Baptiste
3
#!/bin/bash
# creation du fichier "ikintu" de 1G
4
5
dd if=/dev/zero of=/ikintu bs=1024 count=1048576
6
7
# transformation de "ikintu" en un fichier swap.
8
9
mkswap /ikintu
10
11
# Pour l’activer.
12
13
swapon /ikintu
32. La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La mémoire virtuelle
permet d’exécuter des programmes dont la taille
excède la taille de la mémoire réelle.
on découpe (on « pagine ») les processus ainsi que la
mémoire réelle en pages de quelques kilo-octets (1, 2
ou 4 ko généralement).
réside sur le disque
L’encombrement total du processus constitue l’espace
d’adressage ou la mémoire virtuelle
on ne charge qu’un sous-ensemble de pages en
mémoire appelé l’espace physique
une adresse est transcodée grâce à une table, pour lui
faire correspondre son équivalent en mémoire
physique. C
effectué par des circuits matériels de gestion : Memory
Management Unit (MMU). Si cette adresse correspond à
une adresse en mémoire physique, le MMU transmet sur
le bus l’adresse réelle, sinon il se produit un défaut de
33. La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La mémoire virtuelle
permet d’exécuter des programmes dont la taille
excède la taille de la mémoire réelle.
on découpe (on « pagine ») les processus ainsi que la
mémoire réelle en pages de quelques kilo-octets (1, 2
ou 4 ko généralement).
réside sur le disque
L’encombrement total du processus constitue l’espace
d’adressage ou la mémoire virtuelle
on ne charge qu’un sous-ensemble de pages en
mémoire appelé l’espace physique
une adresse est transcodée grâce à une table, pour lui
faire correspondre son équivalent en mémoire
physique. C
effectué par des circuits matériels de gestion : Memory
Management Unit (MMU). Si cette adresse correspond à
une adresse en mémoire physique, le MMU transmet sur
le bus l’adresse réelle, sinon il se produit un défaut de
34. La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La mémoire virtuelle
permet d’exécuter des programmes dont la taille
excède la taille de la mémoire réelle.
on découpe (on « pagine ») les processus ainsi que la
mémoire réelle en pages de quelques kilo-octets (1, 2
ou 4 ko généralement).
réside sur le disque
L’encombrement total du processus constitue l’espace
d’adressage ou la mémoire virtuelle
on ne charge qu’un sous-ensemble de pages en
mémoire appelé l’espace physique
une adresse est transcodée grâce à une table, pour lui
faire correspondre son équivalent en mémoire
physique. C
effectué par des circuits matériels de gestion : Memory
Management Unit (MMU). Si cette adresse correspond à
une adresse en mémoire physique, le MMU transmet sur
le bus l’adresse réelle, sinon il se produit un défaut de
35. La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La mémoire virtuelle
permet d’exécuter des programmes dont la taille
excède la taille de la mémoire réelle.
on découpe (on « pagine ») les processus ainsi que la
mémoire réelle en pages de quelques kilo-octets (1, 2
ou 4 ko généralement).
réside sur le disque
L’encombrement total du processus constitue l’espace
d’adressage ou la mémoire virtuelle
on ne charge qu’un sous-ensemble de pages en
mémoire appelé l’espace physique
une adresse est transcodée grâce à une table, pour lui
faire correspondre son équivalent en mémoire
physique. C
effectué par des circuits matériels de gestion : Memory
Management Unit (MMU). Si cette adresse correspond à
une adresse en mémoire physique, le MMU transmet sur
le bus l’adresse réelle, sinon il se produit un défaut de
36. La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La mémoire virtuelle
permet d’exécuter des programmes dont la taille
excède la taille de la mémoire réelle.
on découpe (on « pagine ») les processus ainsi que la
mémoire réelle en pages de quelques kilo-octets (1, 2
ou 4 ko généralement).
réside sur le disque
L’encombrement total du processus constitue l’espace
d’adressage ou la mémoire virtuelle
on ne charge qu’un sous-ensemble de pages en
mémoire appelé l’espace physique
une adresse est transcodée grâce à une table, pour lui
faire correspondre son équivalent en mémoire
physique. C
effectué par des circuits matériels de gestion : Memory
Management Unit (MMU). Si cette adresse correspond à
une adresse en mémoire physique, le MMU transmet sur
le bus l’adresse réelle, sinon il se produit un défaut de
37. La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La mémoire virtuelle
permet d’exécuter des programmes dont la taille
excède la taille de la mémoire réelle.
on découpe (on « pagine ») les processus ainsi que la
mémoire réelle en pages de quelques kilo-octets (1, 2
ou 4 ko généralement).
réside sur le disque
L’encombrement total du processus constitue l’espace
d’adressage ou la mémoire virtuelle
on ne charge qu’un sous-ensemble de pages en
mémoire appelé l’espace physique
une adresse est transcodée grâce à une table, pour lui
faire correspondre son équivalent en mémoire
physique. C
effectué par des circuits matériels de gestion : Memory
Management Unit (MMU). Si cette adresse correspond à
une adresse en mémoire physique, le MMU transmet sur
le bus l’adresse réelle, sinon il se produit un défaut de
38. La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La mémoire virtuelle
permet d’exécuter des programmes dont la taille
excède la taille de la mémoire réelle.
on découpe (on « pagine ») les processus ainsi que la
mémoire réelle en pages de quelques kilo-octets (1, 2
ou 4 ko généralement).
réside sur le disque
L’encombrement total du processus constitue l’espace
d’adressage ou la mémoire virtuelle
on ne charge qu’un sous-ensemble de pages en
mémoire appelé l’espace physique
une adresse est transcodée grâce à une table, pour lui
faire correspondre son équivalent en mémoire
physique. C
effectué par des circuits matériels de gestion : Memory
Management Unit (MMU). Si cette adresse correspond à
une adresse en mémoire physique, le MMU transmet sur
le bus l’adresse réelle, sinon il se produit un défaut de
39. L’algorithme de remplacement de page
Gestion de la
mémoire dans
un système
d’exploitation
1
L’algorithme de remplacement de page optimal
consiste à choisir comme victime, la page qui sera
appelée le plus tard possible. On ne peut
malheureusement pas implémenter cet algorithme,
mais on essaye de l’approximer le mieux possible, avec
de résultats qui ont une différence de moins de 1%
avec l’algorithme optimal.
2
La technique FirstIn-FirstOut est assez facile à
implémenter. Elle consiste à choisir comme victime, la
page la plus anciennement chargée.
3
L’algorithme de remplacement de la page la moins
récemment utilisée (Least Recently Used) est l’un des
plus efficaces.
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
On doit notamment ajouter au tableau une colonne de
compteurs
40. Libération de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
La libération se produit quand un processus est évacué de
la mémoire. On marque alors le bloc à libre et on le
fusionne éventuellement avec des blocs adjacents.
on déplace les processus, par exemple, vers le bas de la
mémoire et on les range l’un après l’autre de manière
contiguë. On construit alors un seul bloc libre dans le haut
de la mémoire ==> opération est coûteuse et nécessite
parfois des circuits spéciaux.
41. La récupération de mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Par ailleurs, une fois qu’un objet ou une zone a été
utilisé, le programmeur système doit récupère la
mémoire « à la main » par une libération du pointeur sur
cette zone – free(). Ceci est une source d’erreurs car on
oublie parfois cette opération. Si on alloue dans une
fonction, il n’y a plus moyen d’accéder au pointeur
après le retour de la fonction. Le bloc de mémoire est
alors perdu et inutilisable. On a une « fuite de mémoire »
– memory leak.
Certains langages ou systèmes incorporent la
récupération automatique de mémoire – garbage
collection. Ils libèrent ainsi le programmeur de cette
tâche. C’est le cas de Java. Il est alors très facile
d’éliminer immédiatement une zone par l’affectation
objet = null.
Sans cela, le récupérateur doit déterminer tout seul
qu’une zone n’a plus de référence dans la suite du
programme.
42. La récupération de mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Par ailleurs, une fois qu’un objet ou une zone a été
utilisé, le programmeur système doit récupère la
mémoire « à la main » par une libération du pointeur sur
cette zone – free(). Ceci est une source d’erreurs car on
oublie parfois cette opération. Si on alloue dans une
fonction, il n’y a plus moyen d’accéder au pointeur
après le retour de la fonction. Le bloc de mémoire est
alors perdu et inutilisable. On a une « fuite de mémoire »
– memory leak.
Certains langages ou systèmes incorporent la
récupération automatique de mémoire – garbage
collection. Ils libèrent ainsi le programmeur de cette
tâche. C’est le cas de Java. Il est alors très facile
d’éliminer immédiatement une zone par l’affectation
objet = null.
Sans cela, le récupérateur doit déterminer tout seul
qu’une zone n’a plus de référence dans la suite du
programme.
43. La récupération de mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRIRA Kelly
Joelle
EMERUSABE
Baptiste
Par ailleurs, une fois qu’un objet ou une zone a été
utilisé, le programmeur système doit récupère la
mémoire « à la main » par une libération du pointeur sur
cette zone – free(). Ceci est une source d’erreurs car on
oublie parfois cette opération. Si on alloue dans une
fonction, il n’y a plus moyen d’accéder au pointeur
après le retour de la fonction. Le bloc de mémoire est
alors perdu et inutilisable. On a une « fuite de mémoire »
– memory leak.
Certains langages ou systèmes incorporent la
récupération automatique de mémoire – garbage
collection. Ils libèrent ainsi le programmeur de cette
tâche. C’est le cas de Java. Il est alors très facile
d’éliminer immédiatement une zone par l’affectation
objet = null.
Sans cela, le récupérateur doit déterminer tout seul
qu’une zone n’a plus de référence dans la suite du
programme.