En informatique, débattre est la mauvaise performance d'un système de mémoire virtuelle (ou de pagination) lorsque les mêmes pages sont chargées à plusieurs reprises en raison d'un manque de mémoire principale pour les conserver en mémoire. En fonction de la configuration et de l'algorithme, le débit réel d'un système peut se dégrader de plusieurs ordres de grandeur.
En informatique, raclée se produit lorsque les ressources de mémoire virtuelle d'un ordinateur sont surutilisées, conduisant à un état constant de pagination et d'erreurs de page, inhibant la plupart des traitements au niveau de l'application. Cela entraîne une dégradation ou un effondrement des performances de l’ordinateur. La situation peut continuer indéfiniment jusqu'à ce que l'utilisateur ferme certaines applications en cours d'exécution ou que les processus actifs libèrent des ressources de mémoire virtuelle supplémentaires.
Pour en savoir plus clairement sur le thrashing, nous devons d'abord connaître les défauts de page et l'échange.
Raclée C'est lorsque les erreurs de page et les échanges se produisent très fréquemment à un rythme plus élevé, et que le système d'exploitation doit alors passer plus de temps à échanger ces pages. Cet état du système d’exploitation est connu sous le nom de thrashing. En raison du thrashing, l'utilisation du processeur va être réduite ou négligeable.
Le concept de base impliqué est que si un processus reçoit trop peu de trames, il y aura alors trop de défauts de page et trop fréquents. En conséquence, aucun travail utile ne serait effectué par le processeur et son utilisation diminuerait considérablement.
Le planificateur à long terme tenterait alors d'améliorer l'utilisation du processeur en chargeant davantage de processus dans la mémoire, augmentant ainsi le degré de multiprogrammation. Malheureusement, cela entraînerait une nouvelle diminution de l'utilisation du processeur, déclenchant une réaction en chaîne de défauts de page plus élevés, suivie d'une augmentation du degré de multiprogrammation, appelée thrashing.
Algorithmes pendant le Thrashing
Chaque fois que le thrashing démarre, le système d'exploitation tente d'appliquer soit l'algorithme de remplacement de page global, soit l'algorithme de remplacement de page local.
1. Remplacement global des pages
Étant donné que le remplacement global de page peut apporter n'importe quelle page, il essaie d'apporter plus de pages chaque fois qu'une raclée est détectée. Mais ce qui se passera en réalité, c'est qu'aucun processus ne recevra suffisamment d'images et, par conséquent, les raclées augmenteront de plus en plus. Par conséquent, l’algorithme global de remplacement de page n’est pas adapté en cas de raclée.
2. Remplacement de la page locale
Contrairement à l'algorithme de remplacement de page global, le remplacement de page local sélectionnera les pages qui appartiennent uniquement à ce processus. Il y a donc une chance de réduire les raclées. Mais il est prouvé qu’il existe de nombreux inconvénients si l’on utilise le remplacement de page local. Par conséquent, le remplacement de page local n’est qu’une alternative au remplacement de page global dans un scénario de raclée.
Causes de la raclée
Les programmes ou les charges de travail peuvent provoquer des ralentissements, ce qui entraîne de graves problèmes de performances, tels que :
- Si l'utilisation du processeur est trop faible, nous augmentons le degré de multiprogrammation en introduisant un nouveau système. Un algorithme global de remplacement de page est utilisé. Le planificateur de processeur constate la diminution de l'utilisation du processeur et augmente le degré de multiprogrammation.
- L'utilisation du processeur est comparée au degré de multiprogrammation.
- À mesure que le degré de multiprogrammation augmente, l'utilisation du processeur augmente également.
- Si le degré de multiprogrammation augmente encore, des problèmes s'installent et l'utilisation du processeur diminue fortement.
- Donc, à ce stade, pour augmenter l’utilisation du processeur et arrêter les problèmes, nous devons diminuer le degré de multiprogrammation.
Comment éliminer les coups
Le thrashing a des impacts négatifs sur la santé du disque dur et les performances du système. Il est donc nécessaire de prendre certaines mesures pour l’éviter. Pour résoudre le problème du raclée, voici les méthodes suivantes, telles que :
Techniques pour prévenir les coups
Le remplacement de page locale est meilleur que le remplacement de page globale, mais le remplacement de page locale présente de nombreux inconvénients, il n'est donc parfois pas utile. Par conséquent, vous trouverez ci-dessous quelques autres techniques utilisées pour gérer les raclées :
1. Modèle de localité
Une localité est un ensemble de pages activement utilisées ensemble. Le modèle de localité indique qu’au fur et à mesure qu’un processus s’exécute, il se déplace d’une localité à une autre. Ainsi, un programme est généralement composé de plusieurs localités différentes qui peuvent se chevaucher.
Par exemple, lorsqu'une fonction est appelée, elle définit une nouvelle localité où des références mémoire sont faites aux instructions d'appel de fonction, aux variables locales et globales, etc. De même, lorsque l'on quitte la fonction, le processus quitte cette localité.
2. Modèle d'ensemble de travail
Ce modèle est basé sur le concept énoncé ci-dessus du modèle de localité.
Le principe de base stipule que si nous allouons suffisamment de frames à un processus pour s'adapter à sa localité actuelle, il ne fera que se tromper à chaque fois qu'il se déplacera vers une nouvelle localité. Mais si les trames allouées sont inférieures à la taille de la localité actuelle, le processus est voué à échouer.
Selon ce modèle, basé sur le paramètre A, l'ensemble de travail est défini comme l'ensemble des pages dans les références de page « A » les plus récentes. Par conséquent, toutes les pages activement utilisées finiraient toujours par faire partie de l’ensemble de travail.
nuage de printemps
La précision de l'ensemble de travail dépend de la valeur du paramètre A. Si A est trop grand, les ensembles de travail peuvent se chevaucher. En revanche, pour des valeurs de A plus petites, la localité pourrait ne pas être entièrement couverte.
Si D est la demande totale de trames et de WSSjeest la taille de l'ensemble de travail pour le processus i,
D = ⅀ WSSje
Maintenant, si « m » est le nombre d’images disponibles dans la mémoire, il y a deux possibilités :
- D> m, c'est-à-dire que la demande totale dépasse le nombre d'images, un ralentissement se produira car certains processus n'obtiendront pas suffisamment d'images.
- D<=m, then there would be no thrashing.< li> =m,>
S'il y a suffisamment de trames supplémentaires, d'autres processus peuvent être chargés dans la mémoire. D'un autre côté, si la somme des tailles des jeux de travail dépasse la disponibilité des trames, certains processus doivent être suspendus (échangés en mémoire).
Cette technique évite les turbulences tout en garantissant le plus haut degré de multiprogrammation possible. Ainsi, il optimise l’utilisation du processeur.
3. Fréquence des défauts de page
Une approche plus directe pour gérer le thrashing est celle qui utilise le concept Page-Fault Frequency.
Le problème associé au thrashing est le taux élevé de défauts de page, et donc, le concept ici est de contrôler le taux de défauts de page.
Si le taux de défauts de page est trop élevé, cela indique que le processus dispose de trop peu de trames allouées. Au contraire, un faible taux de pages erronées indique que le processus comporte trop de trames.
Des limites supérieure et inférieure peuvent être établies pour le taux de défauts de page souhaité, comme indiqué dans le diagramme.
Si le taux de défauts de page tombe en dessous de la limite inférieure, des trames peuvent être supprimées du processus. De même, si le taux de défauts de page dépasse la limite supérieure, davantage de trames peuvent être allouées au processus.
En d’autres termes, l’état graphique du système doit rester limité à la région rectangulaire formée dans le diagramme donné.
Si le taux de défauts de page est élevé sans trames libres, certains processus peuvent être suspendus et ceux qui leur sont alloués peuvent être réaffectés à d'autres processus. Les processus suspendus peuvent redémarrer plus tard.