SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
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
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.
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
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
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é.
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.
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.
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.
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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.

Contenu connexe

Tendances

BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 
Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources confluent
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidAmal Abid
 
Continuous Go Profiling & Observability
Continuous Go Profiling & ObservabilityContinuous Go Profiling & Observability
Continuous Go Profiling & ObservabilityScyllaDB
 
Tuning and Debugging in Apache Spark
Tuning and Debugging in Apache SparkTuning and Debugging in Apache Spark
Tuning and Debugging in Apache SparkDatabricks
 
Systèmes d'Exploitation - chp5-gestion fichiers
Systèmes d'Exploitation - chp5-gestion fichiersSystèmes d'Exploitation - chp5-gestion fichiers
Systèmes d'Exploitation - chp5-gestion fichiersLilia Sfaxi
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 
Systèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusSystèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusLilia Sfaxi
 
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022HostedbyConfluent
 
Deep Dive: Memory Management in Apache Spark
Deep Dive: Memory Management in Apache SparkDeep Dive: Memory Management in Apache Spark
Deep Dive: Memory Management in Apache SparkDatabricks
 
Apache kafka 관리와 모니터링
Apache kafka 관리와 모니터링Apache kafka 관리와 모니터링
Apache kafka 관리와 모니터링JANGWONSEO4
 
Scaling Machine Learning with Apache Spark
Scaling Machine Learning with Apache SparkScaling Machine Learning with Apache Spark
Scaling Machine Learning with Apache SparkDatabricks
 
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConAnatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConJérôme Petazzoni
 
USENIX ATC 2017: Visualizing Performance with Flame Graphs
USENIX ATC 2017: Visualizing Performance with Flame GraphsUSENIX ATC 2017: Visualizing Performance with Flame Graphs
USENIX ATC 2017: Visualizing Performance with Flame GraphsBrendan Gregg
 
Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain confluent
 
Demystifying the Distributed Database Landscape (DevOps) (1).pdf
Demystifying the Distributed Database Landscape (DevOps) (1).pdfDemystifying the Distributed Database Landscape (DevOps) (1).pdf
Demystifying the Distributed Database Landscape (DevOps) (1).pdfScyllaDB
 

Tendances (20)

Cassandra
CassandraCassandra
Cassandra
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abid
 
Continuous Go Profiling & Observability
Continuous Go Profiling & ObservabilityContinuous Go Profiling & Observability
Continuous Go Profiling & Observability
 
Tuning and Debugging in Apache Spark
Tuning and Debugging in Apache SparkTuning and Debugging in Apache Spark
Tuning and Debugging in Apache Spark
 
Systèmes d'Exploitation - chp5-gestion fichiers
Systèmes d'Exploitation - chp5-gestion fichiersSystèmes d'Exploitation - chp5-gestion fichiers
Systèmes d'Exploitation - chp5-gestion fichiers
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Systèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusSystèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processus
 
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
 
Deep Dive: Memory Management in Apache Spark
Deep Dive: Memory Management in Apache SparkDeep Dive: Memory Management in Apache Spark
Deep Dive: Memory Management in Apache Spark
 
Apache kafka 관리와 모니터링
Apache kafka 관리와 모니터링Apache kafka 관리와 모니터링
Apache kafka 관리와 모니터링
 
Scaling Machine Learning with Apache Spark
Scaling Machine Learning with Apache SparkScaling Machine Learning with Apache Spark
Scaling Machine Learning with Apache Spark
 
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConAnatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
 
USENIX ATC 2017: Visualizing Performance with Flame Graphs
USENIX ATC 2017: Visualizing Performance with Flame GraphsUSENIX ATC 2017: Visualizing Performance with Flame Graphs
USENIX ATC 2017: Visualizing Performance with Flame Graphs
 
Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain
 
PostgreSQL and RAM usage
PostgreSQL and RAM usagePostgreSQL and RAM usage
PostgreSQL and RAM usage
 
Demystifying the Distributed Database Landscape (DevOps) (1).pdf
Demystifying the Distributed Database Landscape (DevOps) (1).pdfDemystifying the Distributed Database Landscape (DevOps) (1).pdf
Demystifying the Distributed Database Landscape (DevOps) (1).pdf
 

En vedette

Cours informatique chapitre 1 ordinateur et système d'exploitation 7ème
Cours informatique chapitre 1 ordinateur et système d'exploitation   7ème Cours informatique chapitre 1 ordinateur et système d'exploitation   7ème
Cours informatique chapitre 1 ordinateur et système d'exploitation 7ème Tunisie collège
 
Cours système d'exploitation
Cours système d'exploitationCours système d'exploitation
Cours système d'exploitationAmel Morchdi
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarAnouar Sghaier
 
System d\'exploitation
System d\'exploitationSystem d\'exploitation
System d\'exploitationThắng Thao
 
Cours d'informatique du prof Heimer
Cours d'informatique du prof HeimerCours d'informatique du prof Heimer
Cours d'informatique du prof Heimerrochats
 
Cours système d’exploitation partie1
Cours système d’exploitation partie1Cours système d’exploitation partie1
Cours système d’exploitation partie1manou2008
 
Notes de cours d'ordonnancement
Notes de cours d'ordonnancementNotes de cours d'ordonnancement
Notes de cours d'ordonnancementISIG
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
Fonctionnement d’un système d’exploitation
Fonctionnement d’un système d’exploitationFonctionnement d’un système d’exploitation
Fonctionnement d’un système d’exploitationImane Bellali
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processusSelman Dridi
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére filsSelman Dridi
 
Systémes d'exploitation
Systémes d'exploitationSystémes d'exploitation
Systémes d'exploitationSelman Dridi
 
Chap2 ordonnancement
Chap2 ordonnancementChap2 ordonnancement
Chap2 ordonnancementmichel martiz
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercicesSelman Dridi
 

En vedette (20)

Cours informatique chapitre 1 ordinateur et système d'exploitation 7ème
Cours informatique chapitre 1 ordinateur et système d'exploitation   7ème Cours informatique chapitre 1 ordinateur et système d'exploitation   7ème
Cours informatique chapitre 1 ordinateur et système d'exploitation 7ème
 
Ordonnancement
OrdonnancementOrdonnancement
Ordonnancement
 
Cours système d'exploitation
Cours système d'exploitationCours système d'exploitation
Cours système d'exploitation
 
Ordonnancement SJF
Ordonnancement SJFOrdonnancement SJF
Ordonnancement SJF
 
Chap06 1
Chap06 1Chap06 1
Chap06 1
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouar
 
System d\'exploitation
System d\'exploitationSystem d\'exploitation
System d\'exploitation
 
Les composants de l'ordinateur
Les composants de l'ordinateurLes composants de l'ordinateur
Les composants de l'ordinateur
 
Cours d'informatique du prof Heimer
Cours d'informatique du prof HeimerCours d'informatique du prof Heimer
Cours d'informatique du prof Heimer
 
Gpao 6 - Ordonnancement
Gpao 6 - OrdonnancementGpao 6 - Ordonnancement
Gpao 6 - Ordonnancement
 
Cours système d’exploitation partie1
Cours système d’exploitation partie1Cours système d’exploitation partie1
Cours système d’exploitation partie1
 
Notes de cours d'ordonnancement
Notes de cours d'ordonnancementNotes de cours d'ordonnancement
Notes de cours d'ordonnancement
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Fonctionnement d’un système d’exploitation
Fonctionnement d’un système d’exploitationFonctionnement d’un système d’exploitation
Fonctionnement d’un système d’exploitation
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processus
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére fils
 
Cours se chap1
Cours se chap1Cours se chap1
Cours se chap1
 
Systémes d'exploitation
Systémes d'exploitationSystémes d'exploitation
Systémes d'exploitation
 
Chap2 ordonnancement
Chap2 ordonnancementChap2 ordonnancement
Chap2 ordonnancement
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercices
 

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

Diapositive du système d'exploitation-2-1.pdf
Diapositive du  système d'exploitation-2-1.pdfDiapositive du  système d'exploitation-2-1.pdf
Diapositive du système d'exploitation-2-1.pdfDannyMukoka
 
Chapitre1 introduction-aux-systemes-d-exploitation
Chapitre1 introduction-aux-systemes-d-exploitationChapitre1 introduction-aux-systemes-d-exploitation
Chapitre1 introduction-aux-systemes-d-exploitationToumi Hicham
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1infcom
 
Joomla : Akeeba Backup et Amazon S3
Joomla : Akeeba Backup et Amazon S3Joomla : Akeeba Backup et Amazon S3
Joomla : Akeeba Backup et Amazon S3Marc DECHEVRE
 
UGIF 12 2010 - sauvegarde et securisation des donnees
UGIF 12 2010 - sauvegarde et securisation des donneesUGIF 12 2010 - sauvegarde et securisation des donnees
UGIF 12 2010 - sauvegarde et securisation des donneesUGIF
 
Informix User Group France - 30/11/2010 - Securisation des données
Informix User Group France - 30/11/2010 - Securisation des donnéesInformix User Group France - 30/11/2010 - Securisation des données
Informix User Group France - 30/11/2010 - Securisation des donnéesNicolas Desachy
 
Sauvegardes de base de données
Sauvegardes de base de donnéesSauvegardes de base de données
Sauvegardes de base de donnéesSoukaina Boujadi
 
Guss webcasts Tempdb Internals - june 2013
Guss webcasts   Tempdb Internals - june 2013Guss webcasts   Tempdb Internals - june 2013
Guss webcasts Tempdb Internals - june 2013David BAFFALEUF
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesComment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesEDB
 
Présentation Générale d'OSCAR
Présentation Générale d'OSCARPrésentation Générale d'OSCAR
Présentation Générale d'OSCARCédric Frayssinet
 
Elasticsearch performance tuning
Elasticsearch performance tuningElasticsearch performance tuning
Elasticsearch performance tuningebiznext
 
Mac récupération de données
Mac récupération de donnéesMac récupération de données
Mac récupération de donnéesmarysmith01
 
les systèmes d'exploitation.ppt
les systèmes d'exploitation.pptles systèmes d'exploitation.ppt
les systèmes d'exploitation.pptPROFPROF11
 
Livre Blanc Sap Dms Sap Plm
Livre Blanc Sap Dms  Sap PlmLivre Blanc Sap Dms  Sap Plm
Livre Blanc Sap Dms Sap PlmSEAL Systems
 
Db aing td3v1
Db aing td3v1Db aing td3v1
Db aing td3v1infcom
 
Les bases BI sont-elles différentes?
Les bases BI sont-elles différentes?Les bases BI sont-elles différentes?
Les bases BI sont-elles différentes?Franck Pachot
 
Architecture 2
Architecture 2Architecture 2
Architecture 2coursuniv
 

Similaire à Gestion de la Memoire dans un Système d'exploitation (20)

Diapositive du système d'exploitation-2-1.pdf
Diapositive du  système d'exploitation-2-1.pdfDiapositive du  système d'exploitation-2-1.pdf
Diapositive du système d'exploitation-2-1.pdf
 
Cours s epart2
Cours s epart2Cours s epart2
Cours s epart2
 
Chapitre1 introduction-aux-systemes-d-exploitation
Chapitre1 introduction-aux-systemes-d-exploitationChapitre1 introduction-aux-systemes-d-exploitation
Chapitre1 introduction-aux-systemes-d-exploitation
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1
 
Joomla : Akeeba Backup et Amazon S3
Joomla : Akeeba Backup et Amazon S3Joomla : Akeeba Backup et Amazon S3
Joomla : Akeeba Backup et Amazon S3
 
Les systemes-dexploitation
Les systemes-dexploitationLes systemes-dexploitation
Les systemes-dexploitation
 
UGIF 12 2010 - sauvegarde et securisation des donnees
UGIF 12 2010 - sauvegarde et securisation des donneesUGIF 12 2010 - sauvegarde et securisation des donnees
UGIF 12 2010 - sauvegarde et securisation des donnees
 
Informix User Group France - 30/11/2010 - Securisation des données
Informix User Group France - 30/11/2010 - Securisation des donnéesInformix User Group France - 30/11/2010 - Securisation des données
Informix User Group France - 30/11/2010 - Securisation des données
 
Sauvegardes de base de données
Sauvegardes de base de donnéesSauvegardes de base de données
Sauvegardes de base de données
 
ICDL MODULE 1 Lesson 2
ICDL MODULE 1 Lesson 2ICDL MODULE 1 Lesson 2
ICDL MODULE 1 Lesson 2
 
Guss webcasts Tempdb Internals - june 2013
Guss webcasts   Tempdb Internals - june 2013Guss webcasts   Tempdb Internals - june 2013
Guss webcasts Tempdb Internals - june 2013
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesComment sauvegarder correctement vos données
Comment sauvegarder correctement vos données
 
Présentation Générale d'OSCAR
Présentation Générale d'OSCARPrésentation Générale d'OSCAR
Présentation Générale d'OSCAR
 
Elasticsearch performance tuning
Elasticsearch performance tuningElasticsearch performance tuning
Elasticsearch performance tuning
 
Mac récupération de données
Mac récupération de donnéesMac récupération de données
Mac récupération de données
 
les systèmes d'exploitation.ppt
les systèmes d'exploitation.pptles systèmes d'exploitation.ppt
les systèmes d'exploitation.ppt
 
Livre Blanc Sap Dms Sap Plm
Livre Blanc Sap Dms  Sap PlmLivre Blanc Sap Dms  Sap Plm
Livre Blanc Sap Dms Sap Plm
 
Db aing td3v1
Db aing td3v1Db aing td3v1
Db aing td3v1
 
Les bases BI sont-elles différentes?
Les bases BI sont-elles différentes?Les bases BI sont-elles différentes?
Les bases BI sont-elles différentes?
 
Architecture 2
Architecture 2Architecture 2
Architecture 2
 

Dernier

666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 

Dernier (20)

666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 

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

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