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