Projet DVD-MIAGE 2010 : Gestion de la mémoire
ObjectifComprendre les mécanismes de la mémoire virtuelle et ses techniques de gestion.
Exercice 1 : Notions de cours
- Expliquer brièvement le principe du swapping, de la pagination et de la segmentation.
- Citer les deux types de fragmentation couramment rencontrés et préciser les systèmes d'exploitation concernés.
Exercice 2 : Segmentation
On considère la table des segments suivante pour un processus P1 :
| Segment | Base | Limite |
|---|---|---|
| 0 | 540 | 234 |
| 1 | 1254 | 128 |
| 2 | 25432 | 8 |
| 3 | 481024 | 200 |
| 4 | 200 | 1024 |
Rappel : Les adresses sont données sous la forme (n°segment:déplacement).
- Calculer les adresses réelles correspondant aux adresses virtuelles suivantes (indiquer les erreurs d'adressage) :
- (0:128)
- (1:100)
- (2:465)
- (3:888)
- (4:100)
- (4:344)
- L'adresse virtuelle (4,200) est-elle valide ?
Exercice 3 : Pagination
Dans un système paginé, les pages font 256 mots mémoire et chaque processus utilise au plus 4 cadres de mémoire centrale. Voici la table des pages du processus P1 :
| Page | Cadre | Présence |
|---|---|---|
| 0 | 1 | oui |
| 1 | 2 | non |
| 2 | 3 | oui |
| 3 | 4 | non |
| 4 | 5 | oui |
| 5 | 6 | non |
| 6 | 7 | oui |
| 7 | 8 | non |
- Quelle est la taille de l'espace d'adressage du processus P1 ?
- De combien de mémoire vive dispose ce système ?
- Calculer les adresses réelles correspondant aux adresses virtuelles suivantes (indiquer les erreurs d'adressage) :
- 240
- 546
- 1578
- 2072
- Que se passe-t-il si P1 génère l'adresse virtuelle 770 ?
- Pour l'adresse virtuelle 0000 0000 0000 0111, les 4 bits de poids fort désignent le numéro de page et les 12 bits suivants représentent le déplacement dans la page. Donner l'adresse physique (en binaire) correspondant à cette adresse.
Exercice 4 : Segmentation paginée
Un système utilise une mémoire virtuelle segmentée et paginée avec des pages de 4 Ko et une mémoire physique de 64 Ko. L'espace d'adressage d'un processus P est composé de trois segments S1, S2 et S3 de tailles respectives 16 Ko, 8 Ko et 4 Ko. À un instant donné, pour le processus P, les pages suivantes sont chargées en mémoire physique :
- Pages 2 et 3 du segment S1 dans les cases 2 et 0
- Page 2 du segment S2 dans la case 9
- Page 1 du segment S3 dans la case 12
- Identifier le segment contenant l'adresse décimale 8212.
- Donner le numéro de page dans ce segment.
- Calculer le déplacement dans la page.
- Indiquer le numéro de case.
- Calculer le déplacement dans la case.
- Donner l'adresse physique (en décimal et en binaire).
Exercice 5 : Algorithmes de remplacement de pages
Un programme possède un espace virtuel de 600 mots. Voici la suite des adresses virtuelles à analyser : 34, 123, 145, 510, 456, 345, 412, 10, 14, 12, 234, 336, 412. Chaque page contient 100 mots.
- Donner la suite des numéros de pages référencés.
- Calculer le taux de défauts de page pour les algorithmes suivants (mémoire initialement vide) :
- a) OPT (Optimal)
- b) FIFO (First-In-First-Out)
- c) LRU (Least Recently Used)
- d) FINUFO (FIFO Not Used Recently)
Exercice 6 : Temps d'accès
Un système utilisant la pagination à la demande dispose de 4 cadres de mémoire physique occupés par des pages de mémoire virtuelle. Voici les informations concernant chaque cadre :
| Cadre | Tchargement | Tdernier accès | R (Référencé) | M (Modifié) | P (Présence) |
|---|---|---|---|---|---|
| 0 | 12 | 62 | 0 | 0 | 1 |
| 1 | 30 | 255 | 1 | 0 | 1 |
| 2 | 110 | 260 | 1 | 1 | 1 |
| 3 | 180 | 275 | 1 | 1 | 1 |
- Indiquer quelle page sera remplacée en cas de défaut de page avec les algorithmes suivants :
- a) LRU (Least Recently Used)
- b) FIFO (First-In-First-Out)
- c) FINUFO (FIFO Not Used Recently)
- d) NRU (Not Recently Used)
- Calculer le temps d'accès moyen à la mémoire, sachant que :
- Le temps d'accès à une page chargée en mémoire physique est de 100 ns.
- Le temps d'accès à une page non chargée est de 10 ms si une case libre existe ou si la page à retirer n'a pas été modifiée.
- Le temps d'accès est de 20 ms si la page à retirer a été modifiée.
- Le taux de défauts de page est de 35%.
- Dans 70% des cas de défaut de page, la page à retirer a été modifiée.
Foire aux questions (FAQ)
1. Qu'est-ce que la mémoire virtuelle et pourquoi est-elle utilisée ?
La mémoire virtuelle est une technique permettant d'exécuter des programmes plus grands que la mémoire physique disponible. Elle utilise des mécanismes comme le swapping, la pagination et la segmentation pour optimiser l'utilisation de la mémoire et améliorer les performances du système.
2. Quels sont les avantages et inconvénients de la pagination par rapport à la segmentation ?
La pagination offre une gestion plus uniforme et moins de fragmentation externe, mais peut entraîner une fragmentation interne. La segmentation permet une allocation flexible des ressources, mais peut causer des problèmes de fragmentation externe et interne.
3. Comment les algorithmes de remplacement de pages influencent-ils les performances du système ?
Les algorithmes de remplacement de pages, comme FIFO, LRU ou OPT, déterminent quelle page sera retirée de la mémoire physique en cas de défaut. Un bon choix d'algorithme peut réduire le taux de défauts de page et ainsi améliorer les performances globales du système.