Généralités Gestion de la mémoire réelle Système monoprogrammé Organistation de la mémoire et protection du SE Les overlays (segments de recouvrement) Système multiprogrammé Partitions fixes Partitions variables État de la mémoire : Politiques de placement et de libération d espace Le Va-et-vient (swapping) École Polytechnique de Montréal Chapitre 8.1 Généralités L espace d adressage d un processus est généré par le compilateur et l éditeur de liens. Modules source Traducteur Modules objet Bibliothèque statique Éditeur de liens Phases de génération de l espace d adressage Module exécutable Chargeur Bibliothèque dynamique Liaison et Chargement dynamiques Image mémoire École Polytechnique de Montréal Chapitre 8.2 1
Généralités (2) Espace d adressage linéaire École Polytechnique de Montréal Chapitre 8.3 Généralités (3) Espace d adressage non linéaire : plusieurs segments École Polytechnique de Montréal Chapitre 8.4 2
Généralités (4) Rôle du gestionnaire de la mémoire Toute instruction ou donnée de l espace d adressage doit être chargée en mémoire centrale (principale, physique) avant d être traitée par un processeur. Le gestionnaire de la mémoire est le composant du système d exploitation qui se charge de gérer l allocation d espace mémoire aux processus à exécuter : Comment organiser la mémoire? (une ou plusieurs partitions, le nombre et la taille des partitions fixes ou variables au cours du temps). Faut-il allouer une zone contiguë à chaque processus à charger en mémoire? Faut-il allouer tout l espace nécessaire à l exécution du processus entier? (politique d allocation). Comment mémoriser l état de la mémoire? Parmi les parties libres en mémoire, lesquelles allouées au processus? (politique de placement) S il n y a pas assez d espace en mémoire, doit-on libérer de l espace en retirant des parties ou des processus entiers? Si oui lesquels? (politique de remplacement). Les adresses figurant dans les instructions sont-elles relatives? Si oui, comment les convertir en adresses physiques. Si plusieurs processus peuvent être résident en mémoire, comment assurer la protection des processus (éviter qu un processus soit altéré par un autre? École Polytechnique de Montréal Chapitre 8.5 Généralités (5) Exigences Efficacité : la mémoire doit être allouée équitablement et à moindre coût tout en assurant une meilleure utilisation des ressources (mémoire, processeurs et disque). Protection : Les processus ne peuvent pas se corrompre. Transparence : Chacun des processus doit ignorer l existence des autres en mémoire. Relocation : la possibilité de déplacer un processus en mémoire (lui changer de place). École Polytechnique de Montréal Chapitre 8.6 3
Système monoprogrammé Organisation de la mémoire Un seul processus en mémoire. Cas (b): ordinateurs de poche ou systèmes embarqués Cas (c) : MS-DOS École Polytechnique de Montréal Chapitre 8.7 Système monoprogrammé (2) Protection (cas de b) Pour protéger le code et les données du SE des programmes des utilisateurs, on utilise un registre limite qui indique la limite de la zone réservée aux utilisateurs. Chaque adresse référencée par un processus est comparée avec le registre limite. Registre limite CPU adresse > reg. lim Mémoire Erreur: Adressage illégal École Polytechnique de Montréal Chapitre 8.8 4
Système monoprogrammé (3) Overlays (segments de recouvrement) Pour permettre l exécution de processus dont la taille dépasse celle de la mémoire, on offrait la possibilité à l'utilisateur de : Diviser son programme en plusieurs sections (segments de recouvrement : overlays), Gérer le chargement et le retrait des sections du programme de la mémoire. Inconvénients : Cela complique la tâche aux programmeurs. Mauvaise utilisation des ressources. École Polytechnique de Montréal Chapitre 8.9 Système monoprogrammé (3 ) Overlays (segments de recouvrement) Exemple : main (15k) f1 (16k) f2 (13k) f3 (8k) f4 (6k) f5 (10k) Sans recouvrement : 15 +16 + 13 + 8 + 6 + 10 = 68k Avec recouvrement :? École Polytechnique de Montréal Chapitre 8.10 5
Système multiprogrammé La mémoire est partagée entre le système d'exploitation et plusieurs processus. Optimisation du taux d'utilisation du processeur en réduisant notamment les attentes sur des entrées-sorties. Deux préoccupations: Comment permettre efficacement la cohabitation de plusieurs processus? Comment assurer leur protection? École Polytechnique de Montréal Chapitre 8.11 Système multiprogrammé (2) Degree of multiprogramming Taux d utilisation = 1 P n où P taux d attente d E/S et n nombre de processus. École Polytechnique de Montréal Chapitre 8.12 6
Système multiprogrammé (3) avec Partitions fixes La mémoire réservée aux utilisateurs est divisée en un ensemble de partitions. Le nombre et la taille des partitions sont fixés à l'avance (lors du chargement du système). Les partitions peuvent être égales ou non. La choix du nombre et de la taille des partitions dépend du niveau de multiprogrammation voulu. On peut avoir une file par partition ou une file globale. L unité d allocation est une partition. École Polytechnique de Montréal Chapitre 8.13 Système multiprogrammé (4) avec partitions fixes Utilisée par OS/360 sur des mainframes IBM durant de nombreuses années (une seule file). École Polytechnique de Montréal Chapitre 8.14 7
Système multiprogrammé avec partitions fixes : (5) Translation d adresse et protection Comme on ne peut prévoir dans quelle partiton sera chargé un processus, les adresses attribuées par le compilateur et l éditeur de liens aux instructions et aux données d un programme doivent être relatives à une adresse 0. Ces adresses relatives seront ensuite translatées en adresse physiques. La translation peut se faire lors du chargement du processus (utilisée dans OS/360 d IBM. Les adresses relatives sont remplacées par des adresses absolues (en ajoutant à chaque fois l adresse de début de la partition). Cette solution n est pas intéressante car en remplaçant les adresses relatives en adresses absolues, il ne sera plus possible de déplacer le processus. École Polytechnique de Montréal Chapitre 8.15 Système multiprogrammé avec partitions fixes (6) Translation d adresse et protection Pour éviter la translation d adresse au cours du chargement d un processus, une autre solution consiste à doter la machine de 2 registres spéciaux : Le registre de base ; Le registre limite. Quand un processus est élu (par l ordonnanceur), le SE charge dans le registre de base l adresse absolue du début de sa partition et dans le registre limite la longueur de la partition. Durant l exécution d une instruction, chaque adresse relative référencée par l instruction est vérifiée en la comparant avec le contenu du registre limite, afin d interdire tout accès en dehors de la partition courante. Les adresses physiques sont obtenues en ajoutant le contenu du registre de base aux adresses relatives. Avantage : le processus peut être déplacé en mémoire. École Polytechnique de Montréal Chapitre 8.16 8
Système multiprogrammé avec partitions fixes (7) Translation d adresse et protection Registre limite Registre base SE CPU adresse < V + F Mémoire Erreur: Adressage illégal Cette translation doit être rapide. École Polytechnique de Montréal Chapitre 8.17 Système multiprogrammé avec partitions fixes (8) Problème : Fragmentation interne SE Fragmentation interne est causée par la partie d'une partition non utilisée par un processus. Fragmentation interne Partition 2K Partition 4K Partition 6K Partition vide Partition 6K Mémoire École Polytechnique de Montréal Chapitre 8.18 9
Système multiprogrammé avec partitions variables (9) Initialement, l espace mémoire réservée aux utilisateurs constitue une seule partition. Quand un nouveau processus doit être chargé, on lui alloue une zone contiguë de taille suffisamment grande pour le contenir. Le nombre et les tailles des partitions varient au cours du temps. Cette forme d'allocation conduit éventuellement à l'apparition de trous trop petits pour les allouer à d autres processus : c'est la fragmentation externe Solutions: Compactage (coûteux et exige que les processus soient relocalisables) Allocation discontinue. École Polytechnique de Montréal Chapitre 8.19 Système multiprogrammé avec partitions variables (10) Exemple 0K 40K Moniteur processus 1 0K 40K Moniteur processus 1 100K 100K Fin du processus 2 processus 2 200K 230K processus 3 200K 230K processus 3 256K 256K a) b) École Polytechnique de Montréal Chapitre 8.20 10
Système multiprogrammé avec partitions variables (11) Exemple (suite) 0K Moniteur Moniteur 40K 40K processus 1 processus 5 90K 100K 100K 0K processus 4 processus 4 170K 200K 230K 256K processus 3 170K 200K 230K 256K processus 3 c) d) École Polytechnique de Montréal Chapitre 8.21 Système multiprogrammé avec partitions variables (12) Compactage de mémoire (opération coûteuse) 0K 40K 90K 100K Moniteur processus 5 0K 40K 90K Moniteur processus 5 processus 4 processus 4 170K 200K 230K 256K processus 3 160K 190K 256K processus 3 Une machine de 256Mo de RAM (4 octets en 40ns) nécessite 2,7 s École Polytechnique de Montréal Chapitre 8.22 11
État 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 : Tables de bits, Listes chaînées. Avoir une politique de placement et de récupération d espace. Premier ajustement Meilleur ajustement Pire ajustement Par subdivision École Polytechnique de Montréal Chapitre 8.23 État de la mémoire (2) Table de bits (Bitmaps) 0 8 16 24 32 P1 P2 P3 11111100 00001111 11111100 00000000 000111 La mémoire est un ensemble d unités d allocation. Un bit est associé à chaque unité. Lorsqu'on doit ramener un processus de k unités, le gestionnaire de la mémoire doit alors parcourir la table des bits à la recherche de k zéros consécutifs. Cette méthode est rarement utilisée car la méthode de recherche est lente (k zéros consécutifs). École Polytechnique de Montréal Chapitre 8.24 12
État de la mémoire (3) Liste chaînée a) 0 5 7 12 32 35 occupé libre O L O L O 0 5 7 12 32 5 2 5 20 3 b) École Polytechnique de Montréal Chapitre 8.25 État de la mémoire (4) Liste chaînée Mémorisation de l état de la mémoire cas de BSD 4. École Polytechnique de Montréal Chapitre 8.26 13
Politiques de placement occupé libre École Polytechnique de Montréal Chapitre 8.27 Politiques de placement (2) Premier ajustement (first fit): La première zone qui convient. Meilleur ajustement (best fit): La zone qui laisse le plus petit espace non occupé. Pire ajustement (worst fit): La zone qui laisse le plus grand espace non occupé. Si la zone sélectionnée est plus grande que celle du processus à charger, elle est scindée en deux parties : la première est alloué au processus, la seconde est libre. École Polytechnique de Montréal Chapitre 8.28 14
Politiques de placement (3) Simulations (Shore, 1975) Performants Performance Requêtes École Polytechnique de Montréal Chapitre 8.29 Politiques de placement (4) Par subdivision Les tailles des blocs sont des puissances de 2. Initialement, on a un seul bloc libre. Supposons que la taille maximale est de 1 Mo et qu un processus de 70 Ko demande à être chargé en mémoire. Le gestionnaire détermine d abord la taille du bloc à allouer (égale à la plus petite puissance de 2 supérieure à 70Ko, soit 128 Ko). Comme il n y a pas de blocs libres de taille 128 Ko, 256 Ko ou 512 Ko, la mémoire de 1 Mo est divisée en deux blocs de 512 Ko. Le premier bloc est divisé en deux blocs de 256 Ko. Enfin, le premier des deux blocs nouvellement créés est divisé en deux blocs de 128 Ko. L espace alloué au processus est situé entre l adresse 0 et 128 Ko. L allocation par subdivision est rapide mais elle est assez inefficace en ce qui concerne l utilisation de la mémoire (arrondir les tailles à une puissance de 2, fragmentation interne). École Polytechnique de Montréal Chapitre 8.30 15
Libération d espace 4 cas peuvent se présenter lors de la libération de l espace occupé par un processus X. 1 er cas : A X B A B Modifier l indicateur de l état du segment (il passe à libre) 2 ième cas A X A 3 ième cas X B B Modifier l indicateur de l é tat du segment (il passe à libre) fusionner les deux segments. 4 ième cas X École Polytechnique de Montréal Chapitre 8.31 Le va-et-vient (Swapping) Le va-et-vient est mis en œuvre lorsque tous les processus ne peuvent pas tenir simultanément en mémoire. On doit alors en déplacer temporairement certains sur une mémoire provisoire, en général, une partie réservée du disque (mémoire de réserve, swap area ou backing store). Sur le disque, la zone de va-et-vient d un processus peut être allouée à la demande. Quand un processus est déchargé de la mémoire centrale, on lui recherche une place. Les places de va-et-vient sont gérées de la même manière que la mémoire centrale. La zone de va-et-vient d un processus peut aussi être allouée une fois pour toute au début de l exécution. Lors du déchargement, le processus est sûr d avoir une zone d attente libre sur le disque (éviter des interblocages). École Polytechnique de Montréal Chapitre 8.32 16
Le va-et-vient (Swapping) (2) Mémoire utilisateur Mémoire provisoire École Polytechnique de Montréal Chapitre 8.33 Exercice 1. Donnez les états d'occupation de la mémoire aux différentes étapes de traitement de ces processus, sous les hypothèses suivantes : 1. Partitions fixes de tailles 6 MB, 4 MB, 2 MB et 4 MB (pour le système) ; 2. Le mode d'allocation des trous utilise l algorithme meilleur ajustement (Best Fit) ; 3. Le répartiteur de haut niveau fonctionne selon PAPS ; 4. Le répartiteur de bas niveau fonctionne selon SJF (Shortest Job First). 5. Pas de va-et-vient Instant t Processus Taille Temps CPU Durée E/S 0 A 3 MB 9 ms 2 ms 4 B 5 MB 6 ms 9 ms 6 C 5 MB 4 ms 4 ms 8 D 4 MB 2 ms 6 ms 10 E 1 MB 4 ms 3 ms 12 F 1 MB 5 ms 1 ms 16 G 1 MB 3 ms 2 ms 18 H 3 MB 3 ms 8 ms Chaque processus effectue un calcul suivi d une E/S en utilisant son propre périphérique École Polytechnique de Montréal Chapitre 8.34 17