Vous êtes sur la page 1sur 10

26/04/2022

Gestion de la mémoire Introduction


Mémoire Centrale :
RAM : Random Access Memory

Introduction ’
ROM : Read Only Memory (BIOS)

Monoprogrammation
UC MC Périphériques d’E/S

Multiprogrammation avec partitions fixes


BUS
Va et vient et partitionnement dynamique
Accès rapide mais faible capacité et coût élevé
Notions de pagination Utilisée lors de l’exécution des programmes
Un gestionnaire de mémoire est nécessaire
26/04/2022

Gestionnaire de la mémoire Monoprogrammation

Un seul processus à la fois et entièrement en MC


Fonctions Organisation de la MC : cas de MS-DOS

Connaître les zones libres et utilisées ’

Pilotes de périphériques en
ROM
Allouer et récupérer la mémoire
Programme SE en
Offrir de la mémoire virtuelle : Utiliser la MS RAM

Stratégies
Problème : Cas de programme volumineux ne
Monoprogrammation
pouvant tenir en MC
Multiprogrammation avec partitions fixes
Va et vient et partitionnement dynamique
Pagination…
26/04/2022

Segments de recouvrement (Overlays) Multiprogrammation avec partitions fixes

 Solution : Découper le programme en parties Plusieurs processus coexistent en MC


’ Modules les plus utilisés placés dans une zone ’
MC répartie en un nombre fixe de
permanente partitions au démarrage (OS 360 d'IBM)
Modules interchangeables dans des overlays
Un processus est mis dans une file en
placés dans la zone interchangeable (ZI)
attente d’une partition libre
Si une fonction appelée n'est pas présente dans la
ZI, son overlay sera chargé Deux méthodes de gestion

 Inconvénients Files multiples

Fastidieux : découpage fait par le programmeur File unique

Chargement d'un overlay entier pour exécuter un


module
26/04/2022

Partitionnement fixe avec files multiples Partitionnement fixe avec file unique
Partition4
Partition4 Une file pour toutes les partitions Partition3
Une file par partition Partition3 Attribuer la partition libérée Partition2
’ Partition2 ’ au 1er processus qui y tient Partition1
(OS/360)
Chaque processus est mis Partition1 SE
SE
Problème : Perte de mémoire
dans la file de la plus petite (1 petit processus dans 1 grande partition)
Solution
partition pouvant le contenir
Attribuer la partition libérée au plus grand
processus qui y tient Attente de petits processus
Des petits processus en attente alors qu’une
Réserver une partition pour les petits processus
partition grande est libre
Choisir le processus ayant trop attendu
26/04/2022

Accès et protection mémoire Accès et protection mémoire


L'exécution de processus ne doit pas générer des
 Translation d'adresse :
erreurs d'accès en mémoire
L’éditeur de liens insère dans le code la liste
Accéder aux adresses utilisées par le programme sans
des positions des adresses
’ ’

erreur indifféremment de sa partition


Au chargement, l’adresse de début de
Protéger la mémoire : Interdire l'accès à une zone
réservée au SE ou à un autre processus partition est rajoutée à l’adresse relative
Inconvénient : Pas de protection
Problème : Adresse de début du programme non
 Bits de protection (IBM)
connue lors de l’édition de liens Erreur d'accès
Associer à chaque bloc mémoire 4
Programme qui débute par exemple à l'adresse 200
bits de protection
Appel d’une fonction à l’adresse relative 100 à partir du
début de fichier Interdire l’accès à tout processus n’ayant pas
Saut à l’adresse absolue 100 : Erreur !! le même code dans son PSW
Inconvénient : Pas d'interaction entre les
processus
26/04/2022

Accès et protection mémoire Va et vient (swapping)


et Partitionnement dynamique
Registres de base et de limite
Déplacement de processus inactifs en MS si la MC
’ Registre de base : adresse de la partition ’

est insuffisante pour exécuter d'autres processus


Registre de limite : longueur de la partition
Adresse réelle=adresse relative+registre de base
Partitions variables
Base ≤ Adresse réelle ≤ Limite

Avantages
Processus3
Processus1
Réaliser la translation et assurer la protection Processus2 Processus2
Processus1
Déplacer les programmes en MC de façon Processus1
Processus4 Processus4
transparente
26/04/2022

Partitionnement dynamique Mémorisation des zones libres

Les nombres, taille et position des processus varient


3 stratégies :
’ ’

Gestion complexe
Table de bits
Compactage en cas de fragmentation
Liste chaînée
Extension (tas ou pile) complexe
Mémoire subdivisée
Déplacer le processus vers 1 emplacement plus grand

Déplacer quelques processus vers le disque

Prévoir un emplacement pour l’extension


26/04/2022

Table de bits Liste chaînée


Chaîner les segments libres (H : Hole) et
occupées (P : Processus)
Diviser la mémoire en unités (quelques mots Chaque nœud contient l'indicateur H ou P, le

mémoire ou plusieurs KO) ’
début du segment et sa longueur
Table de bits : associer à chaque unité 1 si A B C D
elle est utilisée, 0 sinon
A B C D P 0 5 H 5 3 P 8 6

11111000
P 14 4 H 18 2 P 20 4
11111111
11001111

Recherche lente
26/04/2022

Gestion de la liste chaînée Algorithmes de gestion de la mémoire


Mise à jour de la liste
facile (liste triée par adresses)
Nécessite la fusion du segment libéré avec ses 1ère zone libre (Firstfit)
adjacents libres
’ ’ Cherche la 1ère zone de taillesuffisante
A X B A B
A X A Rapide (peu de recherche)
X B B
Espace inutilisé si le processus est petit
X
Différents algorithmes pour l’allocation Zone libre suivante (Next fit)
Variante du First fit

Cherche à partir de la dernière zone libre trouvée

Moins performante en pratique


26/04/2022

Algorithmes de gestion de la mémoire Pagination


Meilleurs ajustement (Best fit)
Charger uniquement les parties nécessaires dans des
Cherche la plus petite zone suffisante
pages en MC
Plus lent (recherche dans toute la liste)

Fragments inutilisables

Adopter des techniques de pagination
Utiliser une mémoire virtuelle (MV=MC+MS)
Plus grand résidu (Worst fit)
Diviser la MV et la MC en pages
Choisir la plus grande zone libre
Pas de meilleurs résultats en pratique Appliquer le va et vient si la page virtuelle ne se trouve pas
en MC
Placement rapide (Quick fit)
Utiliser des algorithmes de remplacement
Liste de blocs utilisés + Plusieurs listes de blocs
Assurer la correspondance entre les pages virtuelles
libres : 1 liste par longueur (4, 8,…)
Recherche accélérée mais fusion compliquée et physiques au moyen des tables de pages

Vous aimerez peut-être aussi