La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

GEF 435 Principes des systèmes dexploitation Gestion de la mémoire de base et permutation (va-et-vient, process swapping) (Tanenbaum 4.1 & 4.2)

Présentations similaires


Présentation au sujet: "GEF 435 Principes des systèmes dexploitation Gestion de la mémoire de base et permutation (va-et-vient, process swapping) (Tanenbaum 4.1 & 4.2)"— Transcription de la présentation:

1 GEF 435 Principes des systèmes dexploitation Gestion de la mémoire de base et permutation (va-et-vient, process swapping) (Tanenbaum 4.1 & 4.2)

2 Revue Quest-ce quun état sécuritaire? Quelle est la différence entre lévitement et la prévention des interblocages?

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 saccroissent 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 (2 32 bits) Est-ce que la plupart des ordinateurs PC à la maison ont autant de RAM? Quest-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 dexploitation qui fait cela sappel 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 p n. Ce qui veut dire que lutilisation du CPU pour n processus est 1-p n (p est le % dE/S) Cinq processus en mémoire avec 80% dattente 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!

8 Synopsis de la gestion de la mémoire Les processus avec un temps dattente 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 Larrangement le plus simple possible Seulement un programme va exécuter à la fois Le SE copie le programme du disque en mémoire et lexécute. Quand cest fini, le SE est prêt à accepter une nouvelle commande de lutilisateur 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 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 davoir plus dun 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 despace de mémoire parce que les partition sont fixes; toute lespace non utilisée par une job est perdu

13 Synopsis de la gestion de la mémoire Limage 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 dexécuter Chercher dans toute la queue pour la job la plus large qui entre dans lespace On doit garder une petite partition pour que les petites jobs puissent exécuter!

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 navons 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...

16 Permutation La permutation dun 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

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

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 lespace pour grandir pour empêcher davoir à déplacer le processus continuellement dans la mémoire

19 Permutation – Combien de mémoire Segment de données Segment de données et pile

20 Permutation - Gestion Comment est-ce que lon trace où les processus sont dans la mémoire et où est-ce quil 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 dallocation 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 dallocation?

22 Permutation - Gestion

23 Gestion de la mémoire avec tableaux de bits: La plus petite est lunité dallocation, 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

26 Permutation - Gestion Comment est-ce que lon 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 nest 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 lallocation, 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 dordonner les trous par grandeur pour un allocation encore plus rapide!! Nous laisse utiliser les trous même pour stocker les pointeurs pour voyager dun 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 lautre liste (en ordre)...

30 Quiz Time! Questions?


Télécharger ppt "GEF 435 Principes des systèmes dexploitation Gestion de la mémoire de base et permutation (va-et-vient, process swapping) (Tanenbaum 4.1 & 4.2)"

Présentations similaires


Annonces Google