Gestion de la mémoire
-
Upload
salah-triki -
Category
Science
-
view
312 -
download
0
Transcript of Gestion de la mémoire
Monoprogrammation
MultiprogrammationProbleme de la reallocation
Multiprogrammation (Cont.)Solutions au probleme de la reallocation
� Reallocation statique :� Modifier les adresses pendant le chargement du programme
� IBM 360
� Inconvenients : ralentissement du chargement, commentdistinguer une adresse reallouable d’une constante numerique ?
� Reallocation dynamique :� 2 registres : registre de base, registre limite
� Pas de modifications de programmes
� L’UC :adresse + registre de base <= registre limite
� CDC 6600, Intel 8088
� Inconvenient : une addition et une comparaison a chaquereference memoire
Saturation de la memoire
� La memoire centrale ne peut pas contenir tous les processus
� Solutions :� Va-et-vient (swapping)
� Memoire virtuelle
Va-et-vient
Va-et-vient (Cont.)
Fragmentation externe
Va-et-vient (Cont.)Accroissement de l’espace alloue aux processus
� Trouver un trou adjacent au processus
� Deplacer le processus dans un trou suffisamment grand
� Allocation d’espace pour l’accroissement
Va-et-vient (Cont.)
Gestion de la memoire libre� Table de bits
� La memoire est repartie en unites d’allocations� Chaque unite d’allocation correspond a un bit dans la table de
bits
� Inconvenient : Lenteur de la recherche d’une sequence d’uniteslibres
Va-et-vient (Cont.)
Gestion de la memoire libre (Cont.)� Liste chaınee
� Liste chaınee des segments alloues et libres� Entree de la liste : Trou/Processus, @debut, longueur
� Algorithmes d’allocations� Premiere zone libre (first fit)� Zone libre suivante (next fit)� Meilleur ajustement (best fit)� Plus grand residu (worst fit)� Placement rapide (quick fit)
Va-et-vient (Cont.)
Systeme mobile� Caracteristiques materiel : memoire flash
� Capacite limitee� Nombre d’ecritures limite� Throughput faible entre la memoire principale et la memoire
flash
� iOS� Demander aux applications de liberer la memoire allouee� Une application est arretee si elle refuse de liberer
suffisamment de memoire
� Android� Meme approche qu’iOS.� L’etat de l’application est sauvegarde avant l’arret.
Memoire virtuelle
Principe
� Chaque programme a son propre espace d’adressage
� L’espace d’adressage decoupe en petites entites appelees pages
� Il n’est pas obligatoire d’avoir toutes les pages en memoirepour executer un programme
� Lorsque le programme reference une partie de son espaced’adressage :
� La reference est en memoire : le materiel fait lacorrespondance au vol
� La reference n’est pas en memoire : le SE prend la main pourchercher sur disque ce qui manque, le ranger en memoire etreprendre l’execution du programme
Memoire virtuelle (Cont.)
PaginationAllocation de zones de memoire non contigues pour un memeprocessus
� Cadres de page : memoire physique decoupee en zones detaille fixe
� Adresse logique : numero de page + deplacement dans lapage
� Table de pages : liaison entre numero de page et cadre depage (une table par processus)
Memoire virtuelle (Cont.)
Pagination (Cont.)
Memoire virtuelle (Cont.)
Pagination (Cont.)Defaut de page (page fault)
� Un programme essaye de faire appel a une page non presente
� La MMU remarque que la page est absente et fait procederl’UC a un deroutement qui est appele defaut de page :
� Selection d’un cadre de page
� Ecriture du contenu sur le disque
� Transferer la page qui vient d’etre referencee dans le cadre depage libere
� Modifier la correspondance
� Recommencer l’instruction deroutee
Memoire virtuelle (Cont.)
Pagination (Cont.)Algorithmes de remplacements de pages
� Algorithme de remplacement de la page non recemmentutilisee
� Algorithme de remplacement de la page premier entre,premier sorti
� Algorithme de remplacement de la page de la seconde chance
� Algorithme de remplacement de la page de l’horloge
� Algorithme de remplacement de la page la moins recemmentutilisee
Memoire virtuelle (Cont.)Segmentation
Memoire virtuelle (Cont.)
Segmentation (Cont.)
Memoire virtuelle (Cont.)Segmentation (Cont.)
Memoire virtuelle (Cont.)
Segmentation avec pagination : le Pentium d’Intel
� LDT : Table des descripteurs locaux (Local Descriptor Table)qui decrit les segments locaux de chaque programme
� GDT : Table des descripteurs globaux (Global DescriptorTable) qui decrit les segments systeme
� Selecteur :
Memoire virtuelle (Cont.)Segmentation avec pagination : le Pentium d’Intel (Cont.)
� Descripteur de segment de code