43
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

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

  • Upload
    imitwe

  • View
    267

  • Download
    7

Embed Size (px)

DESCRIPTION

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

Citation preview

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Gestion de la mémoire dans unsystème d’exploitation

RUGANO Allan StockmanARAKAZA Alexis

BARUMWETE MariusGATORE SINIGIRIRA Kelly Joelle

EMERUSABE Baptiste

Faculté des Sciences (II Lic Math)

30 août 2013

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Introduction

La gestion de la mémoire permet de transférer lesprogrammes et les données nécessaires à la création desprocessus, 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 etlibres de la mémoire ainsi que gérer les transferts entre lesmémoires principale et secondaire.Dans les systèmes multi-utilisateurs, par exemple, on doitinterdire à un utilisateur d’accéder n’importe comment aunoyau du système ou aux autres programmes desutilisateurs.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Monoprogrammation

La monoprogrammationne permet qu’à un seul processus utilisateur d’êtreexécuté.n’est plus utilisée que dans les micro-ordinateurs.On trouve alors en mémoire, par exemple dans le casde MS-DOS : le système en mémoire basse, les pilotesde périphériques en mémoire haute (dans une zoneallant de 640 ko à 1 Mo) et un programme utilisateurentre les deux

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Mutiprogrammation

autorise l’exécution de plusieurs processus indépendantà la foispermet d’optimiser le taux d’utilisation du processeur enréduisant notamment les attentes sur des entrées-sortiesimplique le séjour de plusieurs programmes en mêmetemps en mémoire

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Quelques principes

Un compilateur transforme un programme en unmodule objet représentant la traduction des instructionsen C, en langage machine. Le code produit est engénéral relogeable, commençant à l’adresse 00000 etpouvant se translater à n’importe quel endroit de lamémoire en lui donnant comme référence initiale leregistre de base.Les adresses représentent alors le décalage parrapport à ce registre.Pour effectuer le chargement, le système alloue unespace de mémoire libre et il y place le processus. Illibérera cet emplacement une fois le programmeterminé.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Techniques pour partager le mémoire

Recouvrements : (overlays) charger un processus partranches de code indépendantes.Le programmeurpeut, dans ce cas, mettre en œuvre une stratégie derecouvrement (overlay) consistant à découper unprogramme important en modules. Niveau utilisateur.Chargement dynamique : charger le code nécessaireuniquement quand on en a besoin. Niveau utilisateur.

Édition de liens dynamique : bibliothèques partagées.Swapping : déplacement de processus entre mémoireet mémoire auxiliaire (disques). Coûteux encommutation.

Ceci est cependant très fastidieux et nécessite, pourchaque nouveau programme, un redécoupage.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Techniques pour partager le mémoire

Pour assurer une protection fondamentale, on dispose, surla plupart des processeurs, de deux registres délimitant ledomaine d’un processus : le registre de base et le registrede limite. La protection est alors assurée par le matériel quicompare les adresses émises par le processus à ces deuxregistres.Mais il faut éviter qu’un processus écrase une mémoire d’unautre en écrivant dessus.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Techniques pour partager la mémoire

Même si on peut concevoir des applications quicommuniquent à travers un segment de mémoirepartagée. Dans ce cas on devra déclarer une zonecommune par une fonction spécifique, car la zonemémoire d’un processus est protégée.Mais il faut éviter qu’un processus écrase une mémoired’un autre en écrivant dessus.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Principe

Avant d’implémenter une technique de gestion de lamémoire centrale par va-et-vient, il est nécessaire deconnaître son état :

les zones libres et occupéesde disposer d’une stratégie d’allocationenfin de procédures de libération

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Techniques d’allocation de la mémoire

Pour cela il y a des politiques de recherche etd’occupation :

First-Fit : premier trou suffisant. Rapide.Next-Fit : idem, mais recherche à partir del’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 larecherche, lent pour la désallocation

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Techniques d’allocation de la mémoire

Pour cela il y a des politiques de recherche etd’occupation :

First-Fit : premier trou suffisant. Rapide.Next-Fit : idem, mais recherche à partir del’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 larecherche, lent pour la désallocation

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Techniques d’allocation de la mémoire

Pour cela il y a des politiques de recherche etd’occupation :

First-Fit : premier trou suffisant. Rapide.Next-Fit : idem, mais recherche à partir del’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 larecherche, lent pour la désallocation

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Techniques d’allocation de la mémoire

Pour cela il y a des politiques de recherche etd’occupation :

First-Fit : premier trou suffisant. Rapide.Next-Fit : idem, mais recherche à partir del’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 larecherche, lent pour la désallocation

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Techniques d’allocation de la mémoire

Pour cela il y a des politiques de recherche etd’occupation :

First-Fit : premier trou suffisant. Rapide.Next-Fit : idem, mais recherche à partir del’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 larecherche, lent pour la désallocation

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Problème de la fragmentation

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 pourl’allocation d’un nouveau processus, mais non contigu

2 Fragmentation interne : allocation volontaire de zonesinoccupées pour diminuer le travail de gestion de lamémoire

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Problème de la fragmentation

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 pourl’allocation d’un nouveau processus, mais non contigu

2 Fragmentation interne : allocation volontaire de zonesinoccupées pour diminuer le travail de gestion de lamémoire

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Défragmentation

1 Défragmentation de la mémoire par translation desprocessus (code dynamique)

2 problème ==>Stratégies de compactage difficiles àtrouver, lenteur.

Et la pagination en allouant des zones de mémoire noncontigües pour un même processus : cela rend le processusplus lent, mais cela vaut le coup.Le système garde la trace des emplacements occupés dela mémoire par l’intermédiaire d’une table de bits ou biend’une liste chaînée. La mémoire étant découpée en unités,en blocs, d’allocation.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Défragmentation

1 Défragmentation de la mémoire par translation desprocessus (code dynamique)

2 problème ==>Stratégies de compactage difficiles àtrouver, lenteur.

Et la pagination en allouant des zones de mémoire noncontigües pour un même processus : cela rend le processusplus lent, mais cela vaut le coup.Le système garde la trace des emplacements occupés dela mémoire par l’intermédiaire d’une table de bits ou biend’une liste chaînée. La mémoire étant découpée en unités,en blocs, d’allocation.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La pagination de la mémoire

La pagination permet d’avoir en mémoire un processusdont les adresses sont non contiguës.Pour réaliser ceci, on partage l’espace d’adressage duprocessus et la mémoire physique en

Cadres de page : mémoire physique découpée enzones de taille fixeAdresse logique : numéro de page + déplacementdans la pageTable de pages : liaison entre numéro de page et cadrede page (une table par processus).On conservel’emplacement des pages par une table detranscodageTaille moyenne des pages : puissance de 2 entre 2 – 4Ko

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La pagination de la mémoire

Cet implémentation a des attouts :Pas de fragmentation externe, mais fragmentationinternePetites pages => moins de fragmentationGrandes pages => commutation moins coûteuseImpossible par définition d’accéder à une pageinterdite Multiprogrammation Pagination SegmentationMécanismes de contrôle : pages (in)valides, en lecture,écriture, exécution etc.Implémentation du partage de la mémoire plus facile

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La pagination de la mémoire

Cet implémentation a des attouts :Pas de fragmentation externe, mais fragmentationinternePetites pages => moins de fragmentationGrandes pages => commutation moins coûteuseImpossible par définition d’accéder à une pageinterdite Multiprogrammation Pagination SegmentationMécanismes de contrôle : pages (in)valides, en lecture,écriture, exécution etc.Implémentation du partage de la mémoire plus facile

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La pagination de la mémoire

Cet implémentation a des attouts :Pas de fragmentation externe, mais fragmentationinternePetites pages => moins de fragmentationGrandes pages => commutation moins coûteuseImpossible par définition d’accéder à une pageinterdite Multiprogrammation Pagination SegmentationMécanismes de contrôle : pages (in)valides, en lecture,écriture, exécution etc.Implémentation du partage de la mémoire plus facile

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La pagination de la mémoire

Cet implémentation a des attouts :Pas de fragmentation externe, mais fragmentationinternePetites pages => moins de fragmentationGrandes pages => commutation moins coûteuseImpossible par définition d’accéder à une pageinterdite Multiprogrammation Pagination SegmentationMécanismes de contrôle : pages (in)valides, en lecture,écriture, exécution etc.Implémentation du partage de la mémoire plus facile

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La pagination de la mémoire

Cet implémentation a des attouts :Pas de fragmentation externe, mais fragmentationinternePetites pages => moins de fragmentationGrandes pages => commutation moins coûteuseImpossible par définition d’accéder à une pageinterdite Multiprogrammation Pagination SegmentationMécanismes de contrôle : pages (in)valides, en lecture,écriture, exécution etc.Implémentation du partage de la mémoire plus facile

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La pagination de la mémoire

Cet implémentation a des attouts :Pas de fragmentation externe, mais fragmentationinternePetites pages => moins de fragmentationGrandes pages => commutation moins coûteuseImpossible par définition d’accéder à une pageinterdite Multiprogrammation Pagination SegmentationMécanismes de contrôle : pages (in)valides, en lecture,écriture, exécution etc.Implémentation du partage de la mémoire plus facile

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La segmentation

Alors que la pagination propose un espace d’adressageplat et indifférencié, la segmentation partage les processusen segments bien spécifiques. On peut ainsi avoir dessegments 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 basepropre au segment. La segmentation permet aussi lepartage, par exemple du code d’un éditeur entre plusieursprocessus. Ce partage porte alors sur un ou plusieurssegments.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Le va-et-vient et Swap sous Linux

Le va-et-vient est mis en œuvre lorsque tous les processusne peuvent pas tenir simultanément en mémoire. On doitalors en déplacer temporairement certains sur unemémoire provisoire, en général, une partie réservée dudisque (swap-area ou backing store).

Quand un processus est déchargé de la mémoirecentrale, on lui recherche une placegérées de la même manière que la mémoire centralepeut aussi être allouée une fois pour toute au début del’exécutionLe système exécute pendant un certain quantum detemps les processus en mémoire puis déplace un deces processus au profit d’un de ceux en attente dans lamémoire provisoire. L’algorithme de remplacementpeut être le tourniquet

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Le va-et-vient et Swap sous Linux

Le va-et-vient est mis en œuvre lorsque tous les processusne peuvent pas tenir simultanément en mémoire. On doitalors en déplacer temporairement certains sur unemémoire provisoire, en général, une partie réservée dudisque (swap-area ou backing store).

Quand un processus est déchargé de la mémoirecentrale, on lui recherche une placegérées de la même manière que la mémoire centralepeut aussi être allouée une fois pour toute au début del’exécutionLe système exécute pendant un certain quantum detemps les processus en mémoire puis déplace un deces processus au profit d’un de ceux en attente dans lamémoire provisoire. L’algorithme de remplacementpeut être le tourniquet

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Le va-et-vient et Swap sous Linux

Le va-et-vient est mis en œuvre lorsque tous les processusne peuvent pas tenir simultanément en mémoire. On doitalors en déplacer temporairement certains sur unemémoire provisoire, en général, une partie réservée dudisque (swap-area ou backing store).

Quand un processus est déchargé de la mémoirecentrale, on lui recherche une placegérées de la même manière que la mémoire centralepeut aussi être allouée une fois pour toute au début del’exécutionLe système exécute pendant un certain quantum detemps les processus en mémoire puis déplace un deces processus au profit d’un de ceux en attente dans lamémoire provisoire. L’algorithme de remplacementpeut être le tourniquet

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Le va-et-vient et Swap sous Linux

Le va-et-vient est mis en œuvre lorsque tous les processusne peuvent pas tenir simultanément en mémoire. On doitalors en déplacer temporairement certains sur unemémoire provisoire, en général, une partie réservée dudisque (swap-area ou backing store).

Quand un processus est déchargé de la mémoirecentrale, on lui recherche une placegérées de la même manière que la mémoire centralepeut aussi être allouée une fois pour toute au début del’exécutionLe système exécute pendant un certain quantum detemps les processus en mémoire puis déplace un deces processus au profit d’un de ceux en attente dans lamémoire provisoire. L’algorithme de remplacementpeut être le tourniquet

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Listing 1 – Exemple de commandes bash pour céer une parti-tion swap sur linux de 1G et on le monte. bash –version 4.2.25

1 #!/bin/bash2

3 # creation du fichier "ikintu" de 1G4

5 dd if=/dev/zero of=/ikintu bs=1024 count=10485766

7 # transformation de "ikintu" en un fichier swap.8

9 mkswap /ikintu10

11 # Pour l’activer.12

13 swapon /ikintu

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La mémoire virtuelle

La mémoire virtuellepermet d’exécuter des programmes dont la tailleexcède la taille de la mémoire réelle.on découpe (on « pagine ») les processus ainsi que lamémoire réelle en pages de quelques kilo-octets (1, 2ou 4 ko généralement).réside sur le disqueL’encombrement total du processus constitue l’espaced’adressage ou la mémoire virtuelleon ne charge qu’un sous-ensemble de pages enmémoire appelé l’espace physiqueune adresse est transcodée grâce à une table, pour luifaire correspondre son équivalent en mémoirephysique. Ceffectué par des circuits matériels de gestion : MemoryManagement Unit (MMU). Si cette adresse correspond àune adresse en mémoire physique, le MMU transmet surle bus l’adresse réelle, sinon il se produit un défaut depage.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La mémoire virtuelle

La mémoire virtuellepermet d’exécuter des programmes dont la tailleexcède la taille de la mémoire réelle.on découpe (on « pagine ») les processus ainsi que lamémoire réelle en pages de quelques kilo-octets (1, 2ou 4 ko généralement).réside sur le disqueL’encombrement total du processus constitue l’espaced’adressage ou la mémoire virtuelleon ne charge qu’un sous-ensemble de pages enmémoire appelé l’espace physiqueune adresse est transcodée grâce à une table, pour luifaire correspondre son équivalent en mémoirephysique. Ceffectué par des circuits matériels de gestion : MemoryManagement Unit (MMU). Si cette adresse correspond àune adresse en mémoire physique, le MMU transmet surle bus l’adresse réelle, sinon il se produit un défaut depage.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La mémoire virtuelle

La mémoire virtuellepermet d’exécuter des programmes dont la tailleexcède la taille de la mémoire réelle.on découpe (on « pagine ») les processus ainsi que lamémoire réelle en pages de quelques kilo-octets (1, 2ou 4 ko généralement).réside sur le disqueL’encombrement total du processus constitue l’espaced’adressage ou la mémoire virtuelleon ne charge qu’un sous-ensemble de pages enmémoire appelé l’espace physiqueune adresse est transcodée grâce à une table, pour luifaire correspondre son équivalent en mémoirephysique. Ceffectué par des circuits matériels de gestion : MemoryManagement Unit (MMU). Si cette adresse correspond àune adresse en mémoire physique, le MMU transmet surle bus l’adresse réelle, sinon il se produit un défaut depage.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La mémoire virtuelle

La mémoire virtuellepermet d’exécuter des programmes dont la tailleexcède la taille de la mémoire réelle.on découpe (on « pagine ») les processus ainsi que lamémoire réelle en pages de quelques kilo-octets (1, 2ou 4 ko généralement).réside sur le disqueL’encombrement total du processus constitue l’espaced’adressage ou la mémoire virtuelleon ne charge qu’un sous-ensemble de pages enmémoire appelé l’espace physiqueune adresse est transcodée grâce à une table, pour luifaire correspondre son équivalent en mémoirephysique. Ceffectué par des circuits matériels de gestion : MemoryManagement Unit (MMU). Si cette adresse correspond àune adresse en mémoire physique, le MMU transmet surle bus l’adresse réelle, sinon il se produit un défaut depage.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La mémoire virtuelle

La mémoire virtuellepermet d’exécuter des programmes dont la tailleexcède la taille de la mémoire réelle.on découpe (on « pagine ») les processus ainsi que lamémoire réelle en pages de quelques kilo-octets (1, 2ou 4 ko généralement).réside sur le disqueL’encombrement total du processus constitue l’espaced’adressage ou la mémoire virtuelleon ne charge qu’un sous-ensemble de pages enmémoire appelé l’espace physiqueune adresse est transcodée grâce à une table, pour luifaire correspondre son équivalent en mémoirephysique. Ceffectué par des circuits matériels de gestion : MemoryManagement Unit (MMU). Si cette adresse correspond àune adresse en mémoire physique, le MMU transmet surle bus l’adresse réelle, sinon il se produit un défaut depage.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La mémoire virtuelle

La mémoire virtuellepermet d’exécuter des programmes dont la tailleexcède la taille de la mémoire réelle.on découpe (on « pagine ») les processus ainsi que lamémoire réelle en pages de quelques kilo-octets (1, 2ou 4 ko généralement).réside sur le disqueL’encombrement total du processus constitue l’espaced’adressage ou la mémoire virtuelleon ne charge qu’un sous-ensemble de pages enmémoire appelé l’espace physiqueune adresse est transcodée grâce à une table, pour luifaire correspondre son équivalent en mémoirephysique. Ceffectué par des circuits matériels de gestion : MemoryManagement Unit (MMU). Si cette adresse correspond àune adresse en mémoire physique, le MMU transmet surle bus l’adresse réelle, sinon il se produit un défaut depage.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La mémoire virtuelle

La mémoire virtuellepermet d’exécuter des programmes dont la tailleexcède la taille de la mémoire réelle.on découpe (on « pagine ») les processus ainsi que lamémoire réelle en pages de quelques kilo-octets (1, 2ou 4 ko généralement).réside sur le disqueL’encombrement total du processus constitue l’espaced’adressage ou la mémoire virtuelleon ne charge qu’un sous-ensemble de pages enmémoire appelé l’espace physiqueune adresse est transcodée grâce à une table, pour luifaire correspondre son équivalent en mémoirephysique. Ceffectué par des circuits matériels de gestion : MemoryManagement Unit (MMU). Si cette adresse correspond àune adresse en mémoire physique, le MMU transmet surle bus l’adresse réelle, sinon il se produit un défaut depage.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

L’algorithme de remplacement de page

1 L’algorithme de remplacement de page optimalconsiste à choisir comme victime, la page qui seraappelée le plus tard possible. On ne peutmalheureusement pas implémenter cet algorithme,mais on essaye de l’approximer le mieux possible, avecde 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, lapage la plus anciennement chargée.

3 L’algorithme de remplacement de la page la moinsrécemment utilisée (Least Recently Used) est l’un desplus efficaces.

On doit notamment ajouter au tableau une colonne decompteurs

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

Libération de la mémoire

La libération se produit quand un processus est évacué dela mémoire. On marque alors le bloc à libre et on lefusionne éventuellement avec des blocs adjacents.on déplace les processus, par exemple, vers le bas de lamémoire et on les range l’un après l’autre de manièrecontiguë. On construit alors un seul bloc libre dans le hautde la mémoire ==> opération est coûteuse et nécessiteparfois des circuits spéciaux.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La récupération de mémoire

Par ailleurs, une fois qu’un objet ou une zone a étéutilisé, le programmeur système doit récupère lamémoire « à la main » par une libération du pointeur surcette zone – free(). Ceci est une source d’erreurs car onoublie parfois cette opération. Si on alloue dans unefonction, il n’y a plus moyen d’accéder au pointeuraprès le retour de la fonction. Le bloc de mémoire estalors perdu et inutilisable. On a une « fuite de mémoire »– memory leak.Certains langages ou systèmes incorporent larécupération automatique de mémoire – garbagecollection. Ils libèrent ainsi le programmeur de cettetâche. C’est le cas de Java. Il est alors très faciled’éliminer immédiatement une zone par l’affectationobjet = null.Sans cela, le récupérateur doit déterminer tout seulqu’une zone n’a plus de référence dans la suite duprogramme.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La récupération de mémoire

Par ailleurs, une fois qu’un objet ou une zone a étéutilisé, le programmeur système doit récupère lamémoire « à la main » par une libération du pointeur surcette zone – free(). Ceci est une source d’erreurs car onoublie parfois cette opération. Si on alloue dans unefonction, il n’y a plus moyen d’accéder au pointeuraprès le retour de la fonction. Le bloc de mémoire estalors perdu et inutilisable. On a une « fuite de mémoire »– memory leak.Certains langages ou systèmes incorporent larécupération automatique de mémoire – garbagecollection. Ils libèrent ainsi le programmeur de cettetâche. C’est le cas de Java. Il est alors très faciled’éliminer immédiatement une zone par l’affectationobjet = null.Sans cela, le récupérateur doit déterminer tout seulqu’une zone n’a plus de référence dans la suite duprogramme.

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

Gestion de lamémoire dans

un systèmed’exploitation

RUGANO AllanStockman

ARAKAZA AlexisBARUMWETE

MariusGATORE

SINIGIRIRA KellyJoelle

EMERUSABEBaptiste

La récupération de mémoire

Par ailleurs, une fois qu’un objet ou une zone a étéutilisé, le programmeur système doit récupère lamémoire « à la main » par une libération du pointeur surcette zone – free(). Ceci est une source d’erreurs car onoublie parfois cette opération. Si on alloue dans unefonction, il n’y a plus moyen d’accéder au pointeuraprès le retour de la fonction. Le bloc de mémoire estalors perdu et inutilisable. On a une « fuite de mémoire »– memory leak.Certains langages ou systèmes incorporent larécupération automatique de mémoire – garbagecollection. Ils libèrent ainsi le programmeur de cettetâche. C’est le cas de Java. Il est alors très faciled’éliminer immédiatement une zone par l’affectationobjet = null.Sans cela, le récupérateur doit déterminer tout seulqu’une zone n’a plus de référence dans la suite duprogramme.