Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
GEF 435 Principes des systèmes d’exploitation
Gestion de la mémoire de base et permutation (va-et-vient, process swapping) (Tanenbaum 4.1 & 4.2)
2
Revue Qu’est-ce qu’un état sécuritaire?
Quelle est la différence entre l’évitement et la prévention des interblocages? A safe state is one in which all processes can request their maximum resources and no deadlock will occur The difference: in avoidance you allocate resources carefully so as to avoid a dangerous state. In prevention you try and design a system such that you break one of the four conditions required for deadlock: mutual exclusion hold and wait no preemption circular wait
3
Synopsis Synopsis de la gestion de la mémoire
Base de la gestion de la mémoire Monoprogrammation Multiprogrammation avec partitions fixes Permutation (Swapping) Gestion: Management: Tableaux de bits (Bitmaps) vs. Listes chaînées
4
La loi de Parkinson “Les programmes s’accroissent pour remplir la mémoire disponible qui leur est réservée’’
5
Synopsis de la gestion de la mémoire
Pourquoi avons-nous besoin de la gérer la mémoire? Combien peut-on adresser de mémoire pour un processus dans Windows XP? 4 GB (232 bits) Est-ce que la plupart des ordinateurs PC à la maison ont autant de RAM? Qu’est-ce que les SE font quand ils exécutent des programmes qui demandent de la mémoire qui excède leurs capacités? Une partie du programme est permuté au disque (swapped)
6
Synopsis de la gestion de la mémoire
On a besoin de quelque chose pour gérer le mouvement des programmes entre le(s) disque(s) et la mémoire (ou en général: pour gérer la hiérarchie de mémoire). La partie du système d’exploitation qui fait cela s’appel le gestionnaire de mémoire.
7
Synopsis de la gestion de la mémoire
Est-ce que la multiprogrammation vaut la peine de faire de la gestion de mémoire? Considérez un nombre de processus qui attendent pour les E/S en moyenne de 80% du temps La probabilité que n processus vont tous attendrent pour des E/S en même temps est pn. Ce qui veut dire que l’utilisation du CPU pour n processus est 1-pn (p est le % d’E/S) Cinq processus en mémoire avec 80% d’attente pour les E/S donne une utilisation du CPU de 1-(0.8)5 = 67% (assumant que le temps de changement de contexte est négligeable) Beaucoup mieux que 20% pour un processus simple! Other simplifications are made for this model as well: it assumes that the processes are independent, meaning that they can be run simultaneously. But the model we have here is sufficient to prove that there are definite benefits to multiprogramming
8
Synopsis de la gestion de la mémoire
Les processus avec un temps d’attente pour les E/S en excès de 80% ne sont pas rares!
9
Synopsis de la gestion de la mémoire
En premier on considère deux systèmes simples: Monoprogrammation Partitions fixe En grande part, utile pour les systèmes de lots (batch) Quand les processus sont chargés en mémoire ils exécutent jusqu’à la terminaison
10
Synopsis de la gestion de la mémoire
Monoprogrammation sans permutation ou pagination L’arrangement le plus simple possible Seulement un programme va exécuter à la fois Le SE copie le programme du disque en mémoire et l’exécute. Quand c’est fini, le SE est prêt à accepter une nouvelle commande de l’utilisateur Les nouvelles commandes écrase le dernier programme en mémoire avec le nouveau Trois configurations, prochaine diapositive
11
Synopsis de la gestion de la mémoire
Windows 3.1 was very much to DOS like my custom scheduler is to uC/OS-II Note that for (c) that the device drivers in ROM is the BIOS (Basic Input Output System) a) Rarement utilisé de nos jours b) Utilisé dans les baladeurs MP3, les ordinateurs de poche (Palm) c) Était le modèle initiale pour les PCs, ex: DOS
12
Synopsis de la gestion de la mémoire
Multiprogrammation avec partitions fixes Pour exploiter les bénéfices de la multiprogrammation nous avons besoin d’avoir plus d’un programme en mémoire à la fois Solution simple (pour les systèmes de lots): diviser la mémoire en n partitions (possiblement égales), et de mettre la prochaine job qui arrive dans la plus petite partition qui peut la contenir (ou dans la queue pour cette partition) Désavantage: Il y a une perte d’espace de mémoire parce que les partition sont fixes; toute l’espace non utilisée par une job est perdu
13
Synopsis de la gestion de la mémoire
L’image montre un autre désavantage: Parce que nous utilisons des queues multiples, nous avons des attentes sur certaines partitions et certaines partitions sont complètement inutilisées! Une queue simple donne normalement un service supérieur (tout comme dans une banque)
14
Synopsis de la gestion de la mémoire
Plusieurs stratégies pour choisir les jobs: Permettre à la job la plus proche du front et qui peut entrer dans une partition libre d’exécuter Chercher dans toute la queue pour la job la plus large qui entre dans l’espace On doit garder une petite partition pour que les petites jobs puissent exécuter! That last point is important: if you always chose the largest job that fits then you are discriminating against the smaller jobs....they may NEVER get to run. Another way out of the situation would be to allow a process to be skipped over only k times and mark it each time it is skipped. Few, if any OSs use this model for multiprogramming anymore.
15
Permutation Les systèmes antérieurs étaient plus simples parce que quand les programmes étaient chargés en mémoire, ils étaient laissés là jusqu’à la terminaison Dans un système à temps partagé nous ne pouvons pas choisir combien de processus nous gardons en mémoire pour garder le CPU occupé… maintenant les utilisateurs décident combien de processus exécutent Quand nous n’avons pas assez de mémoire principale existante pour garder touts les processus actifs en mémoire, nous devons les permuter entre la mémoire principale et le disque... One solution we’ll see today is called swapping because we’ll be moving entire processes into and out of memory. Next class we’ll see virtual memory, which will solve the problem in a superior, but more complicated, way.
16
Permutation La permutation d’un processus consiste à amener un processus du disque à la mémoire dans son entièreté. Le processus est exécuté pour un temps et remis sur le disque Show them how the process works
17
Permutation La différence entre ce système et les partitions fixes est que le nombre, la location et la grandeur des partitions varient dynamiquement Avantages: Une solution bien plus flexible Une meilleur utilisation de la mémoire Désavantages: Plus compliqué à implémenter Il peut y avoir des “trous” laissés dans la mémoire, qui peuvent être compactés pour corriger le problème Note about the compaction: on a machine with 256MB that can copy 4 Bytes in 40ns, it would require about 2.7s to compact the memory We will not study how holes are dealt with in this course.
18
Permutation – Combien de mémoire
Combien de mémoire devrait-on assigner à un processus quand il est permuté dans la mémoire? Si une grandeur de données fixe peut être déterminé alors cette grandeur exacte est allouée Cependant, si un processus a une pile et/ou un tas (heap), alors nous devons allouer de l’espace pour grandir pour empêcher d’avoir à déplacer le processus continuellement dans la mémoire
19
Permutation – Combien de mémoire
Note that if the growth area runs out then the process will have to swapped to another location in memory or to the disk until a large enough space can be created. Segment de données Segment de données et pile
20
Permutation - Gestion Comment est-ce que l’on trace où les processus sont dans la mémoire et où est-ce qu’il y a de la mémoire pour les chargés? Deux méthodes: Tableaux de bits et listes chaînées
21
Permutation - Gestion Gestion de la mémoire avec tableaux de bits:
Divise la mémoire en unités d’allocation tel que 4 octets ou plusieurs kilooctets Utilise un tableau de bits avec des 1 pour désigner les unités alloués et des 0 pour désigner les unités libres De quelle grandeur sont nos unités d’allocation?
22
Permutation - Gestion
23
Permutation - Gestion Gestion de la mémoire avec tableaux de bits:
La plus petite est l’unité d’allocation, le plus grand sera le tableau de bits correspondant Cependant, même avec des unités de 4 octets (32 bits) on perd seulement 1/33 de la mémoire Les unités qui sont larges nous font perdre la fin de la dernière unité, ex: pour un unité de 64KO, si nous avons un programme qui a 65KO, alors nous perdons 63 kilooctets! Cependant, nous avons réduit le tableau de bits à seulement 1/ = 1.9x10-4% de la mémoire
24
Permutation - Gestion Gestion de la mémoire avec tableaux de bits:
Avantages: Facile à implémenter Le tableau de bits est de grandeur fixe peu importe combien de programme sont en mémoire Désavantage Peut prendre du temps pour chercher dans le tableau pour trouver une série de 0 consécutifs pour placer un programme
25
Permutation - Gestion Gestion de la mémoire avec des listes chaînées:
Utilise une liste chaînée pour tracer les “segments” Segments sont ou bien un processus ou un trou entre les processus – commode de trier par adresses Avantage: moins de recherche à faire Note how the list is sorted by the address at which the segment begins (“Starts at...”)
26
Permutation - Gestion Comment est-ce que l’on utilise les listes chaînées pour gérer les processus qui quittent la mémoire? On combine simplement le nouveau trou avec les trous adjacent:
27
Permutation - Gestion Comment est-ce que les nouveaux processus sont placés en mémoire? Premier segment (first fit) – Trouve le premier segment vide qui est assez large pour tenir le processus et on brise le segment en un segment de processus et un segment de trou (plus petit que le dernier) Prochain segment (Next fit) – Un amélioration simple sur premier segment. Dénote la place où le dernier programme a été inséré et commence à regarder là Donne une petite augmentation de performance sur le premier segment (simulation Bays)
28
Permutation - Gestion Comment est-ce que les nouveaux processus sont placés en mémoire? Plus grand segment (Worst fit) – Au lieu de prendre un segment qui fait juste et de le briser en laissant un petit trou presque inutilisable; on trouve le trou le plus grand pour laisser un trou maximum pour le autres processus Simulations montre que ce choix n’est pas bon du tout Placement rapide (Quick fit) – On garde les segments tel que 4KB, 8KB, etc dans une table séparée pour une localisation facile des trous Bon pour l’allocation, mais lent pour la dé-allocation parce que plusieurs listes doivent être réconciliés
29
Permutation - Gestion Note finale sur les listes: on pourrait garder des listes séparées pour les trous et les processus Accélère la recherche de trous! Permet d’ordonner les trous par grandeur pour un allocation encore plus rapide!! Nous laisse utiliser les trous même pour stocker les pointeurs pour voyager d’un trou à un autre!!! Plus compliqué pour la dé-allocation parce que la mémoire qui devient un trou doit être placée dans le bon espace sur l’autre liste (en ordre)...
30
Questions? Quiz Time! Why do we want to multiprogram?
Allows us to increase the amount of CPU usage In a fixed partition system, what are the two ways in which processes can be placed into memory? Find the free partition just large enough to hold the process and put it in line Use a shared queue and as spaces become free, place the process closest to the front of the line that will fit into that partition How long does a process run in a fixed partition system? Typically until completion
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.