HAPITRE III –LA MÉMOIRE CENTRALE

18
Faculté des Sciences de Gabes Département d’informatique 20/11/2016 Cours SE 1 20/11/2016 Khaled Hassine 1 CHAPITRE HAPITRE III III –LA MÉMOIRE MÉMOIRE CENTRALE CENTRALE [email protected] 20/11/2016 Khaled Hassine 2 Par : Khaled Hassine Stratégies de gestion mémoire Généralités Récapitulatifs PLAN 20/11/2016 Khaled Hassine 3 Organisation de la mémoire Stratégies de gestion mémoire Généralités Récapitulatifs PLAN 20/11/2016 Khaled Hassine 4 Organisation de la mémoire

Transcript of HAPITRE III –LA MÉMOIRE CENTRALE

Page 1: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 1

20/11/2016 Khaled Hassine 1

CCHAPITREHAPITRE IIIIII ––LLAAMÉMOIREMÉMOIRE CENTRALECENTRALE

[email protected]

20/11/2016 Khaled Hassine 2

Par :

Khaled Hassine

Stratégies de gestion mémoire

Généralités

Récapitulatifs

PLAN

20/11/2016 Khaled Hassine 3

Organisation de la mémoire

Stratégies de gestion mémoire

Généralités

Récapitulatifs

PLAN

20/11/2016 Khaled Hassine 4

Organisation de la mémoire

Page 2: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 2

La ressource mémoire

La mémoire principale (Main memory, Primary memory, Internalmemory, Real Storage) : la ressource la plus critique

Hiérarchie en couche : au sommet : les registres (petite capacité, grande vitesse, coût

élevé) en bas de la pyramide : les supports magnétiques et optiques de

mémoire secondaire (grande capacité, faible coût, lents) La performance doit :

tirer le meilleur parti des mémoires rapides pour pallier leslimitations des plus lents

à l’inverse d’exploiter au maximum les types de mémoire les plusabondants pour simuler les types plus rapides disponibles enquantités limitées.

20/11/2016 Khaled Hassine 5

Fonctionnalités attendues d’ungestionnaire de la mémoire

Connaître les parties libres de la mémoirephysique.

Allouer de la mémoire au processus en évitantautant que possible le gaspillage.

Récupérer la mémoire libérée suite à laterminaison d’un processus.

Protéger la mémoire contre les utilisationsinterdites,

Offrir des services de mémoire virtuelle

20/11/2016 Khaled Hassine 6

Performance de la mémoire

Dépend : de la taille mémoire et du temps d'accès.

des protections mises en œuvre.

Ces paramètres sont contradictoires et difficilement dissociables. influent considérablement sur la performance de la

machine.

20/11/2016 Khaled Hassine 7

Protection de la mémoire

Gestion garantissant l'intégrité (logique) desinformations : interdisant l'autodestruction : Volontaire (Virus, Intrus, …) Involontaire (Défaut de programmation, Accès non

autorisé, …) Particulièrement en multiprogrammation

Atteinte au SE, Utilisateur non autorisé, Modification des programmes ou des données des autres, Accès aux informations partagées …

20/11/2016 Khaled Hassine 8

Page 3: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 3

Monoprogrammation versusMultiprogrammation

20/11/2016 Khaled Hassine 9

Système d'exploitation

Mono-utilisateur

Programme user 1

Système d'exploitation

Multiutilisateurs-Multi-tâches

Programme et donnéesutilisateur 2

Données utilisateur 1

Programme / Donnéesutilisateur

Stratégies de gestion mémoire

Généralités

Récapitulatifs

PLAN

20/11/2016 Khaled Hassine 10

Organisation de la mémoire

Problématique

Taille requise de la mémoire de plus en plus importante les exigences des utilisateurs en matière de système d'exploitation, l'emploi d'interfaces graphiques sophistiquées, l'utilisation des logiciels aux possibilités sans cesse accrues (le traitement

d'images, …) Or, l'espace directement adressable limité par la taille des registres

d'adresse. Un sérieux problème :

comment pouvoir accéder à toutes les cellules d'une mémoire ? qu'on souhaite de taille importante ?

Deux solutions sont proposées à ce problème en pratique : la segmentation la pagination.

20/11/2016 Khaled Hassine 11

Organisation de la mémoire Adresse logique versus adresse

physique Organisation en segments Organisation en pages Organisation mixte

20/11/2016 Khaled Hassine 12

Page 4: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 4

Mécanisme de traduction(translation)

Convertir : l’adresse logique de l'information (instruction ou donnée) issue de

l’UC, en adresses physiques ou réelles, effectivement présenté sur le bus

d'adresse, correspondant à une location en mémoire.

Besoin de deux registres (systèmes, éventuellement table) : le registre de base, ou registre de relocation, contient l’adresse du

début de la partition mémoire du programme usager, le registre limite correspond à la taille de la partition mémoire du

programme usager et permet de vérifier si la demande d’accès enmémoire est permise ou non (protection mémoire par registre).

20/11/2016 Khaled Hassine 13

Transformation Adresses logique enadresse physique

20/11/2016 Khaled Hassine 14

MémoireRegistre

limite

Adresselogique

Adressephysique

Unitécentrale <

Oui

Non

RegistreRelocation

+

Organisation de la mémoire Adresse logique versus adresse

physique Organisation en segments Organisation en pages Organisation mixte

20/11/2016 Khaled Hassine 15

Principe de base

Trois catégories d’informations : code, données et pile, aisément discernables, les séparer physiquement en leurs associant des zones

mémoires distinguées, appelées segments.

Solution adoptée par Intel pour le 8086 et sessuccesseurs. Quatre registres correspondant aux trois segments (CS,

DS, SS) Un registre supplémentaire dit Extra Segment (ES).

20/11/2016 Khaled Hassine 16

Page 5: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 5

Caractéristiques

Particularité : taille variable avec une limites : Max : 64 kilooctets pour le 8086. Min : 16 octets

Avantages : Réservation selon les besoins (minimiser le gaspillage) Protection facile : selon le type d’information

Inconvénients : Gestion des adresses : non uniforme Attribution de l’adresse début par le SE : Recherche de la

localisation

20/11/2016 Khaled Hassine 17

Mécanisme de traduction

Registres d’adresses : 16bits

Bus d’adresses : 20 bits

20/11/2016 Khaled Hassine 18

0000Registre de segment(16 bits)

Déplacement (16bits)

Adresse mémoire sur le busd’adresse (20 bits)

Protection

L'espace mémoire total (1 Megaoctet) peut être vu soit comme unepartition de 16 segments de 64 Kilooctets. Les adresses début des segments : des multiples de 16. Les segments peuvent être disjoints ou se recouvrir partiellement.

La protection est assurée dès lors que les segments sont disjoints. Les registres de segments doivent être chargés avec des valeurs

adéquates. Une écriture en mémoire ne pourra modifier un mot que dans le segment de

données associé à une instruction. Le jeu d'instructions définit le champ d'application de chaque instruction,

en particulier, les segments impliqués dans l'exécution de chacune d'entreselles branchement sous entend segment de code, transfert sous entend segment de donnée, empiler segment de pile, etc.

20/11/2016 Khaled Hassine 19

Organisation de la mémoire Adresse logique versus adresse

physique Organisation en segments Organisation en pages Organisation mixte

20/11/2016 Khaled Hassine 20

Page 6: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 6

Principe de base

Découper la mémoire centrale en zones dedimension égales appelées pages.

Plus simple à gérer que la segmentation puisque,par définition même, les pages sont disjointes. Table des pages : fournir l'adresse physique de chaque

page dans la mémoire centrale

Une adresse logique est composée de deux parties : un numéro de page

un déplacement dans la page (< taille d’une page).

20/11/2016 Khaled Hassine 21

Fragmentation

Un programme et ses données ne remplissentgénéralement pas les pages qui lui sont associées.

Exemple : taille d'une page est 4096 octets un programme qui nécessite 26000 octets. Le nombre de pages occupées = 7

6 pleines une occupant réellement 1424 Octets et 2672 octets inutilisés.

En pratique, le nombre de pages partiellementoccupées est important lors d'une session de travail.

20/11/2016 Khaled Hassine 22

Taille de page : compromis entredeux tendances contradictoires

Des petites pages :+ Minimise le problème de fragmentation

- Alourdi la gestion : sauvegarde des tables des pages, leur chargement et

déchargement

provoquent des surcoûts et des surcharges importants.

Des grandes pages :- Maximise le problème de fragmentation

+ Facilite la gestion

20/11/2016 Khaled Hassine 23

Taille de page en pratique

Dans une architecture à mémoire hiérarchisée, la tailled'une page dépend de : La taille d'un secteur du disque magnétique.

Le temps de recherche sur disque (localisation du cylindre, de laface, du secteur) est plus important que le temps de transfert entremémoire centrale et le disque dur.

Il est plus rentable de lire une quantité importante de donnée qu'unepetite quantité.

La taille de la cache : l’information réside lors de samanipulation par l'unité centrale dans la mémoire cache.

OS offre lors de l'installation une gamme de tailles depages que l'utilisateur peut choisir.

20/11/2016 Khaled Hassine 24

Page 7: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 7

Mécanisme de traduction : Exemple

Soit une machine : L'unité centrale fournit une adresse logique sur 16 bits. Une mémoire physique de 1 Megaoctets. La taille d'une page est de 4 Kilooctets.

Solution : Les 4 bits A12 à A15 de l'adresse constituent le numéro d'une

entrée dans une table de page. Chaque mot de la table contient l’adresse physique début de

l'une des 16 pages, codée sur 8 bits. Les 12 bits A0 à A11 constituent le déplacement dans cette

page 20 bits d'adresse, soit 220 = 1024 Kilooctets accessibles.

20/11/2016 Khaled Hassine 25 20/11/2016 Khaled Hassine 26

Pagination

8 bits 20 bits

12 bits

A12-A15(N° de page)

A0-A11(Déplacement)

Table de pages

4 bits

Adresse logique

Mémoire

AdressePhysique

Registre de table de page

Avec ce concept, on adresse 16 x 4 Kilooctets, soit 64Kilooctets.

Or la mémoire est de taille 1024 Kilooctets.

Pour adresser toutes les cellules de la mémoire, il nousfaut 16 tables de pages différentes.

Un registre de table de page : Pour chaque partie de code ou de donnée

Contient un numéro (l'adresse début) d'une table de page,

Chargé lors de l'accès à la mémoire, par la valeur adéquate.

20/11/2016 Khaled Hassine 27

Protection (plusieurs utilisateurs)

Un ensemble de pages dit espace de travail (Working Set)est alloué par le SE à chaque processus.

Ces pages peuvent être : distinctes pour assurer une certaine protection réciproque,

commune (pour partager des données par exemple).

A chaque utilisateur est associée une table de descriptiondes pages qui lui sont accordées : Chaque entrée est complétée par des bits d'autorisation d'accès à la

page correspondante.

La mise à jour de la mémoire des pages est à la charge du SE

20/11/2016 Khaled Hassine 28

Page 8: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 8

Organisation de la mémoire Adresse logique versus adresse

physique Organisation en segments Organisation en pages Organisation mixte

20/11/2016 Khaled Hassine 29

Principe de base

Combiner les deux mécanismes de segmentation et depagination

Bénéficier des avantages de deux concepts : De la segmentation :

Modularité, Facilité de programmation, Protection et partage.

De la pagination : Facilité de gestion (taille uniforme) La possibilité de ne charger en mémoire centrale que la page

sollicitée par l'accès.

Exemple : MULTICS - IBM 370

20/11/2016 Khaled Hassine 30

Segmentation paginée

20/11/2016 Khaled Hassine 31

Seg

Table dessegments

Page Offset

Table despages

+OffsetPage réelle

Adresse mémoireréelle

Adresse virtuelle

Table dessegments

du programme

IBM 370

Gère des segments paginés.

Deux possibilités de segments sont offertes : 16 segments de 1 Megaoctets chacun

256 segments de 64 kilooctets.

Pagination avec deux tailles possibles : 2 Kilooctets ou

4 Kilooctets.

20/11/2016 Khaled Hassine 32

Page 9: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 9

20/11/2016 Khaled Hassine 33

Segmentationpaginée

Descripteursdes segments

Bits divers : Modification – protection - …

0 : En MC

1 : En MA

Mémoire

Page sollicitée

N° de la pageN° de segment Déplacement

Adresse de la page

Nb pages Bit divers @ table de pages

Table des pages

Segmentation avec pagination: MULTICS

34

Un descripteur de segmentL'adresse est complétée par 6 zéros carles adresses physiques de 24 bits sontalignées sur des pages de 64 octets.

Stratégies de gestion mémoire

Généralités

Récapitulatifs

PLAN

20/11/2016 Khaled Hassine 35

Organisation de la mémoire

Stratégies de gestion de lamémoire Représentation de l’espace libre

Bitmap Liste chaînée

Stratégies d’allocation Multiprogrammation et utilisation de l’UC Multiprogrammation à partitions fixes Multiprogrammation à partitions variables Gestion de la mémoire par subdivision

Stratégies de placement

20/11/2016 Khaled Hassine 36

Page 10: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 10

Stratégies de gestion de lamémoire Représentation de l’espace libre

Bitmap Liste chaînée

Stratégies d’allocation Multiprogrammation et utilisation de l’UC Multiprogrammation à partitions fixes Multiprogrammation à partitions variables Gestion de la mémoire par subdivision

Stratégies de placement

20/11/2016 Khaled Hassine 37

Problématique

Mémoire découpée en unités d’allocation (blocmémoire).

Trace des emplacements occupés et libres de lamémoire : table de bits (bitmaps) liste chaînée.

Libération d’un bloc mémoire si un processus estévacué

Fusion éventuel avec des blocs adjacents libres.

20/11/2016 Khaled Hassine 38

Exemple

X est le bloc qui se libère

20/11/2016 Khaled Hassine 39

X BA A lib B

Avant libération Après libération

A X libA lib

Stratégies de gestion de lamémoire Représentation de l’espace libre

Bitmap Liste chaînée

Stratégies d’allocation Multiprogrammation et utilisation de l’UC Multiprogrammation à partitions fixes Multiprogrammation à partitions variables Gestion de la mémoire par subdivision

Stratégies de placement

20/11/2016 Khaled Hassine 40

Page 11: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 11

Condition

L’espace mémoire adressable est décomposé enblocs de taille fixe.

La partition allouée à un processus est composéed’un nombre entier de blocs.

Une table de bits : conservée en mémoire

chaque bit définit l’état (libre=0, occupé=1) d’un bloc enmémoire.

20/11/2016 Khaled Hassine 41

Table de bits

+ Simple à implémenter- Présente peu d’informations Peu utilisée

+ plus l’unité d’allocation est petitemoins on a de perte lors desallocations

- plus cette table occupe de place enmémoire.

20/11/2016 Khaled Hassine 42

Stratégies de gestion de lamémoire Représentation de l’espace libre

Bitmap Liste chaînée

Stratégies d’allocation Multiprogrammation et utilisation de l’UC Multiprogrammation à partitions fixes Multiprogrammation à partitions variables Gestion de la mémoire par subdivision

Stratégies de placement

20/11/2016 Khaled Hassine 43

Principe

Maintenir une liste chaînée des blocs alloués et desblocs libres

Chaque bloc correspond soit à : un processus,

un trou entre deux partitions de processus.

Taille variable : puissances de 2 (16K, 32K, 64K).

20/11/2016 Khaled Hassine 44

Page 12: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 12

Structure d’une liste chainée

20/11/2016 Khaled Hassine 45

Stratégies de gestion de lamémoire Représentation de l’espace libre

Bitmap Liste chaînée

Stratégies d’allocation Multiprogrammation et utilisation de l’UC Multiprogrammation à partitions fixes Multiprogrammation à partitions variables Gestion de la mémoire par subdivision

Stratégies de placement

20/11/2016 Khaled Hassine 46

Stratégies de gestion de lamémoire Représentation de l’espace libre

Bitmap Liste chaînée

Stratégies d’allocation Multiprogrammation et utilisation de l’UC Multiprogrammation à partitions fixes Multiprogrammation à partitions variables Gestion de la mémoire par subdivision

Stratégies de placement

20/11/2016 Khaled Hassine 47

Problématique

Objectif principal de la multiprogrammation : une meilleureutilisation de l’UC et de la mémoire (le système).

Modèle simpliste : n processus s’exécutent en concurrence, (n le degré de

multiprogrammation).

les n processus passent tous une fraction p de leur temps à effectuerdes E/S

le taux d’utilisation de l’UC est :

20/11/2016 Khaled Hassine 48

nUC pTU 1

Page 13: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 13

Problématique

Commentaméliorer le tauxd’utilisation del’UC lorsque leprocessus qui ledétient réalise desopérations d’E/S ?

20/11/2016 Khaled Hassine 49

Stratégies de gestion de lamémoire Représentation de l’espace libre

Bitmap Liste chaînée

Stratégies d’allocation Multiprogrammation et utilisation de l’UC Multiprogrammation à partitions fixes Multiprogrammation à partitions variables Gestion de la mémoire par subdivision

Stratégies de placement

20/11/2016 Khaled Hassine 50

Principe de base

Décomposer, lors de l’initialisation du système, l’espace mémoire usageren plusieurs partitions fixes (Fixed Partition Multiprogramming : FPM).

Le répartiteur de haut niveau (l’ordonnanceur) décide de l’attribution despartitions libres au processus qui en font la demande.

La partition mémoire demandée se fait sur la base de : la taille du code et des données (statiques) du programme une estimation de la taille de la mémoire dynamique (pile, pointeurs, …)

requise pour l’exécution du programme. La multiprogrammation à partitions fixes était surtout utilisée sur les

ordinateurs mainframes d’IBM. Idéalement, avoir des partitions de tailles différentes de manière à :

pouvoir accommoder différents types de programme. avoir une file d’attente par type de partition : une file pour les petites partitions,

une pour les partitions moyennes, etc.

20/11/2016 Khaled Hassine 51

File d’attente : multiple versusunique

20/11/2016 Khaled Hassine 52

Page 14: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 14

Problèmes à éviter

Cas d’une file d’attente unique Fragmentation interne : une partition de grande taille

gaspillée par un petit processus.

Cas des files d’attente multiples : Fragmentation externe : un processus attend indéfiniment

qu’une partition correspondant à ses besoins se libère, alorsque l’espace libre est décomposé en plusieurs petitespartitions.

Un processus attend indéfiniment qu’une partitioncorrespondant à ses besoins se libère, alors qu’une partition degrande taille est disponible.

20/11/2016 Khaled Hassine 53

Stratégies de gestion de lamémoire Représentation de l’espace libre

Bitmap Liste chaînée

Stratégies d’allocation Multiprogrammation et utilisation de l’UC Multiprogrammation à partitions fixes Multiprogrammation à partitions variables Gestion de la mémoire par subdivision

Stratégies de placement

20/11/2016 Khaled Hassine 54

Principe

Le nombre, la taille, la localisation et la location despartitions changent au cours du temps.

En multiprogrammation à partitions variables, unprocessus ne peut pas avoir de garantie sur la locationde sa partition avant d’être chargé en mémoire.

En particulier un processus ne peut pas requérir unerégion particulière de la mémoire principale, vu quecelle-ci pourrait ne jamais se libérer. Par conséquent,opter pour une stratégie de multiprogrammation àpartition variable impose que le code exécutable desprogrammes soit au minimum relogeable.

20/11/2016 Khaled Hassine 55

Exemple

Evolution possible des partitions correspondant auxévènements suivants : (a) le processus A est chargé en mémoire, (b) B est chargé en mémoire, (c) C est chargé en mémoire, (d) A termine (et libère la mémoire), (e) D est chargé en mémoire, (f) B se termine, (g) E est chargé en mémoire, (h) D termine, (i) E termine, (j) F est chargé en mémoire.

20/11/2016 Khaled Hassine 56

Page 15: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 15

Occupation de la mémoire

20/11/2016 Khaled Hassine 57

Observations

L’utilisation de partitions variables ne résout pas leproblème de la fragmentation externe : si le processus F se présente avant que E ne se termine, il

devra attendre faute de trou mémoire assez grand.

20/11/2016 Khaled Hassine 58

Solutions

Lorsque le niveau de fragmentation externe de lamémoire devient trop important, ou lorsqu’unedemande d’allocation de mémoire ne peut êtresatisfaite, on effectue une compaction de lamémoire, de manière à regrouper les trous isolésen trous plus importants

Le SE peut effectuer une opération de ramasse-miettes (garbage collection).

20/11/2016 Khaled Hassine 59

Stratégies de gestion de lamémoire Représentation de l’espace libre

Bitmap Liste chaînée

Stratégies d’allocation Multiprogrammation et utilisation de l’UC Multiprogrammation à partitions fixes Multiprogrammation à partitions variables Gestion de la mémoire par subdivision

Stratégies de placement

20/11/2016 Khaled Hassine 60

Page 16: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 16

Gestion de la mémoire par subdivisions(ou frères siamois)

Proposé par Donald KNUTH en 1973

Objectif : accélérer la fusion des zones libresadjacentes lors de la libération d'unités grace à unesubdivision dichotomique.

Le gestionnaire mémorise utilise une liste de blocslibres dont la taille est une puissance de 2 (1, 2, 4, 8octets, ...., jusqu'à la taille maximale de lamémoire).

20/11/2016 Khaled Hassine 61

Exemple

20/11/2016 Khaled Hassine 62

1M

A 128 256 512

Avec une mémoire de 1 Mo, on a ainsi 251 listes. Initialement, lamémoire est vide. Toutes les listes sont vides, sauf la liste 1 Mo quipointe sur la zone libre de 1 Mo :

Un processus A demande 70 Ko :1. la mémoire est fragmentée en deux compagnons (buddies) de 512

Ko;2. l'un d'eux est fragmenté en deux blocs de 256 Ko;3. l'un d'eux est fragmenté en deux blocs de 128 Ko et on loge A dans

l'un d'eux, puisque 64 < 70 < 128 :

Allocation et libération

20/11/2016 Khaled Hassine 63

A B 64 256 512

Un processus B demande 35 Ko :1. l'un des deux blocs de 128 Ko est fragmenté en deux de 64 Ko2. on loge B dans l'un d'eux puisque 32 < 35 < 64

Un processus C demande 80 Ko :1. le bloc de 256 Ko est fragmenté en deux de 128 Ko2. on loge C dans l'un d'eux puisque 64 < 80 < 128

A B 64 C 128 512

Allocation et libération …

20/11/2016 Khaled Hassine 64

A s'achève et libère son bloc de 128 Ko.

Puis un processus D demande 60 Ko :le bloc libéré par A est fragmenté en deux de 64 Ko, dont l'un logera D

128 B 64 C 128 512

128 B D C 128 512

Page 17: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 17

Allocation et libération …

20/11/2016 Khaled Hassine 65

B s'achève, permettant la libération d'un bloc de64 Ko :

D s'achève, permettant la reconstitution d'un blocde 256 Ko , etc...

128 64 D C 128 512

256 C 128 512

Inconvénients

L'allocation et la libération des blocs sont trèssimples.

Mais un processus de taille 2n+1 octets utilisera unbloc de 2n+1 octets !

Il y a beaucoup de perte de place en mémoire.

20/11/2016 Khaled Hassine 66

Stratégies de gestion de lamémoire Représentation de l’espace libre

Bitmap Liste chaînée

Stratégies d’allocation Multiprogrammation et utilisation de l’UC Multiprogrammation à partitions fixes Multiprogrammation à partitions variables Gestion de la mémoire par subdivision

Stratégies de placement

20/11/2016 Khaled Hassine 67

Placement Strategies

L’allocation d’un espace libre pour un processuspeut se faire suivant 3 stratégies principalescommunément employées : Le premier ajustement (First Fit)

Le meilleur ajustement (Best Fit)

Le pire ajustement (Worst Fit dite aussi stratégiepréventive)

20/11/2016 Khaled Hassine 68

Page 18: HAPITRE III –LA MÉMOIRE CENTRALE

Faculté des Sciences de GabesDépartement d’informatique

20/11/2016

Cours SE 18

Le premier ajustement (First Fit)

Consiste à prendre le premier bloc libre de la listequi peut contenir le processus qu’on désire charger.

L'avantage de cette stratégie est dans sa simplicité :on minimise le temps de recherche.

L'inconvénient est qu'on risque de laisser assésd'espace mémoire difficile à exploiter(fragmentation externe).

20/11/2016 Khaled Hassine 69

Le meilleur ajustement (Best Fit)

Alloue au processus le plus petit espace mémoirequi peut le contenir.

Cette stratégie garantie que l'espace mémoire nonutilisé (non exploitable dans le futur) sera le pluspetit.

L'inconvénient de cette approche est la surchargedu système d'exploitation passée dans le choix et lacomparaison des espaces libres.

20/11/2016 Khaled Hassine 70

Le pire ajustement (Worst Fit)

Dite aussi stratégie préventive

Alloue au processus le plus grand bloc de mémoiredisponible.

Cette approche se base sur le fait que laisser plusd'espace permet de placer dans le futur d'autresprocessus, à la différence du meilleur ajustementqui va laisser des petits espaces libres difficiles àexploiter dans le futur.

20/11/2016 Khaled Hassine 71 20/11/2016 Khaled Hassine 72