Systèmes d'Exploitation - chp3-gestion mémoire
-
Upload
lilia-sfaxi -
Category
Technology
-
view
189 -
download
20
Transcript of 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)
CONCEPTS DE BASEGestion de la Mémoire
Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 2
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
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
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
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
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
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
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
ALLOCATION CONTIGUËGestion de la Mémoire
Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 10
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ë
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
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
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
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ë
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ë
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ë
ALLOCATION NON CONTIGUËGestion de la Mémoire
Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 18
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ë
ALLOCATION NON CONTIGUË : PAGINATIONGestion de la Mémoire
Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 20
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
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
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
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
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
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
Traduction d’Adresses
Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 27
Pagination
Traduction d’Adresses
Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 28
Pagination
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
Exercice 1 - Correction
Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 30
Pagination
• Adresse physique= 24580
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)
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
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
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
ALLOCATION NON CONTIGUË : SEGMENTATIONGestion de la Mémoire
Dr. Ghad a GASMI- Dr. L i l ia SFAXI S l id e 35
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
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
Traduction d’Adresses
Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 38
Segmentation
Traduction d’Adresses
Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 39
Segmentation
Partage de Segments
Dr. Ghad a GASMI - Dr. L i l ia SFAXI S l id e 40
Segmentation
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
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?
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)
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