Vous êtes sur la page 1sur 60

Ministère de l'Enseignement Supérieur et de la Recherche Scientifique

Direction Générale des Etudes Technologiques


Institut Supérieur des Etudes Technologiques de Djerba

systèmes d’exploitation
Chapitre 5
Gestion de la mémoire (partie 01)
Plan

1. • Définitions

2. • Fonctionnement

3. • Propriétés d’un processus

4. • Exemple De Périphérique D’entrée-sortie

5.
Définitions
3

- Introduction : Le terme « mémoire » fait surtout référence à la


mémoire principale 'la RAM' mais la gestion de celle-ci demande la
contribution de la mémoire auxiliaire et à la mémoire cache..
Définitions
4

- Problèmes à résoudre

Problème de ressource : La mémoire centrale est une ressource


sollicitée par tout processus, un programme doit être chargé dans la mémoire
centrale pour pouvoir être exécuté.
❑ Démarrer processus (p) ➔ Allouer (taille(p)).
❑ Terminer processus (p) ➔ Libérer (zone allouée à (p)).

Problème de sécurité : En multiprogrammation, ou plusieurs


processus indépendant peuvent s’exécutés en même temps, un processus
ne doit pouvoir accéder à une mémoire réservée à un autre.
Définitions
5

Notion d’adressage logique et adressage physique

- Un processus est créé


❑soit par le système d’exploitation (Processus système ).
❑ soit par l’utilisateur au moment où l’exécution du programme doit commencer
(Processus utilisateur ).

- Lors de son exécution, un programme peut donner naissance à


plusieurs processus.

le processus init est le père de tous les autres processus


Définitions
6

Notion d’adressage logique et adressage physique

- Adresse physique
C’est une adresse chargée dans le registre
d’adresse de la mémoire, c’est l’adresse vue
par l’unité mémoire. Elle est le numéro d'une
case de la mémoire centrale.

Adresses Mot mémoire


Définitions
7

Notion d’adressage logique et adressage physique

- Adresse physique

Nombre de cases mémoires


N = 2n (en bits)
Capacité de stockage
C = N * m (en bits)
Définitions
8

Notion d’adressage logique et adressage physique

- Adresse logique
Appelée aussi adresse virtuelle, C’est une adresse générée par le processeur
pendant l'exécution d'un programme. C’est-une adresse utilisée par le programme
et est calculée lors de la compilation.
Définitions
9

Notion d’adressage logique et adressage physique

- liaison d'adresses
C’est la correspondance entre adresse logique et adresse physique. Cette
correspondance est nécessaire lors de l’exécution des processus.
Le dispositif matériel appelé MMU (Memory Management Unit " Unité de Gestion
Mémoire") permet la conversion des adresses logiques en adresses physiques.
Définitions
10

Notion d’adressage logique et adressage physique

- Technique de conversion
Le MMU fait partie de microprocesseur contient un registre nommé registre de
translation (registre de base) et un autre nommé registre limite (registre d'étendue).
Ces deux registres permettent aux processus de se déplacer en mémoire.
❑ Registre de translation (registre de base) contient l'adresse d'implantation du
processus actif. L’adresse physique est obtenue en ajoutant le contenu de ce
registre à chaque adresse logique..
Définitions
11

Notion d’adressage logique et adressage physique

- Technique de conversion
Définitions
12

Notion d’adressage logique et adressage physique

- Technique de conversion
❑ Registre limite (registre d'étendue) : contient la taille de la mémoire réserve
pour un processus, toute adresse logique de ce processus doit être inférieure à la
valeur du registre limite.
Architectures 32 bits et 64 bits
13

❑ Un système d'exploitation de 32 bits ne pourra pas utiliser plus de 4 GMots de


RAM 232 = 4 GMots
❑ Un système d'exploitation de 64 bits peut utiliser jusqu’a 16 ExaMots de RAM
264 = 16 ExaMots .
gestionnaire de mémoire
14

Le gestionnaire de mémoire est un sous-ensemble du système d’exploitation


permettant de gère l'allocation de l'espace mémoire au système et aux processus
utilisateurs.

Rôle du gestionnaire de mémoire

Le gestionnaire de mémoire a pour rôle de :


 Allouer de la mémoire aux processus ;

 Connaître les zones mémoire libres ou occupées ;

 Récupérer de la mémoire en fin d’exécution ;

 Traiter le va-et-vient entre le disque et la mémoire centrale (swap).


stratégies d'allocation de la mémoire
15

Deux modes de gestion de la RAM,


❑ allocation contigüe
❑ allocation non contiguë (paginée).
stratégies d'allocation de la mémoire
16

VI Allocation contigüe
Une partition est un emplacement contigu de la mémoire de taille limité, qui
est décrit par une adresse de début et une adresse de fin,
le processus sera placé dans une seule partition (zone).
❑ Partitions de taille fixe : Divise la mémoire en bloc (ou fragment) lors de
démarrage du système, les tailles peuvent être identiques ou pas mais
fixes.
❑ Partitions de taille variable : chaque processus se voit allouer un bloc de
taille différente.
allocation contigüe de taille fixe
17

bloc (ou fragment), de tailles identiques

❑ On divise la mémoire en blocs de taille


fixe, par exemple 1Mo.
❑ Chaque processus est placé dans un bloc
libre.
allocation contigüe de taille fixe
18
allocation contigüe de taille fixe
19
allocation contigüe de taille fixe
20
allocation contigüe de taille fixe
21
allocation contigüe de taille fixe
22

Ne peut être admis en mémoire!


allocation contigüe de taille fixe
23

problèmes avec l’allocation contigüe avec


partitions de taille fixe?
❑ Ne peut allouer un programme si sa taille dépasse
celle d’une partition
❑ Beaucoup d’espace mémoire perdu: fragmentation
interne.

Pas de Fragmentation externe, aucun espace à l’extérieur


d’une partition n’est perdu, il peut toujours être alloué à un
autre processus peu importe son emplacement
allocation contigüe de taille fixe
24

bloc (ou fragment), de tailles Différentes

❑ Les petits programmes sont alloués aux petits blocs.


❑ Le problème de la fragmentation interne reste.

Algorithme de placement
❑ Utiliser le plus petit bloc possible,
❑ Une file d’attente par bloc de mêmes tailles,
❑ Inefficacité si les gros blocs ne sont pas requis.
Allocation mémoire contigüe, taille variable
25

❑ Les partitions sont de longueurs variables et leur nombre


n’est pas fixe,
❑ Un processus reçoit exactement la mémoire dont il a
besoin,
❑ Éventuellement ceci créé des trous dans la mémoire
(espace alloué puis désalloué) : fragmentation externe.
Allocation mémoire contigüe, taille variable
26
Allocation mémoire contigüe, taille variable
27
Allocation mémoire contigüe, taille variable
28
Allocation mémoire contigüe, taille variable
29
Allocation mémoire contigüe, taille variable
30
Allocation mémoire contigüe, taille variable
31
Allocation mémoire contigüe, taille variable
32
Allocation mémoire contigüe, taille variable
33

Qu’arrive-t-il si un processus (ex: P2) se termine?


Allocation mémoire contigüe, taille variable
34

Cela crée une fragmentation externe

aucun espace à l’intérieur d’une partition n’est


perdu car chaque partition est créée en fonction de
la taille de son processus
Allocation mémoire contigüe, taille variable
35

aucun espace à l’intérieur d’une partition n’est


perdu car chaque partition est créée en fonction de
la taille de son processus
Algorithmes d’allocation de mémoire
36

Plusieurs algorithmes d’allocation permettant le choix d’une partition,


parmi lesquelles citons :
◼ Premier ajustement (first fit) : Le processus est mis dans le premier bloc de mémoire
suffisamment grand à partir du début de la mémoire. Cette stratégie est rapide.
◼ Prochaine allocation (Next Fit) : Le processus est mis dans le premier bloc de
mémoire suffisamment grand à partir du dernier bloc alloué.
◼ Meilleur ajustement (best fit) : Le processus est mis dans le bloc de mémoire le plus
petit dont la taille est suffisamment grande pour l’espace requis.
◼ Pire ajustement (worst fit) : Le processus est mis dans le bloc de mémoire le plus
grand.
Algorithmes d’allocation de mémoire

37

Exercice 01 : On considère un gestionnaire de la mémoire qui utilise


une allocation dynamique (partitions variables). La figure suivante
représente une configuration de la mémoire à un instant donné (partie
hachurée est libre)

P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M
Algorithmes d’allocation de mémoire

38

P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

Exercice 01 : Les trois prochaines requêtes de mémoire sont pour A (40M), B


(20M) et C (10M).
Donnez l’adresse de début pour chacun des blocs A, B et C en utilisant les
algorithmes de placement First fit, Next Fit, Best fit et Worst fit.
Algorithmes d’allocation de mémoire

39

P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

Solution
Algorithmes d’allocation de mémoire

40

P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

Requête A(40M)

P1 P21 P13 P1 P11 P52


A 04

20M 20M 40M 40M 20M 20M 10M 60M 40M 20M 30M 40M 40M

80
Algorithmes d’allocation de mémoire

41

Requête B (20M)

P1 P21 P13 P104 P11 P52


B A)

20M 20M 40M 40M 20 20M 10 60M 40M 20M 30M 40M 40M
M M
20 80
Algorithmes d’allocation de mémoire

42

Requête C (10M)

P1 P21 P13 P104 P11 P52


B A C

20M 20M 40M 40M 10M 10 20M 10M 60M 40M 20M 30M 40M 40M

20 80 120
Algorithmes d’allocation de mémoire

43

b. Algorithme Next Fit

P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

Solution
Algorithmes d’allocation de mémoire

44

P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

Requête A(40M)

P1 P21 P13 P1 P11 P52


A 04

20M 20M 40M 40M 20M 20M 10M 60M 40M 20M 30M 40M 40M

80
Algorithmes d’allocation de mémoire

45

Requête B (20M)

B
P1 P21 P13 P1 P11 P52
A 04

20M 20M 40M 40M 20M 20M 10M 60M 40M 20M 30M 40M 40M

80 120
Algorithmes d’allocation de mémoire

46

Requête C (10M)

B C
P1 P21 P13 P1 P11 P52
A 04

20M 20M 40M 40M 20M 20M 10M 60M 40M 20M 30M 40M 40M

80 120 140
Algorithmes d’allocation de mémoire

47

b. Algorithme Best fit

P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

Solution
Algorithmes d’allocation de mémoire

48

P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

Requête A(40M)

A
P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

230
Algorithmes d’allocation de mémoire

49

Requête B (20M)

B A
P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

20 230
Algorithmes d’allocation de mémoire

50

Requête C (10M)

B C A
P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

20 160 230
Algorithmes d’allocation de mémoire

51

D, Algorithme Worst fit

P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

Solution
Algorithmes d’allocation de mémoire

52

P1 P21 P13 P104 P11 P52

20M 20M 40M 60M 20M 10M 60M 40M 20M 30M 40M 40M

Requête A(40M)

P1 P21 P13 P1 P11 P52


A 04

20M 20M 40M 40M 20M 20M 10M 60M 40M 20M 30M 40M 40M

80
Algorithmes d’allocation de mémoire

53

Requête B (20M)

B
P1 P21 P13 P10 P11 P52
A 4

20M 20M 40M 40M 20M 20M 10M 60M 20M 20M 20M 30M 40M 40M

80 230
Algorithmes d’allocation de mémoire

54

Requête C (10M)

B C
P1 P21 P13 P104 P11 P52
A

20M 20M 40M 40M 20M 20M 10M 60M 20M 20M 20M 30M 40M 10M 30M

80 230 360
Algorithmes d’allocation de mémoire

55

Exercice 02 : Étant donné les zones mémoires libres suivantes :


100KB, 500KB, 200KB, 300KB et 600KB (dans cet ordre).
1. Comment les algorithmes de placement first fit, best fit et worst fit traiteraient
les requêtes des processus A (212KB), B (417KB), C (112KB) et D (426 KB)
dans cet ordre ?
2. b. Quel est l’algorithme qui réalise une utilisation efficace de la mémoire ?
Algorithmes d’allocation de mémoire

56

Solution
Algorithmes d’allocation de mémoire

57

A. Algorithme first fit

✓ Zones libres (configuration initiale) : 100K, 500K, 200K, 300K, 600K


❑ Placer A(212) dans 500K ==>nouvelle zone libre : 500-212 = 288K
✓ Zones libres : 100K, 288K, 200K, 300K, 600K
❑ Placer B(417) dans 600K ==>nouvelle zone libre : 600 - 417 =183K
✓ Zones libres : 100K, 288K, 200K, 300K, 183K
Placer C(112) dans 288K ==>nouvelle zone libre : 288 – 112 = 176K
Zones libres : 100K, 176K, 200K, 300K, 183K
Requête D(426) ne peut pas être servie; processus D doit attendre
Algorithmes d’allocation de mémoire

58

A. Algorithme Next fit

✓ Zones libres (configuration initiale) : 100K, 500K, 200K, 300K, 600K


❑ Placer A(212) dans 500K ==>nouvelle zone libre : 500-212 = 288K
✓ Zones libres : 100K, 288K, 200K, 300K, 600K
❑ Placer B(417) dans 600K ==>nouvelle zone libre : 600 - 417 =183K
✓ Zones libres : 100K, 288K, 200K, 300K, 183K
❑ Placer C(112) dans 183K ==>nouvelle zone libre : 183 – 112 = 71K
✓ Zones libres : 100K, 288K, 200K, 300K, 71K
❑ Requête D(426) ne peut pas être servie; processus D doit attendre
Algorithmes d’allocation de mémoire

59

A. Algorithme Best fit

✓ Zones libres (configuration initiale) : 100K, 500K, 200K, 300K, 600K


❑ Placer A(212) dans 300K ==>nouvelle zone libre : 300-212 = 88K
✓ Zones libres : 100K, 500K, 200K, 88K, 600K
❑ Placer B(417) dans 500K ==>nouvelle zone libre : 500 - 417 =83K
✓ Zones libres : 100K, 83K, 200K, 88K, 600K
❑ Placer C(112) dans 200K ==>nouvelle zone libre : 200 – 112 = 88K
✓ Zones libres : 100K, 83K, 88K, 300K, 600K
❑ Placer D(426) dans 600K ==>nouvelle zone libre : 600 – 426 = 174K
✓ Zones libres : 100K, 83K, 88K, 88K, 174K
Algorithmes d’allocation de mémoire

60

A. Algorithme Worst fit

✓ Zones libres (configuration initiale) : 100K, 500K, 200K, 300K, 600K


❑ Placer A(212) dans 600K ==>nouvelle zone libre : 600-212 = 388K
✓ Zones libres : 100K, 500K, 200K, 300K, 388K
❑ Placer B(417) dans 500K ==>nouvelle zone libre : 500 - 417 =83K
✓ Zones libres : 100K, 83K, 200K, 88K, 388K
❑ Placer C(112) dans 388K ==>nouvelle zone libre : 388 – 112 = 276K
✓ Zones libres : 100K, 83K, 88K, 88K, 276K
 Requête D(426) ne peut pas être servie; processus D doit attendre

b. D’après cet exemple Best fit est l’algorithme qui utilise efficacement la mémoire.

Vous aimerez peut-être aussi