Systèmes d'Exploitation - chp3-gestion mémoire

44
Gestion de la Mémoire Partitionnement, Pagination, Segmentation Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 1 Systèmes d’Exploitation 2 ème Année (GL-RT-IIA-IMI)

Transcript of Systèmes d'Exploitation - chp3-gestion mémoire

Page 1: Systèmes d'Exploitation - chp3-gestion mémoire

Gestion de la MémoirePartitionnement, Pagination, Segmentation

Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 1

Systèmes d’Exploitation2ème Année (GL-RT-I IA-IMI)

Page 2: Systèmes d'Exploitation - chp3-gestion mémoire

CONCEPTS DE BASEGestion de la Mémoire

Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 2

Page 3: Systèmes d'Exploitation - chp3-gestion mémoire

Gestion de la Mémoire

• La mémoire est une ressource importante et limitée qui doit être gérer d’une façon optimale.

• Plusieurs types de mémoires peuvent être utilisés lors de l’exécution d’un programme.§ Mais, pour s’exécuter, un programme doit être placé en mémoire centrale.

• La gestion de la mémoire peut se faire avec ou sans va-et-vient (swapping).

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 3

Concepts de Base

Capacité de stockage

Cache

Disques

Bandes

Registres UC

Hiérarchie des Mémoires

Vitesse d’accès

Mem. volatile

Mem. Non volatile

RAM/ ROM

Page 4: Systèmes d'Exploitation - chp3-gestion mémoire

Gestion de la Mémoire Centrale: Objectifs

• Optimisation de l ’utilisation de la mémoire principale (RAM)• Les plus grand nombre possible de processus actifs doit y être gardé,

de façon à optimiser le fonctionnement du système en multiprogrammation§ Garder le système le plus occupé possible, surtout l’UCT§ S’adapter aux besoins de mémoire de l ’usager§ Allocation dynamique au besoin

• Concepts§ Adresse physique et adresse logique§ Remplacement§ Allocation contiguë (partitions fixes et variables)§ Pagination§ Segmentation§ Segmentation paginée

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 4

Concepts de Base

Page 5: Systèmes d'Exploitation - chp3-gestion mémoire

Mémoire Physique et Mémoire Logique

• Mémoire physique:§ La mémoire principale RAM de la machine

§ Adresses physiques: les adresses de cette mémoire

• Mémoire logique: l’espace d’adressage d’un programme§ Adresses logiques: les adresses dans cet espace

• Il faut séparer ces concepts car normalement, les programmes sont chargés de fois en fois dans des positions différentes de la mémoire§ Donc adresse physique ≠ adresse logique

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 5

Concepts de Base

Page 6: Systèmes d'Exploitation - chp3-gestion mémoire

Traduction Adresses Physiques & Logiques

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 6

Concepts de Base

MMU: Memory Management Unit

Page 7: Systèmes d'Exploitation - chp3-gestion mémoire

Chargement d’un Module en Mémoire

• Étapes de chargement§ Trouver de la mémoire libre pour un module de chargement

o Contiguë ou non contiguë§ Traduire les adresses du programme et effectuer les liaisons par rapport aux

adresses où le module est chargé• Dans les premiers systèmes, un programme était toujours chargé dans la

même zone mémoire• La multiprogrammation et l’allocation dynamique ont engendré le besoin de

charger un programme dans différentes positions§ Au début, ceci était fait par le chargeur (loader) qui changeait les adresses

avant de lancer l ’exécution§ Aujourd’hui, ceci est fait par le MMU au fur et à mesure que le programme est

exécuté• Ceci ne cause pas d’hausse de temps d ’exécution, car le MMU agit en

parallèle avec d’autres fonctions d’UCT§ Par ex. l ’MMU peut préparer l ’adresse d’une instruction en même temps que

l’UCT exécute l ’instruction précédente

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 7

Concepts de Base

Page 8: Systèmes d'Exploitation - chp3-gestion mémoire

Permutation (Swapping)

• Un programme, ou une partie de programme, peut être temporairement enlevé de mémoire pour permettre l’exécution d’autres programmes§ I l est mis dans la mémoire secondaire, normalement le disque

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 8

Concepts de Base

Page 9: Systèmes d'Exploitation - chp3-gestion mémoire

Allocation en Mémoire

• Plusieurs types d’allocation§ Contiguë: Le processus est chargé en entier dans la mémoire, dans un bloc

contiguo L’allocation contiguë n’est plus utilisée aujourd’hui pour la mémoire centrale,

mais les concepts que nous verrons sont encore utilisés pour l’allocation de fichiers sur disques

§ Non-Contiguë: Le processus est subdivisé et éparpillé dans la RAM, et un mécanisme est défini pour retrouver les différentes briques une fois le programme chargé

• La mémoire peut être:§ Partitionnée : subdivisée depuis le démarrage en partitions fixes

§ Non-partitionnée: les partitions seront créées au fur et à mesure que les programmes sont chargés et déchargés de la mémoire

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 9

Concepts de Base

Page 10: Systèmes d'Exploitation - chp3-gestion mémoire

ALLOCATION CONTIGUËGestion de la Mémoire

Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 10

Page 11: Systèmes d'Exploitation - chp3-gestion mémoire

Partitions Fixes

• Mémoire principale subdivisée en régions distinctes: partitions

• Les partitions sont soit de même taille ou de tailles inégales

• N’importe quel programme peut être affecté à une partition qui soit suffisamment grande § Un programme doit tenir sur une seule partition§ Une partition ne peut contenir qu’un seul

programme

• Problème de fragmentation: Il y’a assez d’espace pour exécuter un programme, mais cet espace est fragmenté de façon non contiguë§ Fragmentation interne : espace entre les partitions§ Fragmentation externe : espace dans les partitions

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 11

Allocation Contiguë

Page 12: Systèmes d'Exploitation - chp3-gestion mémoire

Partitions Fixes de Tailles Égales

• Diviser la mémoire en N partitions de même taille• Chaque nouvelle tâche est placée dans la première partition libre

• Problèmes:§ La taille de partition doit être assez grande pour n’importe quel processus§ Gros problème de fragmentation interne

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 12

Allocation Contiguë

Noyau

Partition 1

Partition 3

Partition 4

File unique

Partition 2

Page 13: Systèmes d'Exploitation - chp3-gestion mémoire

Partitions Fixes de Tailles Inégales

• Diviser la mémoire en N partitions qui peuvent être de tailles inégales et associer à chaque partition une file d’attente.

• Chaque nouvelle tâche est placée dans la file d’attente de la plus petite partition qui peut la contenir.

• L’espace non utilisé dans une partition est perdu (pb de fragmentation)

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 13

Allocation Contiguë

Noyau

Partition 1

Partition 2

Partition 3 Files multiples Problème:

Saturation des files d’attente des petites partitions

Noyau

Partition 1

Partition 2

Partition 3

File unique

Page 14: Systèmes d'Exploitation - chp3-gestion mémoire

Partitions Dynamiques

• Initialement, la mémoire n’est pas partitionnée• Les partitions se créent au fur et à mesure que les processus entrent et

sortent de la mémoire§ I ls varient en nombre, en taille et en position

• Utilise la technique de va-et-vient ou encore swapping§ La mémoire est une ressource ne pouvant pas contenir tous les processus. Il est

alors nécessaire de déplacer quelques processus sur le disque et de les ramener en RAM avant de les exécuter.

• Problème de fragmentation externe

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 14

Allocation Contiguë

SE SE SESESE

A A

B B

C

B

SE SEC

Temps

Page 15: Systèmes d'Exploitation - chp3-gestion mémoire

Partitions Dynamiques: Exemple

• Mémoire=1024K, OS=128K, P1=320K, P2=224K, P3=228K, P4=128K.

• (d) Il y a un trou de 64K après avoir chargé 3 processus: pas assez d’espace pour d’autres processus

• Si tous les processus se bloquent (p.ex. attente d’un événement), P2 peut être permuté et P4=128K peut être chargé.

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 15

Allocation Contiguë

Page 16: Systèmes d'Exploitation - chp3-gestion mémoire

Partitions Dynamiques: Exemple

• (e-f ) P2 est suspendu, P4 est chargé. Un trou de 224-128=96K est créé (fragmentation externe)

• (g-h) P1 se termine ou il est suspendu, P2 est repris à sa place: produisant un autre trou de 320-224=96K...

• Nous avons 3 trous petits et probablement inutiles. § 96+96+64=256K de fragmentation externe

• COMPRESSION pour en faire un seul trou de 256K

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 16

Allocation Contiguë

Page 17: Systèmes d'Exploitation - chp3-gestion mémoire

Algorithmes de Placement

• Pour décider l’emplacement du prochain processus

• But: réduire l’utilisation de la compression qui prend du temps...

• Choix possibles:§ Best fit: choisir le plus petit trou (meilleur

accès)§ Worst fit: le plus grand (pire accès)

§ First-fit: choisir 1er trou à partir du début (premier accès)

§ Next-fit: choisir 1er trou à partir du dernier placement (prochain accès)

• En pratique, utiliser l’algorithme le plus simple, donc FF

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 17

Allocation Contiguë

Page 18: Systèmes d'Exploitation - chp3-gestion mémoire

ALLOCATION NON CONTIGUËGestion de la Mémoire

Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 18

Page 19: Systèmes d'Exploitation - chp3-gestion mémoire

Allocation Non Contiguë

• Afin de réduire la fragmentation, tous les systèmes d’aujourd’hui utilisent l’allocation non contiguë§ diviser un programme en morceaux et permettre l’allocation séparée de

chaque morceau§ les morceaux sont beaucoup plus petits que le programme entier et donc

permettent une utilisation plus efficace de la mémoireo les petits trous peuvent être utilisés plus facilement

• Il y a deux techniques de base pour faire ceci: la pagination et la segmentation§ La segmentation utilise des parties de programme qui ont une valeur

logique (des modules)§ La pagination utilise des parties de programme arbitraires (morcellement

du programmes en pages de longueur fixe). § Elles peuvent être combinées

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 19

Allocation Non Contiguë

Page 20: Systèmes d'Exploitation - chp3-gestion mémoire

ALLOCATION NON CONTIGUË : PAGINATIONGestion de la Mémoire

Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 20

Page 21: Systèmes d'Exploitation - chp3-gestion mémoire

Définition

• La mémoire est partitionnée en petits morceaux de même taille: les pages physiques ou cadres ou frames

• Chaque processus est aussi partitionné en petits morceaux de même taille appelés pages logiques (pages)

• Les pages logiques d’un processus peuvent donc être assignées aux cadres disponibles n’importe où en mémoire principale

• Conséquences:§ un processus peut être éparpillé n’importe où dans la mémoire physique.

§ la fragmentation externe est éliminée

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 21

Pagination

Page 22: Systèmes d'Exploitation - chp3-gestion mémoire

Exemple

• Supposons que le processus B se termine ou est suspendu

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 22

Pagination

Page 23: Systèmes d'Exploitation - chp3-gestion mémoire

Exemple

• Nous pouvons maintenant transférer en mémoire un processus D, qui demande 5 cadres§ Bien qu’il n’y ait pas 5 cadres contigus

disponibles

• La fragmentation externe est limitée au cas que le nombre de pages disponibles n’est pas suffisant pour exécuter un processus en attente

• Seule la dernière page d’un processus peut souffrir de fragmentation interne§ En moyenne 1/2 cadre par processus

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 23

Pagination

Page 24: Systèmes d'Exploitation - chp3-gestion mémoire

Table de Page

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 24

Pagination

Les entrées dans la table de pages sont aussi appelées descripteurs de pages

Page 25: Systèmes d'Exploitation - chp3-gestion mémoire

Table de Page

• Le SE doit maintenir une table de pages pour chaque processus• Chaque descripteur de pages contient le numéro de cadre où la page

correspondante est physiquement localisée

• Une table de pages est indexée par le numéro de la page afin d’obtenir le numéro du cadre

• Une liste de cadres disponibles est également maintenue (free frame list)

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 25

Pagination

Page 26: Systèmes d'Exploitation - chp3-gestion mémoire

Traduction d’Adresses

• L’adresse logique est facilement traduite en adresse physique § car la tail le des pages est une puissance de 2§ les pages débutent toujours à des adresses qui sont

des puissances de 2§ qui ont autant de 0 à droite que la longueur de l ’offset§ donc ces 0 sont remplacés par l ’offset (déplacement)

• Ex: si 16 bits sont utilisés pour les adresses et que la taille d’une page = 1K: on a besoin de 10 bits pour le décalage, laissant ainsi 6 bits pour le numéro de page

• L’adresse logique (p,d) est traduite en adresse physique (f,d) en utilisant p comme index sur la table des pages et en le remplaçant par l ’adresse f trouvée depuis la table§ d ne change pas

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 26

Pagination

Page 27: Systèmes d'Exploitation - chp3-gestion mémoire

Traduction d’Adresses

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 27

Pagination

Page 28: Systèmes d'Exploitation - chp3-gestion mémoire

Traduction d’Adresses

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 28

Pagination

Page 29: Systèmes d'Exploitation - chp3-gestion mémoire

Exercice 1

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 29

Pagination

• Hypothèses:§ Bus d’adresses de 16 bits

§ Taille d’une page 4Ko = 4096 o

(adresse sur 12bits)

§ Table de page (ci contre)

• Question§ Calculer l’adresse physique correspondante à

l’adresse logique (virtuelle) 8196

Page 30: Systèmes d'Exploitation - chp3-gestion mémoire

Exercice 1 - Correction

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 30

Pagination

• Adresse physique= 24580

Page 31: Systèmes d'Exploitation - chp3-gestion mémoire

Exercice 2

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 31

Pagination

• Soit un ordinateur ayant :§ Une mémoire physique de capacité 128 Mo

§ Une architecture 32 bits.

§ La taille d'une page égale à 4 Ko, § Une adresse virtuelle indexe un octet

• Donner la taille de la table des pages.§ Chaque entrée de la table (référence d’un cadre + bit présence

absence)

Page 32: Systèmes d'Exploitation - chp3-gestion mémoire

Exercice 2: Correction

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 32

Pagination• Taille table des pages = Taille d'une entrée de la table x Nombre d'entrées de la

table• Nombre d'entrées de la table = Taille de l'espace virtuelle / taille d'une page• Taille de l'espace virtuelle = nombre d'adresses virtuelles possible x 1octet = 232

octets§ (car par défaut une adresse virtuelle indexe un octet dans la mémoire virtuelle)

• Nombre d'entrées de la table = (232 octet)/(4x1024 octet) = 220 entrées• La taille d'une entrée de la table des pages =1 bit (d'absence/présence) + nombre

de bits utilisés pour référencer un cadre de page dans la mémoire physique.• Pour déterminer le nombre de ces bits il faut déterminer le nombre de cadres de

page, soit égal à: (128 x 1024 ko)/(4 ko) = (27 x 210)/(22)= 215 cadres de pages• D'où le nombre de bits nécessaires pour référencer les cadres de page est 15

è taille d'une entrée de la table des pages = 1 + 15 = 16 bits• Taille table des pages = taille d'une entrée de la table x le nombre d'entrées de la

table = 220 x 16 bits = 16 Mbits = 2 Mo

Page 33: Systèmes d'Exploitation - chp3-gestion mémoire

Défaut de Page

• Dans la Table de Page, lorsque le bit de présence est à 0, un défaut de page se produit et le système effectue un déroutement pour récupérer la page manquante à partir du disque.

• Pour remettre la page récupérée sur la RAM, il faut vider une case de la mémoire physique en utilisant un algorithme de remplacement de page.

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 33

Pagination

Page 34: Systèmes d'Exploitation - chp3-gestion mémoire

Algorithmes de Remplacement de Page

• Les algorithmes de remplacement de pages sont (entre autres):§ L’algorithme First In First Out (FIFO):

o Remplacer la page la plus ancienne dans la mémoire.

§ L’algorithme Least Recently Used (LRU):o Remplacer la page qui est restée inutilisée le plus de temps.

§ L’algorithme optimalo Retirer de la mémoire la page qui sera référencée le plus tard. C’est un

algorithme théorique car i l nécessite la connaissance des requêtes futures.

§ L’algorithme Not Recently Used (NRU):o Remplacer la page la non récemment utilisée; c’est une solution matérielle.

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 34

Pagination

Page 35: Systèmes d'Exploitation - chp3-gestion mémoire

ALLOCATION NON CONTIGUË : SEGMENTATIONGestion de la Mémoire

Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 35

Page 36: Systèmes d'Exploitation - chp3-gestion mémoire

Technique de Segmentation

• La segmentation utilise des parties de programme qui ont une valeur logique (des modules)§ Générés à la compilation, § Un segment est un ensemble d'adresses virtuelles contiguës.§ Chaque segment est repéré par son numéro S et sa longueur variable L.

• Contrairement à la pagination, la segmentation est "connue" du processus§ Une adresse est donnée par un couple (S , d),

o S est le n° du segment o d le déplacement dans le segment, d Î [0 , L [ .

• Pour calculer l'adresse physique, on utilise une table des segments.

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 36

Segmentation

Page 37: Systèmes d'Exploitation - chp3-gestion mémoire

Table de Segments

• Le tableau des segments contient des descripteurs de segments § B : l’adresse de base§ L : la longueur du segment§ p : Infos de protection

• Dans le PCB du processus il y aura un pointeur à l’adresse en mémoire de la table de segments§ I l y aura aussi là dedans le nombre de segments dans le processus

• Au moment de la commutation de contexte, ces infos seront chargées dans les registres appropriés d’UCT

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 37

Segmentation

Page 38: Systèmes d'Exploitation - chp3-gestion mémoire

Traduction d’Adresses

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 38

Segmentation

Page 39: Systèmes d'Exploitation - chp3-gestion mémoire

Traduction d’Adresses

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 39

Segmentation

Page 40: Systèmes d'Exploitation - chp3-gestion mémoire

Partage de Segments

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 40

Segmentation

Page 41: Systèmes d'Exploitation - chp3-gestion mémoire

Partage de Segments

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 41

Segmentation

ProgrammeDonnées proc 1

Données proc 2

Instruction

R1

R2

+

+

• La même instruction, si elle est exécutée § par le proc 1, son adresse est modifiée par le contenu du registre 1§ par le proc 2, son adresse est modifiée par le contenu du registre 2

• Ceci fonctionne même si l’instruction est exécutée par plusieurs UCT au même instant, si les registres se trouvent dans des UCT différentes

Page 42: Systèmes d'Exploitation - chp3-gestion mémoire

Segmentation Simple: Avantages et Inconvénients

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 42

Segmentation

• Avantages: § l ’unité d’allocation de mémoire est plus petite que le programme entier

§ l ’unité d’allocation de mémoire est une entité logique connue par le programmeur

§ Les segments peuvent changer de place en mémoire

§ La protection et le partage de segments sont aisés (en principe)

• Désavantage: le problème des partitions dynamiques § Mêmes problématiques que pour l’allocation contiguë à partitions

dynamiques

§ La fragmentation externe n’est pas éliminée:o trous en mémoire, compression?

Page 43: Systèmes d'Exploitation - chp3-gestion mémoire

Segmentation Paginée

Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 43

Segmentation

• La taille d'un segment peut être importante, d'où un temps de chargement long qui peut en résulter. La pagination des segments peut être une solution.

• Une adresse virtuelle (S , d) est transformée en (S , P , d' ), où P est un numéro de page et d’ un déplacement dans la page P.

• Exemple : avec des pages de 4 Ko, l'adresse logique (2 , 9392) est transformée en (2 , 2, 1200)

Page 44: Systèmes d'Exploitation - chp3-gestion mémoire

Références

Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 44

• Wassim Youssef, Les systèmes d’exploitation, Cours ISI, 2015

• Mona Laaroussi, Les systèmes d’exploitation, Cours INSAT, 2009