Your SlideShare is downloading. ×
0
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Gestion de la Memoire dans un Système d'exploitation
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

441

Published on

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

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

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
441
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×