gef 435 principes des systèmes dexploitation gestion de la mémoire de base et permutation...

30
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)

Upload: ivon-camus

Post on 03-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 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)

GEF 435Principes des systèmes d’exploitation

Gestion de la mémoire de base et permutation

(va-et-vient, process swapping)(Tanenbaum 4.1 & 4.2)

Page 2: 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)

Revue

• Qu’est-ce qu’un état sécuritaire?• Quelle est la différence entre l’évitement et la

prévention des interblocages?

Page 3: 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)

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

Page 4: 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)

La loi de Parkinson

“Les programmes s’accroissent pour remplir la mémoire disponible qui leur est réservée’’

Page 5: 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)

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)

Page 6: 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)

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.

Page 7: 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)

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!

Page 8: 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)

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!

Page 9: 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)

Synopsis de la gestion de la mémoire

• En premier on considère deux systèmes simples:MonoprogrammationPartitions 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

Page 10: 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)

Synopsis de la gestion de la mémoire

• Monoprogrammation sans permutation ou paginationL’arrangement le plus simple possibleSeulement un programme va exécuter à la foisLe 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

Page 11: 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)

Synopsis de la gestion de la mémoire

a) Rarement utilisé de nos joursb) Utilisé dans les baladeurs MP3, les ordinateurs de poche (Palm)c) Était le modèle initiale pour les PCs, ex: DOS

Page 12: 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)

Synopsis de la gestion de la mémoire

• Multiprogrammation avec partitions fixesPour 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

Page 13: 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)

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)

Page 14: 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)

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!

Page 15: 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)

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

Page 16: 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)

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

Page 17: 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)

Permutation

• La différence entre ce système et les partitions fixes est que le nombre, la location et la grandeur des partitions varient dynamiquementAvantages:

• 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

Page 18: 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)

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éeCependant, 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

Page 19: 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)

Permutation – Combien de mémoire

Segment de données Segment de données et pile

Page 20: 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)

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

Page 21: 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)

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 kilooctetsUtilise un tableau de bits avec des 1 pour désigner les

unités alloués et des 0 pour désigner les unités libresDe quelle grandeur sont nos unités d’allocation?

Page 22: 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)

Permutation - Gestion

Page 23: 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)

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 correspondantCependant, même avec des unités de 4 octets (32 bits) on

perd seulement 1/33 de la mémoireLes 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/512001 = 1.9x10-4% de la mémoire

Page 24: 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)

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

Page 25: 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)

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

Page 26: 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)

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:

Page 27: 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)

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)

Page 28: 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)

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

Page 29: 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)

Permutation - Gestion

• Note finale sur les listes: on pourrait garder des listes séparées pour les trous et les processusAccé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)...

Page 30: 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)

Quiz Time!

Questions?