20
Monoprogrammation

Gestion de la mémoire

Embed Size (px)

Citation preview

Page 1: Gestion de la mémoire

Monoprogrammation

Page 2: Gestion de la mémoire

MultiprogrammationProbleme de la reallocation

Page 3: Gestion de la mémoire

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

Page 4: Gestion de la mémoire

Saturation de la memoire

� La memoire centrale ne peut pas contenir tous les processus

� Solutions :� Va-et-vient (swapping)

� Memoire virtuelle

Page 5: Gestion de la mémoire

Va-et-vient

Page 6: Gestion de la mémoire

Va-et-vient (Cont.)

Fragmentation externe

Page 7: Gestion de la mémoire

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

Page 8: Gestion de la mémoire

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

Page 9: Gestion de la mémoire

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)

Page 10: Gestion de la mémoire

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.

Page 11: Gestion de la mémoire

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

Page 12: Gestion de la mémoire

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)

Page 13: Gestion de la mémoire

Memoire virtuelle (Cont.)

Pagination (Cont.)

Page 14: Gestion de la mémoire

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

Page 15: Gestion de la mémoire

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

Page 16: Gestion de la mémoire

Memoire virtuelle (Cont.)Segmentation

Page 17: Gestion de la mémoire

Memoire virtuelle (Cont.)

Segmentation (Cont.)

Page 18: Gestion de la mémoire

Memoire virtuelle (Cont.)Segmentation (Cont.)

Page 19: Gestion de la mémoire

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 :

Page 20: Gestion de la mémoire

Memoire virtuelle (Cont.)Segmentation avec pagination : le Pentium d’Intel (Cont.)

� Descripteur de segment de code