Title: GEF 435 Principes des syst
1GEF 435Principes des systèmes dexploitation
- Gestion de la mémoire de base et permutation
- (va-et-vient, process swapping)
- (Tanenbaum 4.1 4.2)
2Revue
- Quest-ce quun état sécuritaire?
- Quelle est la différence entre lévitement et la
prévention des interblocages?
3Synopsis
- 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
4La loi de Parkinson
- Les programmes saccroissent pour remplir la
mémoire disponible qui leur est réservée
5Synopsis 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? - 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)
6Synopsis 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.
7Synopsis 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 lutilisation du CPU pour n
processus est 1-pn (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!
8Synopsis 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!
9Synopsis 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
10Synopsis 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
11Synopsis 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
12Synopsis 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
13Synopsis 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)
14Synopsis 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!
15Permutation
- 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...
16Permutation
- 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
17Permutation
- 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
18Permutation 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
19Permutation Combien de mémoire
Segment de données et pile
20Permutation - 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
21Permutation - 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?
22Permutation - Gestion
23Permutation - Gestion
- 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/512001 1.9x10-4 de la mémoire
24Permutation - 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
25Permutation - 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
26Permutation - 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
27Permutation - 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)
28Permutation - 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
29Permutation - 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)...
30Quiz Time!