Série d`exercices #12

Transcription

Série d`exercices #12
Série d’exercices #12
IFT-2245
4 avril 2016
13
User level threads et page faults
Lorsqu’une page fault se produit, le processus qui tente d’accéder à la page doit
bloquer en attendant la dite page. Supposons qu’il existe un processus contenant
5 user-level threads et que le mapping utilisé est many to one. Si un des threads
entraı̂ne une page fault en accédant la pile, est-ce que les autres user threads
appartenant au processus devront attendre que la page fautive soit amenée en
mémoire ?
14
Remplacement de pages
Considérez la suite de références de page suivante :
7, 2, 3, 1, 2, 5, 3, 4, 6, 7, 7, 1, 0, 5, 4, 6, 2, 3, 0, 1
En supposant de la pagination à la demande avec 3 frames, combien de page
faults y aura-t-il si on utilise les algorithmes de remplacement suivant :
1. Remplacement LRU (Least Recently Used )
2. Remplacement FIFO (First In, First Out)
3. Remplacement OPT (Optimal )
15
Thrashing
Quelle est la cause du thrashing ? Comment est-il possible de le détecter ? Une
fois détecté, comment est-il possible pour le système de régler le problème ?
16
Mieux qu’Optimal
L’algorithme de remplacement OPT est réputé être imbattable.
Pourtant lorsqu’un système multiprocessus souffre de thrashing, un système
basé sur le modèle du working-set ou sur celui de la fréquence de page faults
peut obtenir une performance largement meilleure que celle obtenue avec OPT.
Expliquer pourquoi.
1
17
Belady et LRU
Montrer formellement que l’algorithme de remplacement LRU n’est pas victime
de l’anomalie de Belady.
18
LRU, LFU, MFU
Trouvez une situation où l’algorithme de remplacement LRU est moins efficace
que MFU. De même pour LFU.
19
Vitesse d’horloge
Supposons qu’il est possible de suivre les déplacements du pointeur dans l’algorithme de l’horloge (clock algorithm). Que pouvez-vous dire du comportement
du programme lorsque :
1. Le pointeur bouge rapidement.
2. Le pointeur bouge lentement.
20
TLB et page faults
Supposons qu’un programme référence une adresse mémoire virtuelle. Décrire
les scénarios pour lesquels ces événements peuvent se produire ? (expliquez si
un scénario est impossible)
1. TLB miss et pas de page fault.
2. TLB miss et un page fault.
3. TLB hit et pas de page fault.
4. TLB hit et un page fault.
21
Modèle du working-set
Considérer le paramètre ∆ dans la définition de la fenêtre du working-set (dans
le modèle du working-set).
1. Quel est l’effet d’avoir un petit ∆ sur le taux de page fault et le nombre
de processus actifs du système ?
2. Quel est l’effet d’un grand ∆ ?
22
Buddy-allocation
Soit un segment de 1024KB où la mémoire est allouée selon le système du compagnon (buddy system). Faire l’allocation des requêtes suivantes (dans l’ordre) :
1. Requête de 240B
2
2. Requête de 120B
3. Requête de 60B
4. Requête de 130B
Modifier ensuite votre arbre pour les désallocations suivantes (dans l’ordre) :
1. Relâche le bloc de 240B
2. Relâche le bloc de 60B
3. Relâche le bloc de 120B
Dessiner les arbres résultants suite aux requêtes puis aux désallocations.
23
Parcours de tableau
Soit le programme suivant :
int i, j ;
int data[128][128];
for (j = 0; j < 128; j++)
for (i = 0; i < 128; i++)
data[i][j] = 0;
Supposer que le système utilise LRU, des pages de 128 mots et un nombre de
frames inférieur à 128. Expliquer en quoi cet exemple brise la transparence du
système de pagination à la demande.
Trouver un algorithme de remplacement simple qui donnerait de meilleurs
résultats sur cet exemple.
3

Documents pareils