logo

Què és Thrash?

En informàtica, golejar és el mal rendiment d'un sistema de memòria virtual (o paginació) quan les mateixes pàgines es carreguen repetidament a causa de la manca de memòria principal per mantenir-les a la memòria. Depenent de la configuració i l'algorisme, el rendiment real d'un sistema pot degradar-se en diversos ordres de magnitud.

En informàtica, golejada es produeix quan els recursos de memòria virtual d'un ordinador s'utilitzen en excés, donant lloc a un estat constant de paginació i errors de pàgina, inhibint la majoria del processament a nivell d'aplicació. Fa que el rendiment de l'ordinador es degradi o col·lapse. La situació pot continuar indefinidament fins que l'usuari tanqui algunes aplicacions en execució o els processos actius alliberin recursos de memòria virtual addicionals.

Per saber amb més claredat sobre el thrashing, primer, hem de conèixer els errors de pàgina i l'intercanvi.

    Error de pàgina:Sabem que cada programa està dividit en algunes pàgines. Es produeix un error de pàgina quan un programa intenta accedir a dades o codi al seu espai d'adreces, però actualment no es troba a la memòria RAM del sistema.Canvi:Sempre que es produeixi un error de pàgina, el sistema operatiu intentarà recuperar aquesta pàgina de la memòria secundària i intentarà intercanviar-la amb una de les pàgines de la memòria RAM. Aquest procés s'anomena intercanvi.

Golejada és quan l'error i l'intercanvi de pàgines es produeixen amb molta freqüència a un ritme més elevat, i aleshores el sistema operatiu ha de passar més temps intercanviant aquestes pàgines. Aquest estat del sistema operatiu es coneix com a thrashing. A causa de la golejada, la utilització de la CPU es reduirà o serà insignificant.

Què és Thrash

El concepte bàsic implicat és que si un procés s'assigna massa pocs fotogrames, hi haurà massa errors de pàgina i massa freqüents. Com a resultat, la CPU no faria cap treball valuós i la utilització de la CPU cauria dràsticament.

Aleshores, el planificador a llarg termini intentarà millorar la utilització de la CPU carregant alguns processos més a la memòria, augmentant així el grau de multiprogramació. Malauradament, això donaria lloc a una disminució més en la utilització de la CPU, provocant una reacció encadenada d'errors de pàgina més alts seguida d'un augment del grau de multiprogramació, anomenat thrashing.

Algorismes durant el Thrashing

Sempre que s'inicia la batuda, el sistema operatiu intenta aplicar l'algoritme de substitució de pàgines global o l'algoritme de substitució de pàgines locals.

1. Substitució global de pàgines

Atès que la substitució de pàgines globals pot portar qualsevol pàgina, intenta portar més pàgines cada vegada que es trobi una batuda. Però el que passarà en realitat és que cap procés obté prou fotogrames i, com a resultat, la golejada augmentarà cada cop més. Per tant, l'algoritme de substitució global de pàgines no és adequat quan es produeix una batuda.

2. Substitució de la pàgina local

A diferència de l'algorisme de substitució de pàgines global, la substitució de pàgines local seleccionarà pàgines que només pertanyin a aquest procés. Per tant, hi ha la possibilitat de reduir la golejada. Però està demostrat que hi ha molts inconvenients si fem servir la substitució de pàgines locals. Per tant, la substitució de pàgines locals és només una alternativa a la substitució de pàgines globals en un escenari de batuda.

Causes de la golejada

Els programes o les càrregues de treball poden causar batejades i es tradueixen en problemes greus de rendiment, com ara:

  • Si la utilització de la CPU és massa baixa, augmentem el grau de multiprogramació introduint un nou sistema. S'utilitza un algorisme global de substitució de pàgines. El planificador de la CPU veu la disminució de la utilització de la CPU i augmenta el grau de multiprogramació.
  • La utilització de la CPU es representa en funció del grau de multiprogramació.
  • A mesura que augmenta el grau de multiprogramació, també augmenta la utilització de la CPU.
  • Si s'incrementa encara més el grau de multiprogramació, s'inicia la batuda i la utilització de la CPU disminueix bruscament.
  • Per tant, en aquest punt, per augmentar la utilització de la CPU i per aturar el thrashing, hem de disminuir el grau de multiprogramació.

Com eliminar la golejada

La golejada té alguns impactes negatius en la salut del disc dur i el rendiment del sistema. Per tant, cal prendre algunes accions per evitar-ho. Per resoldre el problema del thrashing, aquí teniu els mètodes següents, com ara:

    Ajusteu la mida del fitxer d'intercanvi:Si el fitxer d'intercanvi del sistema no està configurat correctament, també us pot passar un cop de disc.Augmenta la quantitat de RAM:Com que la memòria insuficient pot provocar que el disc s'enfonsi, una solució és afegir més memòria RAM al portàtil. Amb més memòria, l'ordinador pot gestionar tasques fàcilment i no ha de treballar excessivament. En general, és la millor solució a llarg termini.Disminueix el nombre d'aplicacions que s'executen a l'ordinador:Si hi ha massa aplicacions en execució en segon pla, el vostre recurs del sistema consumirà molt. I el recurs del sistema restant és lent, cosa que pot provocar una derrota. Per tant, mentre es tanquen, algunes aplicacions alliberaran alguns recursos perquè pugueu evitar en certa mesura la derrota.Substituir programes:Substituïu aquells programes que tenen molta memòria ocupada per equivalents que utilitzen menys memòria.

Tècniques per prevenir la golejada

La substitució de la pàgina local és millor que la substitució de la pàgina global, però la substitució de la pàgina local té molts desavantatges, de manera que de vegades no és útil. Per tant, a continuació es mostren algunes altres tècniques que s'utilitzen per gestionar el thrashing:

1. Model de localitat

Una localitat és un conjunt de pàgines que s'utilitzen conjuntament de manera activa. El model de localitat estableix que a mesura que s'executa un procés, es mou d'una localitat a una altra. Per tant, un programa generalment es compon de diverses localitats diferents que es poden solapar.

Per exemple, quan es crida una funció, defineix una nova localitat on es fan referències de memòria a les instruccions de crida a la funció, variables locals i globals, etc. De la mateixa manera, quan es surt de la funció, el procés abandona aquesta localitat.

2. Model de Working-Set

Aquest model es basa en el concepte de Model de Localitat esmentat anteriorment.

El principi bàsic estableix que si assignem prou fotogrames a un procés per adaptar-se a la seva localitat actual, només fallarà quan es traslladi a alguna localitat nova. Però si els fotogrames assignats són inferiors a la mida de la localitat actual, el procés està obligat a superar-se.

Segons aquest model, basat en el paràmetre A, el conjunt de treball es defineix com el conjunt de pàgines de les referències de pàgines 'A' més recents. Per tant, totes les pàgines utilitzades activament sempre acabarien formant part del conjunt de treball.

exemple de classe java

La precisió del conjunt de treball depèn del valor del paràmetre A. Si A és massa gran, els conjunts de treball es poden solapar. D'altra banda, per a valors més petits de A, és possible que la localitat no estigui coberta completament.

Si D és la demanda total de trames i WSSiés la mida del conjunt de treball per al procés i,

D = ⅀ WSSi

Ara, si 'm' és el nombre de fotogrames disponibles a la memòria, hi ha dues possibilitats:

  • D>m, és a dir, la demanda total supera el nombre de fotogrames, aleshores es produirà un thrashing ja que alguns processos no obtindrien prou fotogrames.
  • D<=m, then there would be no thrashing.< li>

Si hi ha prou fotogrames addicionals, es poden carregar alguns processos més a la memòria. D'altra banda, si la suma de les mides del conjunt de treball supera la disponibilitat de trames, alguns dels processos s'han de suspendre (intercanviar fora de la memòria).

Aquesta tècnica evita la golejada i garanteix el màxim grau de multiprogramació possible. Per tant, optimitza la utilització de la CPU.

3. Freqüència d'error de pàgina

Un enfocament més directe per gestionar el thrashing és el que utilitza el concepte de freqüència d'error de pàgina.

Què és Thrash

El problema associat amb el thrashing és l'alt percentatge d'errors de pàgina i, per tant, el concepte aquí és controlar el percentatge d'errors de pàgina.

Si la taxa d'error de pàgina és massa alta, indica que el procés té massa pocs fotogrames assignats. Al contrari, una taxa d'error de pàgina baixa indica que el procés té massa fotogrames.

Es poden establir límits superior i inferior a la taxa d'error de pàgina desitjada, tal com es mostra al diagrama.

Si el percentatge d'errors de pàgina cau per sota del límit inferior, es poden eliminar marcs del procés. De la mateixa manera, si la taxa d'errors de pàgina supera el límit superior, es poden assignar més fotogrames al procés.

En altres paraules, l'estat gràfic del sistema s'ha de mantenir limitat a la regió rectangular formada en el diagrama donat.

Si el percentatge d'errors de la pàgina és alt sense marcs lliures, alguns dels processos es poden suspendre i assignar-los es poden reassignar a altres processos. Els processos suspesos es poden reiniciar més tard.