web-dev-qa-db-fra.com

Qu'est-ce que la raclée? Pourquoi cela se produit-il?

Dans un système d'exploitation, le thrashing est lié à la gestion de la mémoire. Pourquoi le thrashing se produit-il? Comment l'empêcher?

J'ai vérifié Wikipedia (mais j'ai besoin d'une compréhension simple).

31
user2803850

Dans les systèmes d'exploitation qui implémentent un espace de mémoire virtuelle, les programmes allouent de la mémoire à partir d'un espace d'adressage qui peut être beaucoup plus grand que la quantité réelle de RAM que possède le système. Le système d'exploitation est responsable de décider quels programmes " mémoire "est dans la RAM réelle. Il a besoin d'un endroit pour garder les choses pendant qu'elles sont" dehors ". C'est ce qu'on appelle" l'espace d'échange ", car le système d'exploitation échange et entre les choses selon les besoins. Lorsque cette activité d'échange se produit telle que it est le principal consommateur de temps CPU, alors vous vous débarrassez efficacement. Vous l'empêchez en exécutant moins de programmes, en écrivant des programmes qui utilisent plus efficacement la mémoire, en ajoutant RAM = au système, ou peut-être même en augmentant la taille du swap.

Une erreur de page se produit lorsque l'accès à la mémoire demandé (à partir de l'espace d'adressage virtuel) ne correspond pas à quelque chose qui est en RAM. Une page doit ensuite être envoyée à partir de RAM à échanger, afin que la nouvelle page demandée puisse être transférée de l'échange à RAM. Comme vous pouvez l'imaginer, 2 E/S disque pour un RAM a tendance à être assez médiocre.

36
aet

Thrashing C'est un état dans lequel notre CPU effectue moins de travail "productif" et "échange" plus. Le processeur est occupé à échanger des pages, à tel point qu'il ne peut pas répondre au programme utilisateur autant que nécessaire. Pourquoi cela se produit Dans notre système, le Thrashing se produit quand il y a trop de pages dans notre mémoire, et chaque page fait référence à une autre page. La mémoire réelle réduit sa capacité à contenir toutes les pages, elle utilise donc la "mémoire virtuelle". Lorsque chaque page en cours d'exécution demande cette page qui n'est pas actuellement dans la mémoire réelle (RAM), elle place certaines pages sur la mémoire virtuelle et ajuste la page requise sur la RAM. Si le processeur est tellement occupé à effectuer cette tâche, le thrashing se produit.

11
Sehrish Akram

Je sais que cette question a été posée il y a longtemps, mais je voulais juste partager des informations avec d'autres.

Le terme thrashing est en fait lié à la mémoire virtuelle, qu'un système d'exploitation utilise afin de fournir une quantité supplémentaire de mémoire ou d'espace pour les processus. Quelle dose cela signifie réellement par le terme thrashing, c'est que, lorsque le processus est prêt à être chargé dans la mémoire, seules quelques ou quelques pages (parties) du processus sont chargées dans la mémoire physique réelle, et le reste est dans l'échange -espace (la mémoire virtuelle ou le disque).

Maintenant, si la page que le processus doit exécuter, n'est pas chargée dans la mémoire, elle génère un défaut de page et demande au système d'exploitation de remplacer la page. Ici, le processus reprend son exécution.

Parfois, la page remplacée par le système d'exploitation est à nouveau requise par le processus, par conséquent, il demande à nouveau au système d'exploitation de la charger dans la mémoire, en remplaçant une autre page, etc. puisque le processus n'est pas en cours d'exécution, l'utilisation du processeur est donc de 0. Cependant, la lecture et l'écriture sur le disque sont au sommet.

Nos systèmes d'exploitation sont conçus de telle manière que lorsque l'utilisation du processeur diminue, il lance un autre processus dans la mémoire. Le prochain processus doit attendre maintenant car le premier processus est occupé. Encore une fois, puisque le CPU n'est pas utilisé ou qu'il est égal à 0 (dans notre exemple), le système d'exploitation lance un autre processus, et la même chose se produit.

Par conséquent, l'utilisation du processeur diminue à un niveau minimum extrême, tandis que les processus sont occupés à lire et à écrire (permutation des pages). C'est ce qu'on appelle la raclée!

7
user4435781

Les adresses logiques sont générées par le CPU qui ne sont en fait pas un emplacement mémoire réel mais un processus pense qu'il s'agit de l'emplacement mémoire réel. Un processus complet est divisé en différentes parties qui sont stockées dans des pages dans la mémoire logique mais seules les sous-parties ou seulement certaines pages se voient allouer de la mémoire réelle pour l'exécution qui est requise à ce moment, tandis que d'autres pages résident dans la mémoire logique et ne sont pas allouées une adresse physique. Maintenant, si d'autres pages doivent être chargées et qu'il n'y a pas assez de cadre pour l'allouer, une interruption se produit, ce qui provoque une erreur de page et un algorithme de remplacement est nécessaire pour supprimer certaines pages des cadres et charger la page actuelle requise.

Supposons maintenant qu'il n'y ait pas assez de cadres pour répondre aux exigences de toutes les pages à charger. Ensuite, le cadre supprimé demandera à nouveau d'être chargé et une nouvelle erreur de page se produira. Cela va en boucle. Pendant ce temps, comme le processus n'est pas en mesure de s'exécuter, l'utilisation du processeur sera faible et le répartiteur chargera davantage de processus dans le processeur, ce qui dégrade encore plus le scénario.

Ce processus est appelé thrashing. Le thrashing se produit généralement lorsque suffisamment d'images ne sont pas allouées à un processus que nécessaire.

Façons de prévenir la raclée:

  1. ordonner à l'ordonnanceur à mi-parcours d'échanger une partie du processus pour récupérer de la raclée
  2. ordonner au répartiteur de ne pas charger plus de processus après un seuil
3
Sneh Shikhar

Le système d'exploitation utilise le concept de mémoire virtuelle pour fournir de la mémoire à traiter lorsque la mémoire principale est pleine et n'a pas d'espace pour fournir de l'espace aux processus entrants. Ce mécanisme d'utilisation de virtual memory Comme mémoire de remplacement est abstrait et l'utilisateur ne sait pas ce qui se passe derrière. Il apparaît à l'utilisateur que le nouveau processus qu'il/elle a exécuté vient d'avoir de l'espace dans le main memory.

Ainsi, afin d'accueillir les processus entrants dans la mémoire principale, les processus inactifs résidant dans la mémoire principale doivent être déplacés vers la mémoire virtuelle. Ce mouvement de la mémoire principale vers la mémoire virtuelle a lieu lorsque page fault Se produit.

Arrive maintenant à la raclée.

Si operating system Utilise un tel page replacement algo Dans lequel il y a une forte probabilité que page fault Se produise, alors une grande partie du cycle du processeur sera gaspillée en échangeant des pages entre main memory Et virtual memory. Cela supprime les performances du processeur. Ce processus de dégradation des performances du processeur en raison de l'apparition d'un grand nombre de défauts de page est appelé Thrashing.

0
a874

Dans un système de mémoire virtuelle, le thrashing est l'échange excessif de pages de données entre la mémoire et le disque dur, ce qui fait que l'application répond plus lentement. La fonction de mémoire virtuelle suit l'utilisation des pages et conserve autant que possible les pages fréquemment utilisées en mémoire.

0
ansar khan

Le thrashing est un état dans lequel notre CPU effectue moins de travail "productif" et "échange" davantage. Le processeur est occupé à échanger des pages, à tel point qu'il ne peut pas répondre au programme utilisateur autant que nécessaire. Pourquoi cela se produit: Dans notre système, Thrashing se produit lorsqu'il y a trop de pages dans notre mémoire et que chaque page fait référence à une autre page. La mémoire réelle réduit sa capacité à contenir toutes les pages, elle utilise donc la "mémoire virtuelle". Lorsque chaque page en cours d'exécution demande cette page qui n'est pas actuellement dans la mémoire réelle (RAM), elle place certaines pages sur la mémoire virtuelle et ajuste la page requise sur la RAM. Si le processeur est tellement occupé à effectuer cette tâche, le thrashing se produit. Pour résoudre le thrashing, vous pouvez faire l'une des suggestions ci-dessous: * Augmentez la quantité de RAM dans l'ordinateur. * Diminuez le nombre de programmes en cours d'exécution sur l'ordinateur. * Ajustez la taille du swap fichier.

0
abi

L'attaque de mémoire est un problème qui survient lorsque la mémoire est allouée plus que la mémoire physique et qu'elle n'est pas disponible dans le système. Pour savoir ce qui se dérobe, vous devez d'abord être conscient du swapping et du défaut de page. Commençons donc par ces concepts: Erreur de page et échange: - Une erreur de page se produit lorsque l'accès à la mémoire demandé (depuis l'espace d'adressage virtuel) ne correspond pas à quelque chose qui est en RAM. Une page doit ensuite être envoyée à partir de RAM à échanger, afin que la nouvelle page demandée puisse être transférée de l’échange à la RAM. Cela entraîne 2 E/S de disque. Maintenant, vous savez peut-être que le disque I/Os sont très lents par rapport à l'accès à la mémoire.

Pour savoir ce qu'est le débordement de mémoire, veuillez vous référer au lien suivant:

http://www.firmcodes.com/memory-thrashing-in-operating-system/

0
Mohit Rohilla