gestion mémoire 2

12
1 Au bout d'un certain temps de fonctionnement, la mémoire prend l'aspect d'une alternance de trous et de partitions de taille quelconque. La fragmentation de la mémoire est une situation durant laquelle une demande ne peut être satisfaite faute d'un espace de taille suffisante, bien que la somme des tailles des zones libres soit supérieure à cette demande. Pour réduire la fragmentation, on peut grouper les zones libres selon deux techniques différentes : la concaténation ou le compactage. Concaténation des trous : la technique consiste à rassembler, en un seul espace, les trous contigus et ce dès leur formation. Compactage des trous libres : la technique de compactage consiste à rassembler les trous en une seule zone. C’est un algorithme de ramasse de miettes (Garbadge Collector) qui a pour rôle de déplacer les processus encore actifs vers de nouveaux emplacements. 1 A Eniso - 2009/2010

Upload: king-xxx

Post on 10-Mar-2016

216 views

Category:

Documents


0 download

DESCRIPTION

gestion mémoire 2

TRANSCRIPT

Page 1: gestion mémoire 2

1

Au bout d'un certain temps de fonctionnement, la mémoire prend l'aspect d'une alternance de trous et de partitions de taille quelconque.La fragmentation de la mémoire est une situation durant laquelle une demande ne peut être satisfaite faute d'un espace de taille suffisante, bien que la somme des tailles des zones libres soit supérieure à cette demande.Pour réduire la fragmentation, on peut grouper les zones libres selon deux techniques différentes : la concaténation ou le compactage.

Concaténation des trous : la technique consiste à rassembler, en un seul espace, les trous contigus et ce dès leur formation.Compactage des trous libres : la technique de compactage consiste à rassembler les trous en une seule zone. C’est un algorithme de ramasse de miettes (Garbadge Collector) qui a pour rôle de déplacer les processus encore actifs vers de nouveaux emplacements.

1 A Eniso - 2009/2010

Page 2: gestion mémoire 2

2

D’autre solutions pour éviter la fragmentation :Ne pas permettre la formation de trous d'une taille inférieure à celle d'une miette.Implanter des programmes dans des zones de mémoires non contiguës.

SE

Libre 20

Libre 15

Occupé

Libre 30

Occupé

Concaténation

SE

Libre 35

Occupé

Libre 30

Occupé

SE

Libre 20

Occupé

Libre 30

Occupé

Compactage

SE

Libre 50

Occupé

Occupé

1 A Eniso - 2009/2010

Page 3: gestion mémoire 2

3

Allocation contigüeAllocation d’une partition uniqueLes partitions de taille fixeLes partitions de taille variable

Allocation non contigüeLa pagination : partitions de taille fixeLa segmentation : partitions de taille variable

1 A Eniso - 2009/2010

Page 4: gestion mémoire 2

4

La mémoire physique est découpée en blocs de taille fixe appelés cadres de pages.La mémoire logique est également subdivisée en blocs de la même taille appelés pages.Quand on doit exécuter un processus, on charge ses pages dans les cadres de pages de mémoire disponibles à partir de la mémoire auxiliaire.Lorsqu’un processus est chargé en mémoire, le SE charge chaque page dans un cadre de page inutilisé, qui n'ont pas besoin d’être contigus.Une table de pages stocke le numéro du cadre de page alloué à chaque page.

Le numéro du cadre de page dans lequel a été chargée la page N est stocké dans la Nième entrée de la table.

Sur les systèmes pour lesquels les processus peuvent avoir un grand nombre de pages, on peut faire appel à un système à plusieurs niveaux.

1 A Eniso - 2009/2010

Page 5: gestion mémoire 2

5

On utilise le numéro de page comme indice à une table de pages. La table de pages contient l'adresse de base de chaque page dans la mémoire physique.

Avec la pagination :Nous pouvons posséder de la fragmentation interne si les besoins en mémoire d'un processus ne tombent pas sur les limites des pages, le dernier cadre de page ne sera pas complètement plein.Pas de fragmentation externe : chaque cadre de page libre peut être alloué a un processus qui le requiert.

123

Table de page

4

3516

Mémoire logique

234

1

12

Mémoire physique

3456

1 A Eniso - 2009/2010

Page 6: gestion mémoire 2

6

On divise chaque adresse générée par l’UC en deux parties :un numéro de page (n),et un déplacement dans la page (d).

L’adresse de base est combinée avec le déplacement dans la page afin de définir l'adresse mémoire physique envoyée a l'unité de mémoire.L'adresse logique possède la forme suivante :

n@ logique

d

UC

Mémoire physique

m d@ physique

m

Table de pages0

n

n

Numéro de page

d

déplacement dans la page

i-j j1 A Eniso - 2009/2010

Page 7: gestion mémoire 2

7

Sur un système de pagination simple de 224 octets de mémoire physique, 256 pages (28) d'espace d'adressage logique et une taille de page de 210 octets :

combien de bits se trouvent dans une adresse logique ? 18=8+10

combien d'octets se trouvent dans un cadre de page ? 210 : la taille d'un cadre de page est la même que celle de

la page. Ainsi, la taille du cadre de page est de 210.combien de bits de l'adresse physique spécifient le cadre de page ?

14=24-10quelle est la longueur de la table de pages ?

256 : une entrée pour chaque page.

n

Numéro de page

d

déplacement dans la page

8 bits 10 bits

1 A Eniso - 2009/2010

Page 8: gestion mémoire 2

8

Comme la pagination, la segmentation divise un programme en un certain nombre de blocs appelés segments, chacun étant alloué indépendamment à la mémoire.À la différence de la pagination, les segments sont de taille variable.Une table de segments est comparable à une table de pages.Chaque entrée de la table de segments possède :

le segment de base contient l’adresse physique de début où le segment réside en mémoire,le registre limite spécifie la longueur du segment.

Le SE conserve une liste d'espace libre et alloue les segments aux zones de mémoire libres.La segmentation peut provoquer de la fragmentation externe, quand tous les blocs de la mémoire libre sont trop petits pour ranger un segment.L'adresse logique est translatée en une adresse physique par le biais de l'extraction du numéro de segment et de l'offset de l'adresse logique.

1 A Eniso - 2009/2010

Page 9: gestion mémoire 2

9

Il est possible de définir certains segments en lecture seule en ajoutant un bit de lecture seule dans une entrée de table de segments.Le système de gestion de la mémoire recherche des segments en lecture seule dans les opérations d'écriture et génère une erreur si cette opération est détectée.S'il y a une prise en charge des segments en lecture seule, il est possible que plusieurs processus partagent des segments en lecture seule, réduisant ainsi l'utilisation de la mémoire.Cela se produit lorsque deux processus exécutent le même programme et que le code de ce dernier est désigné pour se trouver dans un ou plusieurs segments en lecture seule.

1 A Eniso - 2009/2010

Page 10: gestion mémoire 2

10

Une adresse logique est constituée de deux parties : un numéro de segment et un déplacement dans ce segment.On utilise le numéro du segment comme indice dans la table de segments.Le déplacement de l’adresse logique doit se trouver entre 0 et la limite du segment. Si ce n'est pas le cas, nous effectuons un déroutement.

n@ logique

d

UC Mémoire physique

taille

Table de segments

0

nbase

+<Oui

Non

Erreur1 A Eniso - 2009/2010

Page 11: gestion mémoire 2

11

Sur un système utilisant la segmentation simple, calculez l'adresse physique de chacune des adresses logiques, à partir de la table de segments ci-après.

0, 3001400

2, 800Erreur

1, 6003100

3, 11005100

1, 1111Erreur

Segment Base Longueur

0 1100 500

1 2500 1000

2 200 600

3 4000 1200

1 A Eniso - 2009/2010

Page 12: gestion mémoire 2

12

Calculez les adresses physiques qui correspondent aux adresses logiques suivantes: 1035, 4093, 4098, 9000. Le mode de gestion est la pagination et les pages ont une taille de 4 KO.La table de pages : N° page

logiqueN° page

physique

0 4

1 6

2 15

3 10

@ logique N° page physique Déplacement @ physique

1035 0 1035 17419

4093 0 4093 20477

4098 1 2 24578

9000 2 808 62248

1 A Eniso - 2009/2010