Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE
SINIGIRI...
Introduction
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GA...
Monoprogrammation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Mari...
Mutiprogrammation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Mari...
Quelques principes
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Mar...
Techniques pour partager le mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Ale...
Techniques pour partager le mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Ale...
Techniques pour partager la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Ale...
Principe
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius
GATORE...
Techniques d’allocation de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA A...
Techniques d’allocation de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA A...
Techniques d’allocation de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA A...
Techniques d’allocation de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA A...
Techniques d’allocation de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA A...
Problème de la fragmentation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BAR...
Problème de la fragmentation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BAR...
Défragmentation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius...
Défragmentation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius...
La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARU...
La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARU...
La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARU...
La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARU...
La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARU...
La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARU...
La pagination de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARU...
La segmentation
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
Marius...
Le va-et-vient et Swap sous Linux
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexi...
Le va-et-vient et Swap sous Linux
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexi...
Le va-et-vient et Swap sous Linux
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexi...
Le va-et-vient et Swap sous Linux
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexi...
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

G...
La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
M...
La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
M...
La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
M...
La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
M...
La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
M...
La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
M...
La mémoire virtuelle
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWETE
M...
L’algorithme de remplacement de page
Gestion de la
mémoire dans
un système
d’exploitation

1

L’algorithme de remplacement...
Libération de la mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUMWE...
La récupération de mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUM...
La récupération de mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUM...
La récupération de mémoire
Gestion de la
mémoire dans
un système
d’exploitation
RUGANO Allan
Stockman
ARAKAZA Alexis
BARUM...
Prochain SlideShare
Chargement dans…5
×

Gestion de la Memoire dans un Système d'exploitation

1 281 vues

Publié le

Gestion de la Memoire dans un Système d'exploitation.
Projets fait à l'Université du Burundi

Publié dans : Formation
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 281
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
53
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Gestion de la Memoire dans un Système d'exploitation

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×