logo

Hva er Thrash?

I informatikk, søppel er den dårlige ytelsen til et virtuelt minne (eller personsøkingssystem) når de samme sidene lastes gjentatte ganger på grunn av mangel på hovedminne for å holde dem i minnet. Avhengig av konfigurasjonen og algoritmen, kan den faktiske gjennomstrømningen til et system degraderes med flere størrelsesordener.

I informatikk, dunking oppstår når en datamaskins virtuelle minneressurser er overbrukt, noe som fører til en konstant tilstand av personsøking og sidefeil, som hindrer de fleste behandlinger på applikasjonsnivå. Det fører til at ytelsen til datamaskinen forringes eller kollapser. Situasjonen kan fortsette på ubestemt tid til brukeren lukker noen kjørende applikasjoner eller de aktive prosessene frigjør ekstra virtuelle minneressurser.

For å vite mer tydelig om thrashing, må vi først vite om sidefeil og bytte.

    Sidefeil:Vi vet at hvert program er delt inn i noen sider. En sidefeil oppstår når et program forsøker å få tilgang til data eller kode i adresseområdet, men for øyeblikket ikke er plassert i system-RAM.Bytting:Hver gang det oppstår en sidefeil, vil operativsystemet prøve å hente den siden fra sekundærminnet og prøve å bytte den med en av sidene i RAM. Denne prosessen kalles bytte.

Tresking er når sidefeilen og byttet skjer svært ofte med en høyere hastighet, og da må operativsystemet bruke mer tid på å bytte disse sidene. Denne tilstanden i operativsystemet er kjent som thrashing. På grunn av thrashing vil CPU-bruken bli redusert eller ubetydelig.

Hva er Thrash

Det grunnleggende konseptet som er involvert er at hvis en prosess tildeles for få rammer, vil det være for mange og for hyppige sidefeil. Som et resultat ville ikke noe verdifullt arbeid gjøres av CPU, og CPU-utnyttelsen ville falle drastisk.

Den langsiktige planleggeren ville da prøve å forbedre CPU-utnyttelsen ved å laste inn noen flere prosesser i minnet, og dermed øke graden av multiprogrammering. Dessverre vil dette resultere i en ytterligere reduksjon i CPU-utnyttelsen, og utløse en lenket reaksjon av høyere sidefeil etterfulgt av en økning i graden av multiprogrammering, kalt thrashing.

Algoritmer under thrashing

Hver gang thrashing starter, prøver operativsystemet å bruke enten den globale sideerstatningsalgoritmen eller den lokale sideerstatningsalgoritmen.

1. Global sideerstatning

Siden global sideerstatning kan bringe hvilken som helst side, prøver den å bringe flere sider hver gang det blir funnet thrashing. Men det som faktisk vil skje er at ingen prosess får nok rammer, og som et resultat av dette vil tømmingen øke mer og mer. Derfor er den globale sideerstatningsalgoritmen ikke egnet når thrashing skjer.

2. Lokal sideerstatning

I motsetning til den globale sideerstatningsalgoritmen, vil lokal sideerstatning velge sider som bare tilhører den prosessen. Så det er en sjanse for å redusere støyten. Men det er bevist at det er mange ulemper hvis vi bruker lokal sideerstatning. Derfor er lokal sideerstatning bare et alternativ til global sideerstatning i et thrashing-scenario.

Årsaker til masing

Programmer eller arbeidsbelastninger kan forårsake thrashing, og det resulterer i alvorlige ytelsesproblemer, for eksempel:

  • Hvis CPU-utnyttelsen er for lav, øker vi graden av multiprogrammering ved å introdusere et nytt system. En global sideerstatningsalgoritme brukes. CPU-planleggeren ser den avtagende CPU-utnyttelsen og øker graden av multiprogrammering.
  • CPU-utnyttelsen plottes opp mot graden av multiprogrammering.
  • Ettersom graden av multiprogrammering øker, øker også CPU-utnyttelsen.
  • Hvis graden av multiprogrammering økes ytterligere, setter thrashing inn, og CPU-utnyttelsen synker kraftig.
  • Så, på dette tidspunktet, for å øke CPU-utnyttelsen og for å stoppe thrashing, må vi redusere graden av multiprogrammering.

Hvordan eliminere thrashing

Thrashing har noen negative innvirkninger på harddiskens helse og systemytelse. Derfor er det nødvendig å ta noen tiltak for å unngå det. For å løse problemet med thrashing, her er følgende metoder, for eksempel:

    Juster størrelsen på byttefilen:Hvis systembyttefilen ikke er riktig konfigurert, kan disktrasking også skje med deg.Øk mengden RAM:Siden utilstrekkelig minne kan føre til diskusjon, er en løsning å legge til mer RAM til den bærbare datamaskinen. Med mer minne kan datamaskinen enkelt håndtere oppgaver og trenger ikke å jobbe for mye. Generelt er det den beste langsiktige løsningen.Reduser antall applikasjoner som kjører på datamaskinen:Hvis det er for mange applikasjoner som kjører i bakgrunnen, vil systemressursen din bruke mye. Og den gjenværende systemressursen er treg, noe som kan resultere i knekk. Så mens du lukker, vil noen applikasjoner frigjøre noen ressurser slik at du til en viss grad kan unngå thrashing.Bytt ut programmer:Erstatt de programmene som har tungt minne med tilsvarende som bruker mindre minne.

Teknikker for å forhindre masing

Lokal sideerstatning er bedre enn global sideerstatning, men lokal sideerstatning har mange ulemper, så det er noen ganger ikke nyttig. Derfor nedenfor er noen andre teknikker som brukes til å håndtere thrashing:

1. Lokalitetsmodell

En lokalitet er et sett med sider som brukes aktivt sammen. Lokalitetsmodellen sier at når en prosess utføres, beveger den seg fra en lokalitet til en annen. Et program er derfor generelt sett sammensatt av flere ulike lokaliteter som kan overlappe hverandre.

For eksempel, når en funksjon kalles, definerer den en ny lokalitet der minnereferanser gjøres til funksjonsanropsinstruksjonene, lokale og globale variabler osv. På samme måte, når funksjonen avsluttes, forlater prosessen denne lokaliteten.

2. Arbeidssettmodell

Denne modellen er basert på det ovennevnte konseptet til lokalitetsmodellen.

Grunnprinsippet sier at hvis vi allokerer nok rammer til en prosess for å imøtekomme dens nåværende lokalitet, vil den bare feile når den flytter til en ny lokalitet. Men hvis de tildelte rammene er mindre enn størrelsen på den nåværende lokaliteten, er prosessen bundet til thrash.

I henhold til denne modellen, basert på parameter A, er arbeidssettet definert som settet med sider i de siste 'A'-sidereferansene. Derfor vil alle de aktivt brukte sidene alltid ende opp som en del av arbeidssettet.

design mønstre java

Nøyaktigheten til arbeidssettet er avhengig av verdien til parameter A. Hvis A er for stor, kan arbeidssettene overlappe hverandre. På den annen side, for mindre verdier av A, kan det hende at lokaliteten ikke dekkes helt.

Hvis D er den totale etterspørselen etter rammer og WSSJeger arbeidssettstørrelsen for prosess i,

D = ⅀ WSSJeg

Nå, hvis 'm' er antall tilgjengelige rammer i minnet, er det to muligheter:

  • D>m, det vil si at den totale etterspørselen overstiger antall rammer, så vil thrashing forekomme ettersom noen prosesser ikke får nok rammer.
  • D<=m, then there would be no thrashing.< li>

Hvis det er nok ekstra rammer, kan noen flere prosesser lastes inn i minnet. På den annen side, hvis summeringen av arbeidssettstørrelser overstiger rammenes tilgjengelighet, må noen av prosessene suspenderes (byttes ut av minnet).

Denne teknikken forhindrer tømming samtidig som den sikrer høyest mulig grad av multiprogrammering. Dermed optimerer den CPU-utnyttelsen.

3. Sidefeilfrekvens

En mer direkte tilnærming til å håndtere thrashing er den som bruker konseptet Page-Fault Frequency.

Hva er Thrash

Problemet forbundet med thrashing er den høye sidefeilfrekvensen, og derfor er konseptet her å kontrollere sidefeilfrekvensen.

Hvis sidefeilfrekvensen er for høy, indikerer det at prosessen har for få rammer tildelt. Tvert imot, en lav sidefeilrate indikerer at prosessen har for mange rammer.

Øvre og nedre grenser kan settes på ønsket sidefeilrate, som vist i diagrammet.

Hvis sidefeilfrekvensen faller under den nedre grensen, kan rammer fjernes fra prosessen. Tilsvarende, hvis sidefeilfrekvensen overstiger den øvre grensen, kan flere rammer allokeres til prosessen.

Med andre ord bør den grafiske tilstanden til systemet holdes begrenset til det rektangulære området dannet i det gitte diagrammet.

Hvis sidefeilfrekvensen er høy uten ledige rammer, kan noen av prosessene suspenderes og allokeres til dem kan omallokeres til andre prosesser. De suspenderte prosessene kan starte på nytt senere.