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)
CONCEPTS DE BASE
Gestion de la Mémoire
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 3
Concepts de Base
Capacitédestockage
Cache
Disques
Bandes
Registres UC
Hiérarchie des Mémoires
Vitessed’accès
Mem.volatileMem.Nonvolatile
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. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 5
Concepts de Base
Traduction Adresses Physiques & Logiques
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 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
§ Il est mis dans la mémoire secondaire, normalement le disque
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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
contigu
o 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. Ghada GASMI- Dr. Lilia SFAXI Slide 9
Concepts de Base
ALLOCATION CONTIGUË
Gestion de la Mémoire
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 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
§ Ils 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. Ghada GASMI- Dr. Lilia SFAXI Slide 14
Allocation Contiguë
SE SE SESESE
A A
B B
C
B
SE SE
C
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. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 17
Allocation Contiguë
ALLOCATION NON CONTIGUË
Gestion de la Mémoire
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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émoire
o 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. Ghada GASMI- Dr. Lilia SFAXI Slide 19
Allocation Non Contiguë
ALLOCATION NON CONTIGUË : PAGINATION
Gestion de la Mémoire
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 21
Pagination
Exemple
• Supposons que le processus B se termine ou est suspendu
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 23
Pagination
Table de Page
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 25
Pagination
Traduction d’Adresses
• L’adresse logique est facilement traduite en adresse
physique
§ car la taille 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. Ghada GASMI- Dr. Lilia SFAXI Slide 26
Pagination
Traduction d’Adresses
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 27
Pagination
Traduction d’Adresses
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 28
Pagination
Exercice 1
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 30
Pagination
• Adresse physique= 24580
Exercice 2
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 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 optimal
o Retirer de la mémoire la page qui sera référencée le plus tard. C’est un
algorithme théorique car il 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. Ghada GASMI- Dr. Lilia SFAXI Slide 34
Pagination
ALLOCATION NON CONTIGUË : SEGMENTATION
Gestion de la Mémoire
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 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
§ Il 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. Ghada GASMI- Dr. Lilia SFAXI Slide 37
Segmentation
Traduction d’Adresses
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 38
Segmentation
Traduction d’Adresses
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 39
Segmentation
Partage de Segments
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 40
Segmentation
Partage de Segments
Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 41
Segmentation
Programme
Donné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. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 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. Ghada GASMI- Dr. Lilia SFAXI Slide 44
• Wassim Youssef, Les systèmes d’exploitation, Cours ISI, 2015
• Mona Laaroussi, Les systèmes d’exploitation, Cours INSAT, 2009

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

  • 1.
    Gestion de laMémoire Partitionnement, Pagination, Segmentation Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 1 Systèmes d’Exploitation 2ème Année (GL-RT-IIA-IMI)
  • 2.
    CONCEPTS DE BASE Gestionde la Mémoire Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 2
  • 3.
    Gestion de laMé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. Ghada GASMI- Dr. Lilia SFAXI Slide 3 Concepts de Base Capacitédestockage Cache Disques Bandes Registres UC Hiérarchie des Mémoires Vitessed’accès Mem.volatileMem.Nonvolatile RAM/ ROM
  • 4.
    Gestion de laMé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. Ghada GASMI- Dr. Lilia SFAXI Slide 4 Concepts de Base
  • 5.
    Mémoire Physique etMé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. Ghada GASMI- Dr. Lilia SFAXI Slide 5 Concepts de Base
  • 6.
    Traduction Adresses Physiques& Logiques Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 6 Concepts de Base MMU: Memory Management Unit
  • 7.
    Chargement d’un Moduleen 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. Ghada GASMI- Dr. Lilia SFAXI Slide 7 Concepts de Base
  • 8.
    Permutation (Swapping) • Unprogramme, ou une partie de programme, peut être temporairement enlevé de mémoire pour permettre l’exécution d’autres programmes § Il est mis dans la mémoire secondaire, normalement le disque Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 8 Concepts de Base
  • 9.
    Allocation en Mémoire •Plusieurs types d’allocation § Contiguë: Le processus est chargé en entier dans la mémoire, dans un bloc contigu o 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. Ghada GASMI- Dr. Lilia SFAXI Slide 9 Concepts de Base
  • 10.
    ALLOCATION CONTIGUË Gestion dela Mémoire Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 10
  • 11.
    Partitions Fixes • Mémoireprincipale 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. Ghada GASMI- Dr. Lilia SFAXI Slide 11 Allocation Contiguë
  • 12.
    Partitions Fixes deTailles É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. Ghada GASMI- Dr. Lilia SFAXI Slide 12 Allocation Contiguë Noyau Partition 1 Partition 3 Partition 4 File unique Partition 2
  • 13.
    Partitions Fixes deTailles 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. Ghada GASMI- Dr. Lilia SFAXI Slide 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
  • 14.
    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 § Ils 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. Ghada GASMI- Dr. Lilia SFAXI Slide 14 Allocation Contiguë SE SE SESESE A A B B C B SE SE C Temps
  • 15.
    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. Ghada GASMI- Dr. Lilia SFAXI Slide 15 Allocation Contiguë
  • 16.
    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. Ghada GASMI- Dr. Lilia SFAXI Slide 16 Allocation Contiguë
  • 17.
    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. Ghada GASMI- Dr. Lilia SFAXI Slide 17 Allocation Contiguë
  • 18.
    ALLOCATION NON CONTIGUË Gestionde la Mémoire Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 18
  • 19.
    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émoire o 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. Ghada GASMI- Dr. Lilia SFAXI Slide 19 Allocation Non Contiguë
  • 20.
    ALLOCATION NON CONTIGUË: PAGINATION Gestion de la Mémoire Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 20
  • 21.
    Définition • La mémoireest 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. Ghada GASMI- Dr. Lilia SFAXI Slide 21 Pagination
  • 22.
    Exemple • Supposons quele processus B se termine ou est suspendu Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 22 Pagination
  • 23.
    Exemple • Nous pouvonsmaintenant 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. Ghada GASMI- Dr. Lilia SFAXI Slide 23 Pagination
  • 24.
    Table de Page Dr.Ghada GASMI- Dr. Lilia SFAXI Slide 24 Pagination Les entrées dans la table de pages sont aussi appelées descripteurs de pages
  • 25.
    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. Ghada GASMI- Dr. Lilia SFAXI Slide 25 Pagination
  • 26.
    Traduction d’Adresses • L’adresselogique est facilement traduite en adresse physique § car la taille 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. Ghada GASMI- Dr. Lilia SFAXI Slide 26 Pagination
  • 27.
    Traduction d’Adresses Dr. GhadaGASMI- Dr. Lilia SFAXI Slide 27 Pagination
  • 28.
    Traduction d’Adresses Dr. GhadaGASMI- Dr. Lilia SFAXI Slide 28 Pagination
  • 29.
    Exercice 1 Dr. GhadaGASMI- Dr. Lilia SFAXI Slide 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
  • 30.
    Exercice 1 -Correction Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 30 Pagination • Adresse physique= 24580
  • 31.
    Exercice 2 Dr. GhadaGASMI- Dr. Lilia SFAXI Slide 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)
  • 32.
    Exercice 2: Correction Dr.Ghada GASMI- Dr. Lilia SFAXI Slide 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
  • 33.
    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. Ghada GASMI- Dr. Lilia SFAXI Slide 33 Pagination
  • 34.
    Algorithmes de Remplacementde 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 optimal o Retirer de la mémoire la page qui sera référencée le plus tard. C’est un algorithme théorique car il 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. Ghada GASMI- Dr. Lilia SFAXI Slide 34 Pagination
  • 35.
    ALLOCATION NON CONTIGUË: SEGMENTATION Gestion de la Mémoire Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 35
  • 36.
    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. Ghada GASMI- Dr. Lilia SFAXI Slide 36 Segmentation
  • 37.
    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 § Il 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. Ghada GASMI- Dr. Lilia SFAXI Slide 37 Segmentation
  • 38.
    Traduction d’Adresses Dr. GhadaGASMI- Dr. Lilia SFAXI Slide 38 Segmentation
  • 39.
    Traduction d’Adresses Dr. GhadaGASMI- Dr. Lilia SFAXI Slide 39 Segmentation
  • 40.
    Partage de Segments Dr.Ghada GASMI- Dr. Lilia SFAXI Slide 40 Segmentation
  • 41.
    Partage de Segments Dr.Ghada GASMI- Dr. Lilia SFAXI Slide 41 Segmentation Programme Donné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
  • 42.
    Segmentation Simple: Avantageset Inconvénients Dr. Ghada GASMI- Dr. Lilia SFAXI Slide 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?
  • 43.
    Segmentation Paginée Dr. GhadaGASMI- Dr. Lilia SFAXI Slide 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)
  • 44.
    Références Dr. Ghada GASMI-Dr. Lilia SFAXI Slide 44 • Wassim Youssef, Les systèmes d’exploitation, Cours ISI, 2015 • Mona Laaroussi, Les systèmes d’exploitation, Cours INSAT, 2009