20/11/2016 Faculté des Sciences de Gabes Département d’informatique CHAPITRE IV –LA MÉMOIRE VIRTUELLE Par : Khaled Hassine [email protected] 20/11/2016 Khaled Hassine 1 PLAN Khaled Hassine 20/11/2016 2 PLAN Généralités Généralités Gestion des adresses Gestion des adresses Techniques de transfert Techniques de transfert Stratégies de remplacement 20/11/2016 Cours Système d'exploitation Khaled Hassine Stratégies de remplacement 3 20/11/2016 Khaled Hassine 4 1 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Pourquoi une mémoire virtuelle ? Constations : Définition Mémoire physique coûteuse. Mémoire secondaire (disques, mémoire étendue, ...) peu coûteuse. Programmes gourmands en mémoire et qui ne "tiennent pas" toujours en RAM. Khaled Hassine 5 support de l'ensemble des informations potentiellement accessibles Ensemble des emplacements dont l'adresse peut être engendrée par le processeur. 20/11/2016 Khaled Hassine 6 Les vues de la mémoire Les vues de la mémoire Mémoire virtuelle Ensemble des emplacements de la mémoire centrale physiquement présents dans l'ordinateur. Mémoire virtuelle = Conséquence : Utiliser la mémoire secondaire "comme" mémoire RAM. 20/11/2016 Mémoire physique = Mémoire de masse Vue du concepteur Vue de l'utilisateur Mémoire principale N>>n 20/11/2016 Cours Système d'exploitation Khaled Hassine 7 20/11/2016 Khaled Hassine 8 2 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Mécanisme de gestion PLAN Généralités Gestion des adresses Techniques de transfert L'exécution des programmes engendre des adresses dites virtuelles. Le mécanisme de gestion assure la traduction (dite aussi translation) de ces adresses virtuelles en adresses réelles en mémoire centrale. Le mécanisme de gestion des adresses doit être capable de détecter si une information se trouve en mémoire centrale ou non. On dispose des structures : table de traduction (translation table) résidente en mémoire centrale, décrient le contenu de la mémoire centrale et celle de la mémoire de masse. Stratégies de remplacement 9 Khaled Hassine 20/11/2016 20/11/2016 De l’adresse virtuelle vers l’adresse physique adresses virtuelles 0-4 K 4-8K n° page MMU 0 1 table des pages x 8-12 K 3 0 4 12-16 K 16-20 K 4 1 5 16-20 K 2 x 3 2 20-24 K 24-28 K 4 8 28-32 K 5 24-28 K 6 28-32 K 7 32-36 K 8 36-40 K 9 40-44 K 10 44-48 K 11 x x x Cours Système d'exploitation Khaled Hassine 11 la traduction en adresse physique est facilement réalisée on accède à l'information cherchée. L'information ne se trouve pas en mémoire principale: 32-36 K 20/11/2016 L'adresse virtuelle correspond à un bloc en mémoire principale : 4-8 K 2 20-24 K 0-4 K 8-12 K 12-16 8-12 KK 10 Le module de gestion des adresses adresses physiques présence Khaled Hassine 20/11/2016 Un événement (déroutement) dit de traitement de défaut de page est généré. Cet événement engendre l'interruption (abort) de l'instruction en cours Donne la main au module de transfert pour charger la partie à exécuter (en libérant si nécessaire de la place). Ensuite, le module de gestion des adresses effectue la traduction de l'adresse virtuelle en adresse physique rend tout de suite la main au programme qui a causé l'abort pour terminer normalement l'exécution. Khaled Hassine 12 3 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Exécution d’une défaut de page Remarques Mémoire virtuelle Khaled Hassine 20/11/2016 13 Exercice utilise la pagination de la mémoire , la taille de la mémoire réelle est de 1 Mo, la taille d'une page est de 512 octets , les instructions à référence mémoire ont un champ d’adresse de 24 bits. 20/11/2016 Cours Système d'exploitation sauvegarde de l'adresse de l'instruction avortée, l'unité centrale récupère l'adresse du programme de traitement dans une table de vecteurs d'interruptions. Bien que le traitement de défaut de pages est semblable au traitement d'une interruption externe, le défaut de page s'en distingue fondamentalement par le fait que l'instruction ne doit pas se terminer mais doit au contraire revenir en son état initial. Les registres altérés par l'exécution doivent être restitués de telle sorte, qu'après traitement du déroutement, on puisse relancer l'instruction à son point de départ. 20/11/2016 Khaled Hassine 14 Questions Soit un programme dont le code occupe 1024 octets en mémoire et qui utilise un vecteur de 1000 caractères. Ce programme est exécuté dans un système ayant les caractéristiques suivantes : Le signal de traitement de défaut de page est le même émis lorsqu'on cherche à accéder à une information située à une adresse supérieure à la taille de la mémoire centrale ou à une zone de mémoire protégée (interdite d'accès). Le mécanisme de fourniture de l'adresse du programme de traitement du défaut de page est semblable à celui utilisé lors des interruptions : Khaled Hassine I) Donnez : 1) Taille de la mémoire virtuelle 2) Le nombre de bits du champ déplacement 3) Le nombre de bits du numéro d’une page virtuelle 4) Le nombre de bits d'une adresse réelle 5) Le nombre de bits du numéro d’une page réelle (cadre) 6) Le nombre d'entrées de la table des pages virtuelles. II) Le chargement de ce programme en mémoire engendre-t-il une fragmentation interne? Justifiez votre réponse. 15 20/11/2016 Khaled Hassine 16 4 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Caractéristiques principales d’un algorithme de demande de pages PLAN Généralités Statique ou dynamique : Gestion des adresses Stratégie de chargement : Techniques de transfert 20/11/2016 Khaled Hassine 17 Quand un bloc doit il être chargé dans un cadre ? On peut choisir la demande pure (un bloc n’est chargé que s’il est demandé) mais on peut aussi décider de prés paginer (c.à.d de charger à l’avance un certain nombre de blocs). Stratégie de remplacement (et de placement) : Stratégies de remplacement Un algorithme statique alloue un nombre fixe de cadre à chaque processus. Un algorithme dynamique permet de changer le nombre de cadres d’un processus au cours d’une exécution. S’il n’y à pas de cadre libre quel cadre occupé doit-on déplacer pour placer le nouveau bloc ? Dans quel cadre un nouveau bloc doit être chargé ? Khaled Hassine 20/11/2016 18 Les stratégies de recherche (Fetch Strategies) Techniques de transfert Cours Système d'exploitation Khaled Hassine Pagination à la demande (Demand Fetch) : Stratégies de recherche Remplacement local ou global. 20/11/2016 Répondent à la question : quand on doit ramener la partie suivante d'un programme ou ces données de la mémoire auxiliaire vers la mémoire centrale ? Deux catégories de méthodes : Pagination anticipée (Anticipatory Fetch) : 19 20/11/2016 Le chargement n'a lieu qu'en cas de défaut de page et on ne charge que la page manquante. Pour longtemps, la stratégie adoptée consiste à ramener vers la mémoire centrale qu’une partie (programme ou donnée) que lors de sa demande. On charge les pages à l'avance; mais comment prévoir efficacement ? On croyait en fait que le temps passé pour prévoir l'avenir est un temps perdu. Des nouvelles recherches ont montré que la recherche anticipée peut améliorer l'état du système. Khaled Hassine 20 5 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Pagination à la demande : avantages Transfert des blocs vers la mémoire centrale Si Défaut de page Alors Si existe une zone libre Alors Charger la page dans la zone libre Calcul de l’adresse physique Sinon Choisir la page victime Si La page victime est modifiée Alors Ecriture d’une copie sur disque. FinSi Chargement de la nouvelle page Mise à jour de la table de page Revenir à l’instruction abortée FinSi Besoin minimal en E/S Besoin minimal en MC Réponse plus rapide ???? Plus de processus et/ou d’utilisateurs qui partagent la MC (degré de multiprogrammation) Khaled Hassine 20/11/2016 21 20/11/2016 Pagination anticipé : Working set Cet ensemble est appelé : Working Set (Espace de travail) Charger l'espace de travail pendent qu'un autre utilisateur est en train d'être servi par l'unité centrale. L'inconvénient de cette approche se présente lorsqu'un programme est en train de changer son espace de travail auquel cas on charge inutilement plusieurs pages. Cours Système d'exploitation Khaled Hassine Working Set (Espace de travail) la plut part des programmes référencent leur espace de travail uniformément (peu de changement d’une étape à une autre), ces références tendent à se regrouper autour d'un petit nombre de pages. 20/11/2016 22 Working set : caractéristiques Cas d'un système Multitâches Idée de base (principe de localité) : Khaled Hassine La variation de W(k,t) dans le temps est logarithmique car le Working Set change lentement à la fin et très rapide pour k petit. 23 représenté par une fonction W(k, t) où k est le nombre de référence à la mémoire à l'instant t. W(k,t) est une fonction monotone croissante car les k+1 références les plus récentes utilisent les k références précédentes 20/11/2016 Ceci sous-entend, qu'il existe un intervalle large de k pour lequel l'espace de travail est constant. Ceci permet de parier, avec des probabilités raisonnables de succès, sur les numéros des pages qui seront nécessaires au moment du redémarrage du programme en partant de l'espace de travail utilisé au moment où il a été suspendu. Khaled Hassine 24 6 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Remplacement des pages Techniques de transfert Stratégies de recherche Remplacement local ou global. Ceci revient à répondre à la question : Comment repartir les pages sur les différents processus et le système ? Deux stratégies sont possibles : Exemples : 20/11/2016 Khaled Hassine 25 Remplacement local : chaque processus choisit parmi les cadres de page qui lui sont déjà allouées Remplacement global : un processus peut récupérer un cadre de page d’un autre processus 20/11/2016 Windows NT applique le mode de remplacement local Unix applique un remplacement global. Khaled Hassine 26 Principe de base Stratégies de remplacement Remplacement local Remplacement global 20/11/2016 Cours Système d'exploitation Khaled Hassine A chaque processus, sont affectés un certain nombre de cadres : 27 à utiliser de façon autonome, son temps d'exécution ne dépend que de son propre comportement. Ceci peut se faire grâce à un pointeur sur la liste de cadres qu’utilise un processus. Ainsi, on peut appliquer à chaque processus un algorithme de remplacement différent. 20/11/2016 Khaled Hassine 28 7 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Problématique Le remplacement local demande que l'on réalise un partage entre les différents processus : Le partage équitable Si on alloue peu de case à un processus, son nombre de défaut de pages va augmenter et on ralenti ainsi son exécution. Dans le cas contraire, le processus va pénaliser un second programme qui restera en attente de case libre alors qu’un autre a plus que nécessaire. Le partage équitable Le partage proportionnel Khaled Hassine 20/11/2016 29 Khaled Hassine Si le nombre de cadres allouées à un processus non prioritaire tombe en dessous de son minimum vital, ce processus est constamment en défaut de page : il passe tout son temps à réaliser des demandes de pages. Ce processus doit être alors éjecté entièrement en zone de swap et reviendra plus prioritaire quand il y aura de la place. Nombre total de cadres : m = 64 2 processus P1 et P2, Si : Taille nécesaire pour chaque processus S1 = 10 S2 = 127 Allocation égale : 32 pages par processus Allocation proportionelle : S Cours Système d'exploitation Khaled Hassine 31 20/11/2016 10 64 5 137 127 a2 64 59 137 a1 si a i a llo c a tio n f o r p i 20/11/2016 30 Exemple On peut améliorer cette approche en utilisant S = ΣSi où Si est le nombre de pages du Processus i. Chaque processus se voit attribué m (= Si/S) pages. On peut encore améliorer en faisant varier ce rapport en fonction de la priorité de chaque processus. Ceci peut engendrer le problème d'écroulement : un grand nombre de pages est donné à un processus qui en utilise effectivement peu. 20/11/2016 Le partage proportionnel alors on alloue m/n pages par processus ! On retrouve ici un problème proche de la fragmentation interne : Deux stratégies : Si on dispose de m pages de mémoire physique et de n processus, si m S Khaled Hassine 32 8 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Principe de base Stratégies de remplacement Remplacement local Remplacement global 20/11/2016 Khaled Hassine 33 En fortran l'allocation des tableaux se fait par colonne (dans l'autre sens) … Cours Système d'exploitation 34 Khaled Hassine la taille d’une page est 4 Kilooctets int est codé sur 2 octets. 1 seul cadre est réservé pour les données du programmes Le programme : int m[2048][2048] main { int i, j ; for (i=0;i<2048;i++) for (j=0;j<2048;j++) m[i][j] = 1; } m[0][0] suivie de m[0][1] suivie de … m[0][B-1] m[1][0] ... m[1][B-1] … m[A-1][0] ... m[A-1][B-1] 20/11/2016 Khaled Hassine On suppose que : int m[A][B] est une matrice de A x B entiers. En mémoire (ligne par ligne) : En général, le remplacement en mode global est plus utilisé et donne des meilleurs résultats mais il est plus difficile à mettre en œuvre. Exemple en C : bonne initialisation Les compilateurs C allouent les structures répétitives sur des plages d'adresse croissantes contiguës : de la charge du système du comportement des différents processus. 20/11/2016 Exemple Décharger éventuellement les pages d’un autre programme pour exécuter le processus qui a provoqué le défaut de page. Le comportement d'allocation de pages aux processus dépend : 35 20/11/2016 Ce processus accède à une nouvelle page toute les 2048 affectations. Nombre de défauts de pages : 2048 Khaled Hassine 36 9 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Exemple en C : mauvaise initialisation PLAN Le programme (Inversion des indices) : int m[2048][2048] main {int i, j ; for (i=0;i<2048;i++) for (j=0;j<2048;j++) m[j][i] = 1; } Ce processus accède à une nouvelle page toutes les affectations ! Nombre de défauts de pages est : 2048 x 2048 Khaled Hassine 20/11/2016 Généralités Gestion des adresses Techniques de transfert Stratégies de remplacement 37 20/11/2016 Le principal problème : pas d'espace libre où loger le nouveau bloc sollicité par le processeur On cherche souvent le bloc "le moins utile" dans la suite de l'exécution, c'est à dire, dont l'absence se fera le moins sentir. Il faut : Ce problème dépend de la dynamique de l'exécution, difficile à prédire. Les approches utilisées se basent sur le bon sens (des heuristiques) dont on espère la réussite dans la majorité des cas. Cours Système d'exploitation Khaled Hassine p : Probabilité d’un défaut de page prédire les références futures des informations présentes en MC enlever le bloc dont la prochaine référence est espérée la plus lointaine. 20/11/2016 38 Performance d’un algorithme de remplacement Problématique Khaled Hassine Temps d’Accès Effectif (TAE) TAE = (1 – p) x accès MC + p x Temps défaut de page Temps de défaut de page = Somme de temps de 39 0 p 1.0 Si p = 0, pas de défauts de pages Si p = 1, chaque référence est un défaut de page 20/11/2016 Swap éventuel de la page victime sur disque Swap de la page sollicitée en mémoire centrale Relancement de l’instruction Khaled Hassine 40 10 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Exemple Données réelles : Temps d’accès mémoire ~ 1 s Temps de Swap ~ 10 ms = 10000 s Algorithme de pagination stable 50% du temps, la page remplacée a été modifiée => elle sera swappée sur disque Temps d’Accès Effectif TEA ~ (1 – p) x 1 + p x 5000 ~ 1 + 5000 x p TAE est de l’ordre de la ms 20/11/2016 Khaled Hassine 41 On appelle suite de références w = p1 p2 ... pn une suite de numéros de pages correspondant à des accès à ces pages. Un algorithme A de pagination sur m cadres est stable si ∀ m , ∀ w , on a : Coût (A , m , w) <= Coût ( A , m+1 , w) Cette notion est importante pour éviter l'écroulement du SE (thrashing) par une génération excessive de défauts de pages. 20/11/2016 Graphe : Défauts de Pages en fonction Nombre de Cadres Pourquoi la pagination fonctionne ? Modèle de localité Cours Système d'exploitation Khaled Hassine 42 Ecroulement 20/11/2016 Khaled Hassine 43 Les processus migrent d’une localité à une autre Les localités peuvent s’entrelacer Pourquoi l’écroulement a lieu ? taille des localités > taille totale de la mémoire 20/11/2016 Khaled Hassine 44 11 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Comment améliorer la performance ? Stratégies de remplacement Il y a deux critères pour améliorer la performance de la mémoire virtuelle : Réduire le temps d’accès aux disques : critère purement matériel Réduire la valeur de p par le choix d’un bon algorithme de demande de page : critère purement logiciel L'algorithme optimal L'algorithme FIFO L'algorithme de la seconde chance L'algorithme NRU L'algorithme LRU L'algorithme de vieillissement Plus Récemment utilisé MRU L’anomalie de Belday Pour illustrer les algorithmes de remplacement, on suppose qu'on dispose de 3 cadres en MC On utilise la suite de pages suivante : 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 20/11/2016 Khaled Hassine 20/11/2016 45 Khaled Hassine 46 Principe Stratégies de remplacement L'algorithme optimal L'algorithme FIFO L'algorithme de la seconde chance L'algorithme NRU L'algorithme LRU L'algorithme de vieillissement Plus Récemment utilisé MRU L’anomalie de Belday 20/11/2016 Cours Système d'exploitation Khaled Hassine 47 Utiliser comme victime la page qui ne sera pas utilisée pendant le plus longtemps. Pour ce faire, le SE indexe chaque page par le nombre d'instructions qui seront exécutées avant qu'elle ne soit référencée. En cas de nécessité, le SE retire la page d'indice le plus élevé, c'est à dire la page qui sera référencée dans le futur le plus lointain. 20/11/2016 Khaled Hassine 48 12 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Exemple Limites 0 7 0 1 2 7 7 7 2 2 2 2 2 7 0 0 0 0 4 0 0 0 1 1 3 3 3 1 1 X X X X X X X 1 2 Faut X X 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 L’algorithme génère seulement 9 défauts de page. 20/11/2016 Khaled Hassine Cet algorithme est pratiquement impossible à appliquer : Cet algorithme est stable. Utilisé pour mesurer les performances des autres algorithmes 49 Comment calculer les indices des pages (instructions)? 20/11/2016 avec un simulateur, on peut évaluer les performances de cet algorithme et s'en servir comme référence pour les suivants. Khaled Hassine 50 Premier Entrée Premier Sortie (FIFO : First In First Out). Stratégies de remplacement L'algorithme optimal L'algorithme FIFO L'algorithme de la seconde chance L'algorithme NRU L'algorithme LRU L'algorithme de vieillissement Plus Récemment utilisé MRU L’anomalie de Belday 20/11/2016 Cours Système d'exploitation Khaled Hassine 51 20/11/2016 On éjecte la page la plus ancienne en mémoire sans tenir compte des références qui ont pu être faite. Le bon sens de cette approche : le bloc le plus anciennement chargé en mémoire centrale est probablement (du moins on espère) celui qui a le moins de chance d'être utilisé lors des prochains accès Khaled Hassine 52 13 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Exemple Implémentation et limites On peut implémenter cet algorithme grâce à une liste chaînée où 7 0 1 2 0 1 2 7 7 0 Faute X 7 0 1 X 2 0 1 X X 0 3 0 4 2 3 0 2 3 1 X 2 3 0 X 4 3 0 X 4 2 0 X 4 2 3 X 0 2 3 X 3 2 1 2 0 1 3 X 0 1 2 X 0 1 7 0 1 7 1 2 X 7 0 2 X 7 0 1 X La page en tête est la première chargée en mémoire et celle en queue est la dernière. Le remplacement se fait sur la page en tête de liste. Avantages : Inconvénients : manque d’efficacité. Simple à implémenter Il existe des suites de pages pour lesquelles cet algorithme fait plus de défauts de page avec quatre cadres mémoire qu'avec trois Par exemple : 1 2 3 4 1 2 5 1 2 3 4 5. Les vieilles pages peuvent aussi être celles qui sont le plus utilisées. L’algorithme génère 15 défauts de page. Khaled Hassine 20/11/2016 53 Exemple : avec 3 cadres 0 1 2 3 4 1 2 5 3 4 1 1 1 4 4 5 5 2 2 2 1 4 1 3 3 3 X 3 X 1 2 5 3 X X X X 1 2 Faute X 20/11/2016 Cours Système d'exploitation 2 X Khaled Hassine 2 54 Exemple : avec 4 cadres Génère 9 défauts de page. 1 Khaled Hassine 20/11/2016 2 Génère 10 défauts de page. 5 1 2 1 1 0 1 2 2 3 Faute X X 4 X 55 20/11/2016 3 4 1 2 3 1 2 3 4 X X 1 2 5 1 2 3 4 5 2 3 4 X 5 1 3 4 X 5 1 2 4 X 5 1 2 3 X 4 1 2 3 X Khaled Hassine 5 4 5 2 3 X 56 14 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Principe de base Stratégies de remplacement L'algorithme optimal L'algorithme FIFO L'algorithme de la seconde chance L'algorithme NRU L'algorithme LRU L'algorithme de vieillissement Plus Récemment utilisé MRU L’anomalie de Belday 20/11/2016 Khaled Hassine 57 Si la page en tête de liste est réutilisée, elle sera enlevée au prochain remplacement. 20/11/2016 Khaled Hassine 58 Algorithme de la seconde chance : liste chaînée Un bit associé à chaque page est positionné à 1 à chaque fois qu'une page est utilisée par un processus. Avant de retirer une page de la mémoire, on va essayer de lui donner une deuxième chance. Conserve l’avantage de simplicité Pallie les inconvénients en donnant une seconde chance à la page en tête. Comment faire ? Mise en œuvre Amélioration de l’algorithme FIFO : Si le bit d'utilisation est à 0 la page est swappée hors mémoire (elle n'a pas été utilisée depuis la dernière demande de page). Si le bit est à 1, il est positionné à zéro et la page est mise en queue de liste et on cherche une autre victime. Ainsi une page ne sera swappée hors mémoire que si : toutes les autres pages ont été utilisées, utilisent aussi leur deuxième chance. 20/11/2016 Cours Système d'exploitation Khaled Hassine 59 20/11/2016 Khaled Hassine 60 15 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Algorithme de l’horloge : liste circulaire Algorithme de l’horloge : liste circulaire Peut être vue comme une queue circulaire où on avance sur les pages qui ont le bit à 1 (en le positionnant à zéro) jusqu'à ce que l'on trouve une page avec le bit d'utilisation à zéro. Ceci est connu sous le nom de l'algorithme de l'horloge. Comme l'algorithme précédent mais l'utilisation d'une liste circulaire évite de déplacer les pages. 20/11/2016 Khaled Hassine 61 20/11/2016 Khaled Hassine 62 Algorithme de l’horloge: un exemple (Stallings). Stratégies de remplacement L'algorithme optimal L'algorithme FIFO L'algorithme de la seconde chance L'algorithme NRU L'algorithme LRU L'algorithme de vieillissement Plus Récemment utilisé MRU L’anomalie de Belday La page 727 est chargée dans le cadre 4. La prochaine victime est 5, puis 8. 20/11/2016 Cours Système d'exploitation Khaled Hassine 63 20/11/2016 Khaled Hassine 64 16 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Algorithme de remplacement de la page non récemment utilisée (NRU) NRU (Not Recently Used) utilise 2 bits initialisés à 0: Référence R : Si une page a été référencée, R ← 1 Modification M : Si une page est modifiée, M ← 1. Différencier les pages récemment utilisées des autres : Les pages sont reparties en 4 classes : Pourquoi M et R ? Classe 0 : non référencée et non modifiée Classe 1 : non référencée et modifiée. Classe 2 : référencée et non modifiée. Classe 3 : référencée et modifiée. 20/11/2016 Khaled Hassine L’algorithme tient aussi compte du bit de modification car L’algorithme NRU choisit la page à remplacer de la classe non vide de plus petit numéro. Cet algorithme a des performances assez satisfaisantes. 65 le système d’exploitation utilise les interruptions horloge : les pages qui ont été utilisées (accédées en lecture ou en écriture) auront leur bit à 1 et ne seront pas choisies par l’algorithme en cas de remplacement à effectuer. 20/11/2016 Une page peut être référencée et ensuite R remise à zéro et reste ainsi quelques temps non utilisée. Si jamais, cette page doit être enlevée de la mémoire, elle doit forcement être sauvegardée sur le disque. Dans ce cas, il vaut mieux choisir une page qui a été non référencée et non modifiée qu’une page qui a été référencée et modifiée. Khaled Hassine 66 Principe de base Stratégies de remplacement L'algorithme FIFO L'algorithme de la seconde chance L'algorithme NRU L'algorithme LRU L'algorithme de vieillissement Plus Récemment utilisé MRU L’anomalie de Belday 20/11/2016 Cours Système d'exploitation Khaled Hassine LRU (Least Recently Used : moins récemment utilisé) se base sur l'heuristique suivante : 67 Si un bloc en mémoire centrale est longuement non sollicité, il y a des fortes chances que les prochains accès ne seront pas à ce bloc. Inversement, on fait le pari que les pages qui ont été récemment utilisées le seront dans un proche avenir. Bien qu'on puisse trouver des cas où cette approche échoue, elle a, en pratique, montré ces performances. 20/11/2016 Khaled Hassine 68 17 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Comparaison de FIFO avec LRU Exemple 0 7 0 1 2 4 2 3 0 7 7 7 2 0 0 0 2 4 4 4 0 1 1 1 0 0 0 3 3 3 0 1 0 1 3 3 2 2 2 2 2 7 X X X X X X X X X X X X 1 2 Faute 0 3 0 3 2 1 2 0 1 7 0 1 L’algorithme LRU génère 12 défauts de page. Contrairement à FIFO, LRU reconnaît que les pages 2 et 5 sont utilisées fréquemment La performance de FIFO est moins bonne: dans Khaled Hassine 20/11/2016 Module 8 69 Difficulté de mise en œuvre page la plus récemment utilisée en premier mettre à jour cette liste à chaque référence mémoire. Cours Système d'exploitation A chaque entrée de la table des pages, on ajoute un compteur de temps qui est mis à jour à chaque accès. Couteux !! 20/11/2016 Khaled Hassine 70 Implémentation avec compteur La mise en œuvre de l'algorithme LRU nécessite la mémorisation de l'heure de la dernière référence à chaque bloc présent en mémoire centrale. Ceci pose de nombreux problèmes d'implémentation et peut demander de substantiels outils matériels. Tenir à jour une liste chaînée de pages : ce cas, LRU = 3+4, FIFO = 3+6 71 20/11/2016 A chaque fois qu’une page est référencée, on copie une horloge logique dans ce compteur Quand une page est référencée, incrémenter l’horloge logique et la copier dans le compteur de la page référencée on a toujours le temps de la dernière utilisation de cette page Rechercher sur l'ensemble de la table la victime : la page avec la plus petite valeur de compteur Khaled Hassine 72 18 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Implémentation avec pile Implémentation via des masques A chaque fois que l'on accède à une page, celle-ci est placée en sommet de la pile. Le dessus est toujours la page la plus récemment utilisée Le fond de la pile la moins récemment utilisée. On utilise un octet associé à chaque page. Le système positionne à 1 le bit de poids fort à chaque accès à la page. Toutes les N (nanosecondes) click d'horloge, le système applique un décalage à droite de l'octet associé à chaque page. On obtient ainsi un historique de l'utilisation de la page. Khaled Hassine 20/11/2016 73 20/11/2016 Implémentation via des masques c'est la page ayant le plus petit octet qui a été utilisée le moins récemment l'unicité des numéros n'étant pas assurée la sélection entre numéros identiques se fait avec l'ordre FIFO. Cet algorithme est en théorie : Cours Système d'exploitation Khaled Hassine 74 Les opérations sur les listes chaînées étant très coûteuse, les concepteurs ont eu recours aux matrices carrées de taille n, n est le nombre de cadres. La matrice est initialisée à 0. Lorsque la page logée dans le cadre n° i est référencée : le meilleur pour implémenter le remplacement des pages puisqu'il retire la page la moins pénalisante et celle qui risque fort d’être utilisée à nouveau. le plus coûteux étant donné que les mises à jour sont faite à chaque accès à une page. 20/11/2016 Khaled Hassine Implémentation via des matrices Si l'on interprète ces octets comme des entiers non signés : L'octet à 00000000 indique que la page n'a pas été utilisée depuis 8 cycles L'octet 11111111 indique que la page a été utilisée pendant les 8 derniers cycles. La page de masque 11000100 a été utilisée plus récemment que 01110111. 75 la ième ligne est mise à 1 ensuite la ième colonne est mise à 0. La page la moins récemment référencée est celle dans le cadre ayant la ligne contenant la plus petite valeur binaire. 20/11/2016 Khaled Hassine 76 19 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Exemple Suite de références : 0213 123 0 1 2 3 0 1 2 3 0 1 2 3 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 1 1 0 1 3 0 0 0 0 3 0 0 0 0 3 0 0 0 0 Initialisation Page 0 Page 2 0 1 2 3 0 1 2 3 0 1 2 3 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 2 1 0 0 1 2 1 0 0 0 2 1 0 0 0 3 0 0 0 0 3 1 1 1 0 3 1 0 1 0 1 2 3 Page 1 Page 3 0 1 2 3 0 0 0 0 0 1 1 0 0 2 1 1 0 3 1 0 0 1 2 3 0 0 0 0 0 0 1 1 1 0 0 0 1 1 2 1 1 0 0 2 0 3 1 1 1 0 3 0 Page 3 Khaled Hassine 20/11/2016 L'algorithme optimal L'algorithme FIFO L'algorithme de la seconde chance L'algorithme NRU L'algorithme LRU L'algorithme de vieillissement Plus Récemment utilisé MRU L’anomalie de Belday Page 1 0 Page 2 Stratégies de remplacement 20/11/2016 77 Critique du LRU R est rajouté au compteur à chaque interruption de l'horloge R est remise à 0 ensuite. 20/11/2016 Cours Système d'exploitation Khaled Hassine 78 Critique du LRU C'est une amélioration logicielle de l'algorithme LRU en vu de le rendre moins coûteux. A chaque entrée d'une page dans la table de pages, on rajoute un champ compteur R qui est incrémenté de 1 quand une page est référencée. En réalité : Khaled Hassine 79 Quand un défaut de page se produit, si on remplace la page dont le compteur est le plus faible, on risque d'avoir la situation suivante : une page accédée à maintes reprises il y a quelques temps sera considérée plus récente qu'une page accédée moins fréquemment et plus récemment. La solution proposée consiste à inclure le vieillissement du compteur. 20/11/2016 Khaled Hassine 80 20 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Principe de l’algorithme Le bit de référence R est inséré dans le bit de poids fort du compteur en appliquant une opération de décalage à droite. Si on regarde de près le principe de l'algorithme, on remarque qu'en comptant à partir de la gauche : Exemple si le bit de poids fort (p) est à 0, la page n'est pas référencée depuis le dernier top d'horloge, si le bit de poids (p-1) est à 0, la page n'est pas référencée depuis les 2 derniers tops d'horloge, etc. Il est donc logique de retirer la page qui a la plus petite valeur du compteur. Khaled Hassine 20/11/2016 81 Top 0 Top 1 Top 2 Top 3 Top 4 101011 110010 110101 100010 011000 Page 0 10000000 11000000 11100000 11110000 01111000 Page 1 00000000 10000000 11000000 01100000 10110000 Page 2 10000000 01000000 00100000 00010000 10001000 Page 3 00000000 00000000 10000000 01000000 00100000 Page 4 10000000 11000000 01100000 10110000 01011000 Page 5 10000000 01000000 10100000 01010000 00101000 Bits R 20/11/2016 Khaled Hassine 82 Algorithme de vieillissement Différence avec LRU: Si deux pages sont référencées entre deux interruptions alors on ne peut pas dire laquelle a été référencée en dernier Les compteurs ont un nombre limité de bits Stratégies de remplacement On ne peut pas distinguer deux pages dont tous les bits sont à 0 Le taille du compteur indique le nombre d’intervales comptabilisés L'algorithme FIFO L'algorithme de la seconde chance L'algorithme NRU L'algorithme LRU L'algorithme de vieillissement Plus Récemment utilisé MRU L’anomalie de Belday 20/11/2016 Cours Système d'exploitation Khaled Hassine 83 20/11/2016 Khaled Hassine 84 21 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Principe Most Recently Used Lorsqu’un défaut de page se produit, c’est la dernière page utilisée qui sera tuée. MRU permet de remédier aux inconvénients de LRU (trop gourmands en temps de calcul et difficiles à implémenter) Facile à implémenter : Exemple 1 0 Faut 0 1 2 3 0 1 2 0 0 0 0 3 3 3 1 1 1 0 2 2 X X 1 2 Faute de page X X 0 2 3 0 4 3 0 3 2 1 2 0 1 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 3 0 4 4 4 4 4 4 4 4 4 4 1 2 2 2 2 3 0 3 2 1 2 0 1 1 X X X X X X X X X X X X X X X 85 Cours Système d'exploitation 2 0 1 86 Exemple 2 : LRU 3 0 4 5 6 7 Page sollicitée 0 1 2 3 0 1 2 2 2 2 4 4 4 7 0 0 0 0 3 3 3 2 0 0 3 3 3 5 5 5 1 1 1 1 0 0 2 1 1 1 0 0 0 6 6 2 2 2 2 X X X X X X X X X Faute de page X X X Khaled Hassine 7 Khaled Hassine 20/11/2016 2 3 X X 0 3 0 2 3 4 5 6 7 2 2 5 5 5 0 0 4 4 4 7 1 1 3 3 3 6 6 X X X X X X X Total de fautes de pages : 12 Total de fautes de pages : 13 20/11/2016 X 0 L’algorithme MRU génère 16 défauts de page. L’algorithme FIFO génère 15 défauts de page. L’algorithme LRU génère 12 défauts de page. Même si le nombre de défaut de pages est supérieur pour le MRU que pour le LRU, l’algorithme engendre moins de surcharge (pas de recherche du min, pas de structures de données complexes, …) Exemple 2 : FIFO Page sollicitée 1 7 2 Assez efficace dans la pratique Khaled Hassine 0 7 1 Mémoriser seulement la dernière page référencée Minimise les surcharges 20/11/2016 7 87 20/11/2016 Khaled Hassine 88 22 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Exemple 2 : MRU Page sollicitée 0 1 2 3 0 0 0 0 0 1 1 1 2 Faute de page X X 0 1 2 0 3 0 2 3 4 5 6 7 0 0 0 0 0 1 2 2 2 2 2 2 3 3 4 5 6 7 X X X X X X X Stratégies de remplacement L'algorithme optimal L'algorithme FIFO L'algorithme de la seconde chance L'algorithme NRU L'algorithme LRU L'algorithme de vieillissement Plus Récemment utilisé MRU L’anomalie de Belday Total de fautes de pages : 9 Khaled Hassine 20/11/2016 20/11/2016 89 Exemple 90 3 cadres Considérons la séquence de références des pages suivante : 0-1-2-3-0-1-4-0-1-2-3-4. On applique le PAPS comme algorithme de remplacement de page sur deux cas : Khaled Hassine 0 0 1 2 3 0 1 4 0 1 2 3 4 0 0 0 3 3 3 4 4 4 4 4 4 1 1 1 0 0 0 0 0 2 2 2 2 2 2 1 1 1 1 1 3 3 X X X X X X X 1 2 3 cadres 4 cadres Faute de page X X Total de fautes de pages : 9 20/11/2016 Cours Système d'exploitation Khaled Hassine 91 20/11/2016 Khaled Hassine 92 23 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Anomalie de Belady avec FIFO 4 cadres 0 0 0 1 1 0 2 0 3 0 1 1 2 2 3 Faute de page X X X 0 1 4 4 0 4 1 4 2 4 3 3 4 3 1 1 0 0 0 0 4 2 2 2 1 1 1 1 3 3 3 3 2 2 2 X X X X X X X Total de fautes de pages : 10 20/11/2016 Khaled Hassine 93 20/11/2016 Remarques Cours Système d'exploitation 94 Remarques Si l'espace de travail est plus grand que la taille de la mémoire centrale (ou de la partie destinée à un utilisateur), il n’y a pas de miracle : les défauts de pages seront très fréquents. Lorsqu'un programme engendre, lors de son exécution, des nombreux défauts de pages d'une manière continue, on dit que le programme s'écoule. Si le programme utilise un espace de travail qui évolue lentement dans le temps, tout se passe normalement bien même si la taille du programme est largement supérieure à la taille de la mémoire centrale. 20/11/2016 Khaled Hassine Khaled Hassine 95 Si le bloc à éjecter représente des données modifiées, il est indispensable de le réécrire en mémoire secondaire afin de garder une image fidèle de son contenu. Par suite, pour accélérer le traitement de défaut de pages, la copie sur disque peut se faire pendent que l'UC exécute des calculs et même sans qu'un traitement de défaut de pages ne se produise. Ceci permet de rendre de plus en plus transparent à l'utilisateur la gestion en mémoire virtuelle. 20/11/2016 Khaled Hassine 96 24 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Exercice Question On considère un ordinateur dont le système de mémoire virtuelle dispose de 4 cadres (frames) qui sont tous occupés. Le tableau suivant donne, pour chacun d'eux, : la date en microsecondes du chargement de la page qu’ils contient, l’heure en microsecondes du derniers accès à cette page , le nombre d’accès effectués sur cette page, Si la page a été modifiée. Khaled Hassine 20/11/2016 97 Cadre 0 soit en réorganisant le contenu de la mémoire, soit en libérant de la place par recopie d'un segment résident en mémoire principale dans la mémoire de masse. Dans le deux cas, la manipulation est lourde et, par conséquent, coûteuse en temps. 20/11/2016 Cours Système d'exploitation Khaled Hassine Oui 120 260 4 Non 2 230 275 2 Oui 3 100 320 5 Oui En justifiant votre réponse, donner quelle sera la page remplacée au prochain défaut de page pour chacun des quatre algorithmes de remplacement suivants : PAPS, NRU, LRU, MRU. Khaled Hassine 98 Remarque Si une information à laquelle on veut accéder ne se trouve pas en mémoire, le SE charge tout le segment auquel elle appartient. La taille non uniforme des segments impose le dégagement d'un espace suffisant pour le ranger en MC : Modifié 1 20/11/2016 Cas d’une organisation segmentée de la mémoire Date de Chargement Date d’accès Nombre (à l’instant t=) (à l’instant t=) d’accès 150 180 1 99 Toutes les informations présentes dans le segment ne sont pas utilisées de la même façon par l'unité centrale. En moyenne 80 % du temps d'exécution est engendré par 20 % d'un programme. L’UC n'accède pas à toutes les données avec la même fréquence. Une grande partie des informations présentes dans le segment est chargée inutilement en mémoire puisqu'elle est peu (ou pas) utilisée. 20/11/2016 Khaled Hassine 100 25 20/11/2016 Faculté des Sciences de Gabes Département d’informatique Cas d’une organisation paginée de la mémoire : Gestion plus facile L'organisation de la mémoire en pages permet de remédier aux inconvénients de la segmentation. En effet, l'intérêt de cette organisation est double : Seule la page à laquelle appartient l'information recherchée est chargée en mémoire centrale. Les pages sont toutes de même taille, la gestion de l'espace mémoire est grandement simplifiée par rapport à ce que l'on peut faire avec la segmentation. Le remplacement des pages les unes par les autres est beaucoup plus simple que la réorganisation de la mémoire pour le placement des segments. 20/11/2016 Cours Système d'exploitation Khaled Hassine 101 20/11/2016 Khaled Hassine 102 26