1ième Partie Etude des systèmes d’exploitation 2 Plan modifiable Introduction

1ième Partie Etude des systèmes d’exploitation 2 Plan modifiable Introduction Gestion des processus Synchronisation des processus Gestion de la mémoire Gestion des fichiers Interblocage!!! 3 Chap 4: Gestion de la mémoire 4 Gestion de la mémoire Comment le SE gère la mémoire? Il existe 3 types de mémoires: Mémoire cache (registre): rapide, volatile et chère! Mémoire centrale (RAM): vitesse et prix moyens, Mémoire de masse: lente , non volatile , (DD, CD etc...) la partie du SE qui s'occupe de la gestion de la mémoire s'appelle : le gestionnaire de mémoire 5 Gestion de la mémoire Les fonctionnalités attendus d'un gestionnaire de mémoire sont: Connaître et allouer les parties libres de la RAM, Récupérer la mémoire libérée par la terminaison d'un processus, Offrir aux processus des services de mémoires virtuelles de taille supérieure à la mémoire physique ( swapping), pour la gestion de la multiprogrammation. 6 Gestion élémentaire de la mémoire (sans va et vient et sans pagination) Mono-programmation méthode archaïque , mais encore utilisée dans les systèmes embarqués ( PDA, ...), un seul processus dans la mémoire centrale. Si la taille du programme est inférieure à l'espace disponible il n'y a aucun problème. Sinon on utilise la technique des segments de recouvrements ( overlays); le programme est découpé en segments qui ne sont pas tous chargés simultanément. Par exemple le segment 0 fait appel au segment 1 dès qu'il termine son exécution. 1 processu s SE RAM 7 Gestion élémentaire de la mémoire (sans va et vient et sans pagination) Multiprogrammation Utilisée sur la plupart des ordinateurs actuels: le moyen le plus simple de mettre la multiprogrammation en place (du point de vue mémoire) consiste à une subdivision de la mémoire centrale en n partitions fixes et de tailles pas nécessairement égales. Partition 4 Partition 3 Partition 2 Partition 1 SE 0 100 200 400 700 800 8 Multiprogrammation Méthodes MFT ( Multiprogramming with a Fixed number of Tasks) Convient au traitement par lots ( batch), 2 méthodes de gestion: Une file d'attente par partition: tout nouveau processus est placé dans la file de la plus petite partition pouvant le contenir. Inconvénients: Des partitions non utilisées, pas de file d'attentes, Les petits travaux doivent attendre pour accéder à la mémoire même si une grande quantité d'espace est libre. 9 Gestion de la mémoire Méthodes MFT(suite) Une seule file d'attente globale: 2 stratégies; Dès qu'une partition se libère on lui affecte le premier processus de la file qui peut y tenir. Inconvénients: Affectation d'un grand espace mémoire à une petite tâche ( gaspillage). 10 Gestion de la mémoire Méthodes MFT(suite) Dès qu'une partition se libère , on parcourt la file d'attente pour lui affecter la plus grande tâche pouvant y tenir. Inconvénients: On pénalise les processus de petite taille. Pour remédier à ce problème on va dire qu'un processus ne peut pas être négligé plus de k fois . Chaque fois qu'il est laissé de côté, son score augmente de points; et dès qu'il atteint k points il ne peut plus être ignoré. 11 Gestion de la mémoire Remarque: Avec la méthode MFT on fait face à 2 problèmes; ( on génère 2 types d'espaces mémoires non utilisés) que l'on appelle problèmes de fragmentation. Fragmentation externe: quand une partition n'est pas utilisée. Fragmentation interne: un petit processus dans une grande partition. Ceci est dû au fait qu'il est très difficile que tous les processus rentrent exactement dans la taille de la partition. 12 Gestion de la mémoire Translation de code (réallocation) et protection: La multiprogrammation engendre 2 problèmes majeurs: Adressage (réallocation): adresse logique différente de l'adresse physique. Protection: il faut empêcher un processus d'écrire dans la zone mémoire d'un autre processus. 13 Translation de code (réallocation) et protection: Adressage: Le problème de l'adressage dans un processus se résout par l'utilisation d'un registre particulier : le registre de base ; au lancement (exécution) du processus, on lui affecte l'adresse de début de la partition qui lui est attribuée. registre de base = l'adresse de début de la partition. On aura donc: adresse physique = adresse de base + adresse logique contenu du registre de base relative absolue 14 Translation de code (réallocation) et protection: 15 Protection: On a 2 solutions: Clé de protection: une clé de protection pour chaque partition qui va être dupliquée dans le PSW (Program Status Word) du processus qui lui est attribué. L'écriture sera refusée à un processus qui n'aura pas la même clé que celle de la partition. Registre limite: combinaison avec la ré-allocation ; Quand on lance un processus on charge dans le registre de base la limite inférieure (adresse absolue du début de la partition) et dans le registre limite la limite supérieure, après translation on vérifie si les adresses ne dépassent pas le registre limite, afin d'interdire tout accès en dehors de la partition. Translation de code (réallocation) et protection: 16 Le va et vient (swapping) ou recouvrement Dans le système partagé , la mémoire centrale est insuffisante pour contenir tous les processus actifs. Il faut simuler la présence en RAM de tous les processus pour pouvoir satisfaire le principe d'équité et minimiser le temps de réponse des processus, d'où l'utilisation de la technique du va et vient, tous les processus supplémentaires sont conservés sur le disque et les charger pour qu'ils s'exécutent dynamiquement. Il y a 2 approches de gestion de la mémoire: Technique de recouvrement ( swapping) Technique de la mémoire virtuelle. 17 Technique de recouvrement ( swapping) Avec le swapping, on pourrait utiliser des partitions fixes de la RAM, mais en pratique, on utilise des partitions de taille variable, car le nombre, la taille et la position des processus peuvent varier dynamiquement au cours du temps A SE B A SE C B A SE C B D SE C A D SE temps A est stocké provisoirement sur le disque 18 Technique de recouvrement ( swapping) Remarques: On n'est plus limité par une partition trop grande ou trop petite comme la MFT. Cette amélioration nécessite un mécanisme plus complexe d'allocation et de libération de la mémoire centrale 19 Technique de recouvrement ( swapping) Opérations sur la mémoire ** Les opérations sur la mémoires créent de multiples trous dans la MC. Il est possible de tous les recombiner en une seule grande zone, en déplaçant tous les processus vers le bas de la mémoire , ce qu'on appelle le compactage. Cette opération est très couteuse en temps CPU. ** s'il y a une requête d'allocation de mémoire pour un processus, on la lui alloue dans le tas (heap) si le SE le permet, ou bien de la mémoire supplémentaire contigüe à sa partition (agrandissement de celle-ci) s'il n' y a plus de place un ou plusieurs processus peuvent être déplacés:  Soit pour récupérer des espaces non utilisé,  Soit en allant jusqu'au recouvrement et à chaque retour on réserve un espace plus grand. 20 Technique de recouvrement ( swapping) Gestion de la mémoire Pour gérer l'allocation et la libération de l'espace mémoire, le gestionnaire doit connaître l'état de la mémoire. Il existe 3 manières de mémoriser l'occupation de la mémoire : 1. Les tables de bits (bitmaps). 2. Les listes chaînées. 3. Les subdivisions (buddies)(compagnons) . 21 Technique de recouvrement ( swapping) Les tables de bits (bitmaps). La mémoire est divisée en unités d'allocation dont la taille peut varier de quelques octets à plusieurs kilooctets . A chaque unité, on fait correspondre un bit dans la Table de bits ou bitmap: » Soit 1 si cette unité est occupée » Soit 0 si elle est libre. Bitmap Mémoire centrale 22 Technique de recouvrement ( swapping) Les tables de bits (bitmaps). (suite) Remarques:  Cette table est elle même en mémoire centrale  Plus l'unité d'allocation est grande, plus la table est petite, risque de fragmentation interne.  Plus l'unité d'allocation est petite, plus la table est grande (occupe de la place). 23 Technique de recouvrement ( swapping) Les tables de bits (bitmaps). (suite) Inconvénient de la table de bits: Lorsqu'on doit ramener un processus de k unités, le gestionnaire de la mémoire doit alors parcourir la table de bits à la recherche de k zéros consécutifs. Cette technique est rarement utilisée car la méthode de recherche est lente. 24 Technique de recouvrement ( swapping) Gestion de la mémoire par liste chaînées: Pour mémoriser l'occupation de la mémoire, on utilise une liste chaînée des segments libres et occupés. Un segment est un ensemble d'unités d'allocations consécutives. Un élément de la liste est composé de quatre champs qui indiquent : - L'état libre (L) ou occupé (O) du segment. - L'adresse de début du segment. - La longueur du segment. - Le pointeur sur l'élément suivant de la liste. 25 Technique de recouvrement ( swapping) Gestion de la mémoire par liste chaînées: (suite) Exemple: pour une mémoire ayant l'état d'occupation suivant: On aura la liste suivante: 26 Technique de recouvrement ( swapping) Gestion de la mémoire par liste chaînées: (suite) Afin de conserver à la liste la plus courte taille possible, uploads/Management/ chap4-se-gestion-de-la-memoire.pdf

  • 25
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Aoû 24, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.2689MB