Vous êtes sur la page 1sur 41

GLO 2001 - Systèmes d’Exploitation pour

Ingénieur
(Hiver 2022)

08. Gestion de la mémoire

Dr. Nadia OUKRICH


nadiaoukrich@gmail.com

1
2

08. Gestion de la mémoire

2
Objectifs du cours 3

 Connaitre les fonctions du gestionnaire de la mémoire.

 Savoir différencier entre partition fixe et dynamique de la mémoire.

 Connaitre les techniques utilisées pour la gestion de la mémoire.

 Avoir une idée claire sur la mémoire virtuelle.

3
Introduction 4

• Mémoire: grand tableau de mots (octets), chacun possédant sa propre adresse.


• La CPU extrait les instructions de la mémoire en fonction de la valeur d’un compteur
d’instructions.
• Système de gestion de la mémoire (Memory manager): partie du SE qui gère la
hiérarchie de stockage
 Suivre les parties de la mémoire qui sont utilisées ou non utilisées.
 Allouer/libérer espace mémoire aux processus.
 Contrôler le swapping entre la mémoire principale et le disque.

4
Types des mémoires sur ordinateur 4

Mémoires sur un
ordinateur

La mémoire Mémoire cache La mémoire


RAM du processeur morte (ROM)

 Sert à stocker les  Sert à stocker des  stocke des


données utilisées pour informations informations
les calculs du processeur redondantes nécessaires au
(CPU) démarrage de
 Utilisée aux applications l’ordinateur
pour fonctionner
5
Types des mémoires sur ordinateur 4

La mémoire Mémoire cache La mémoire


RAM du processeur morte (ROM)

6
Mémoire cache du processeur 4

7
BIOS 4

 BIOS = Basic Input/Output System


 Le BIOS est un petit programme.
 Il est situé sur la carte mère de l'ordinateur dans une puce de type
ROM;
 Le BIOS est le premier programme chargé en mémoire dès que
vous allumez votre ordinateur.

8
BIOS 4

Le BIOS assure plusieurs fonctions:

1- le POST (Pre-Operating System Tests

c'est l'ensemble des tests qu'effectue le BIOS avant de démarrer le système


d'exploitation:
• vérifier que la carte mère fonctionne bien (barettes de mémoire vive
(RAM), contrôleurs de ports série, parallèle, IDE, etc.)
• vérifier que les périphériques simples ("Basic") connectés à la carte mère
fonctionnent bien (clavier, carte graphique, disques dur, lecteur de disquette,
lecteur de CD-Rom...)

2- chercher un disque sur lequel il y a un système d'exploitation prêt à


démarrer.
Le BIOS contient aussi généralement un programme qui permet de modifier les
paramètres de la carte mère. Ce programme est appelé setup.
9
4

La mémoire vive
La RAM
Random Access Memory

10
La Monoprogrammation 6

• L'approche la plus simple pour gérer la mémoire consiste à n'accepter


qu'un seul processus à la fois
• Cette approche était utilisée dans les premiers micro-ordinateurs IBM
PC utilisant MS-DOS comme système d'exploitation, les systèmes
embarqués…

11
Multiprogrammation avec partitions fixes 7

• La manière la plus simple de faire de la multiprogrammation consiste à

subdiviser la mémoire en partitions de taille fixe.

• Chaque partition peut contenir exactement 1 processus.

• Puisque les partitions sont fixes, chaque espace inutilisé est perdu.

12
Gestion de la fil d’attente 8

On reconnaît en général trois méthodes:

1- First-fit
Le premier bloc suffisamment grand pour contenir notre processus est choisi.

2- Best-fit
Le plus petit bloc suffisamment grand pour contenir notre processus est choisi.

3- Worst-fit
Le bloc qui nous laisse le plus grand morceau de mémoire libre est choisi (le plus grand
bloc).

Application: Exercice 2 TP 4

13
Multiprogrammation avec partitions fixes 8

14
Multiprogrammation avec partitions fixes 9

Il existe deux méthodes de gestion :

1- on crée une file d'attente par partition.


Chaque nouveau processus est placé dans la file d'attente de la plus petite partition
pouvant le contenir.
Inconvénients :
on perd en général de la place au sein de chaque partition
il peut y avoir des partitions inutilisées (leur file d'attente est vide)

2- on crée une seule file d'attente globale.


Il existe deux stratégies :
Dès qu'une partition se libère, on lui affecte la première tâche de la file qui peut y
tenir. Inconvénient : on peut ainsi affecter une partition de grande taille à une petite
tâche et perdre beaucoup de place
Dès qu'une partition se libère, on lui affecte la plus grande tâche de la file qui peut y
tenir. Inconvénient : on pénalise les processus de petite taille.

15
Multiprogrammation avec partitions variables 10

 Au lancement du système, on crée une seule zone libre de taille


maximale. Lorsqu'on charge un programme, on le place dans une zone
libre suffisante, et on lui alloue exactement la mémoire nécessaire.

 Le reste devient une nouvelle zone libre. Lorsqu'un programme


s'achève, sa partition redevient libre, et peut éventuellement grossir
une zone libre voisine. Il n'y a donc ce qu’on appelle fragmentation
externe

16
Fragmentation de la mémoire 11

 Le phénomène que l’on appelle fragmentation est due à l’apparition de


« trous » dans la mémoire.
 Cela peut constituer un gaspillage de mémoire : si les « trous » qui
restent sont trop petits pour accommoder un processus.

17
Comment éviter la fragmentation 11

18
5
fonctions du gestionnaire de mémoire

19
fonctions du gestionnaire de mémoire 5

gestionnaire de
mémoire

L'allocation de La segmentation
La mémoire
la mémoire aux La protection de l'espace
virtuelle
processus d'adressage
- Répertorier les Eviter le plantage du - Pouvoir coder les Son rôle est de
emplacements aux chevauchements segments donner aux
libres de la mémoire des programmes séparément applications une
mémoire de taille
- Allouer la mémoire - Permettre des degrés supérieure à celle de
nécessaire aux de protection la mémoire
nouveaux différents selon les principale.
processus segments

- Récupérer la - Accepter le partage


mémoire des de certains
processus qui segments.
s'achèvent

20
Stratégies de gestion de la mémoire 12

Swapping
table de bits

listes
chaînées
Mémoire
virtuelle
Segmentation

Pagination

21
L’espace d’adressage 13

 Sur les ordinateurs personnels, il est courant d'avoir plusieurs programmes ouverts à
la fois (un traitement de texte, un programme de messagerie, un Navigateur Web).
 L'un d'entre eux ayant plus de focus, les autres étant réactivés en un clic de
souris.
 Cette situation nécessite l’abstraction de l’espace mémoire.
 L’espace d’adressage est une abstraction de la mémoire.

 Exemples:
 Domaine de la téléphonie: l’ensemble des numéro de téléphone composé de 7
chiffres est un espace d’adressage.
 L'ensemble des domaines Internet .com est un espace d'adressage.

22
L’espace d’adressage physique 14

23
Swapping 15

 La mémoire principale est insuffisante pour maintenir tous les


processus courant actifs: il faut conserver les processus
supplémentaires sur un disque.

Le transfert temporaire d’un processus de la mémoire principale à une
mémoire auxiliaire sera ensuite ramené en mémoire pour continuer son
exécution.

 Mémoire auxiliaire (backing store): disque rapide suffisamment grand


pour pouvoir ranger les copies de toutes les images mémoire de tous les
utilisateurs.

 Contrainte:
Processus à transférer doit être inactif.
24
Swapping 16

25
Swapping 16

26
Swapping 17

Gestion de la mémoire avec le Swapping ou le va et vient

27
Gestion de la mémoire par table de bits 18

 La mémoire est divisée en unités (quelques mots mémoire à plusieurs kilo-


octets), à chaque unité on fait correspondre dans une table de bits (bit map) :
 la valeur 1 si l'unité mémoire est occupée ; • la valeur 0 si l'unité mémoire est
libre (b).

Bit map
k zéro consécutifs
Disponibles ?

28
Gestion de la mémoire par table de bits 19

Si l’unité est petite, alors le tableau de bits est important.

Si l’unité d’allocation est grande, le tableau de bits est plus petit.

- Avantage du bit map:


Moyen simple de garder une trace des mots mémoire dans une quantité
fixe de mémoire

- Inconvénient du bit map:


Lorsqu’un processus de k unités est chargé en mémoire, le gestionnaire de
mémoire doit parcourir le bit map pour trouver une suite de k bits
consécutifs dont la valeur est 0.

Cette recherche peut être lente.


29
Gestion de la mémoire par listes chaînées 20

 Maintenir une liste chaînée des segments de mémoire allouées et


libres.

 Dans cette liste un élément est soit un processus, soit un trou entre deux
processus

30
21

Gestion de la mémoire virtuelle


par la pagination ou la
segmentation

31
La mémoire virtuelle 22

 La Mémoire Virtuelle est une mémoire idéale, dont les adresses commencent à 0, et de
capacité non limitée
 Le principe de la mémoire virtuelle consiste à considérer un espace d'adressage virtuel
supérieur à la taille de la mémoire physique.
 Le SE conserve les parties de programme en cours d’utilisation dans la mémoire
principale et le reste sur le disque.
 Les programmes peuvent être plus grands que la mémoire physique.
 Rend plus facile la tâche de programmation: le programmeur n’a pas besoin de
se préoccuper de la quantité de mémoire physique disponible.

Implantation
 Pagination à la demande
 Segmentation à la demande
32
23

33
La pagination 24

• Le principe de la pagination réside dans


la division de la mémoire en zones de
tailles fixes appelées "pages".

• La MC est elle aussi découpée en unités


physiques de même taille appelées cadres

• L’espace de travail d'un processus est


divisé en pages. Quand le processus
est exécuté, seules les pages dont il a
besoin sont chargées en mémoire
centrale.
34
Principe de la pagination 25

35
La segmentation 26

• La segmentation consiste à découper la mémoire virtuelle en blocs de mémoire de


taille variable qu’on appelle segments.
• Chacun des segments est de longueur variable ; la taille dépend de la nature du segment
dans le programme.
• Chaque segment possède un numéro et une longueur.
• Un segment mémoire est un espace d'adressage indépendant défini par deux valeurs :
1. L'adresse où il commence (aussi appelée base, ou adresse de base)
2. Sa taille ou son décalage (aussi appelée limite ou offset)

Numéro de segment déplacement

36
Principe de la segmentation 27

37
La gestion de la mémoire sous Windows 27

38
La gestion de la mémoire sous Linux 28

les différentes mémoires d’un système LINUX.


Used : la mémoire utilisée par les processeurs et le noyau.
Free : la mémoire qui est disponible.
Shared : la mémoire qui est partagée par plusieurs processus en même temps.
Bufered/cache : elle accélère les accès disques et fichiers.
SWAP : Si des processus sont inoccupés, ils peuvent être transférés dans le SWAP et
libérer de la mémoire vive.

39
29
HTOP: analyse et optimise la mémoire
Il vous faudra installer HTOP de la façon suivante ⇒
apt-get update ⇒ pour mettre les dépôts a jour
apt-get install -y htop ⇒ lancer l’installation

40
Exercices d’application 30

Travaux Pratiques

TP4

41

Vous aimerez peut-être aussi