logo

Hvad er Thrash?

I datalogi, thrash er den dårlige ydeevne af et virtuel hukommelse (eller personsøgning)-system, når de samme sider indlæses gentagne gange på grund af mangel på hovedhukommelse til at holde dem i hukommelsen. Afhængigt af konfigurationen og algoritmen kan den faktiske gennemstrømning af et system forringes med flere størrelsesordener.

I datalogi, tæsk opstår, når en computers virtuelle hukommelsesressourcer overforbruges, hvilket fører til en konstant tilstand af side- og sidefejl, hvilket hæmmer de fleste behandlinger på applikationsniveau. Det får computerens ydeevne til at forringes eller kollapse. Situationen kan fortsætte på ubestemt tid, indtil brugeren lukker nogle kørende applikationer, eller de aktive processer frigør yderligere virtuelle hukommelsesressourcer.

For at vide mere klart om thrashing skal vi først vide om sidefejl og swapping.

    Sidefejl:Vi ved, at hvert program er opdelt i nogle sider. En sidefejl opstår, når et program forsøger at få adgang til data eller kode i dets adresserum, men i øjeblikket ikke er placeret i systemets RAM.Bytte:Når der opstår en sidefejl, vil operativsystemet forsøge at hente den side fra den sekundære hukommelse og prøve at bytte den med en af ​​siderne i RAM. Denne proces kaldes bytte.

Tærskning er, når sidefejlen og ombytning sker meget hyppigt med en højere hastighed, og så skal styresystemet bruge mere tid på at bytte disse sider. Denne tilstand i operativsystemet er kendt som thrashing. På grund af tæsk vil CPU-udnyttelsen blive reduceret eller ubetydelig.

Hvad er Thrash

Grundkonceptet er, at hvis en proces tildeles for få frames, vil der være for mange og for hyppige sidefejl. Som et resultat ville der ikke blive udført noget værdifuldt arbejde af CPU'en, og CPU-udnyttelsen ville falde drastisk.

Den langsigtede planlægger ville så forsøge at forbedre CPU-udnyttelsen ved at indlæse nogle flere processer i hukommelsen og derved øge graden af ​​multiprogrammering. Desværre ville dette resultere i et yderligere fald i CPU-udnyttelsen, hvilket udløser en kædereaktion af højere sidefejl efterfulgt af en stigning i graden af ​​multiprogrammering, kaldet thrashing.

Algoritmer under thrashing

Hver gang thrashing starter, forsøger operativsystemet at anvende enten den globale sideerstatningsalgoritme eller den lokale sideerstatningsalgoritme.

1. Global sideerstatning

Da global sideerstatning kan bringe en hvilken som helst side, forsøger den at bringe flere sider, hver gang der er fundet thrashing. Men det, der rent faktisk vil ske, er, at ingen proces får nok rammer, og som et resultat vil tæskningen stige mere og mere. Derfor er den globale sideerstatningsalgoritme ikke egnet, når der sker thrashing.

2. Lokal sideerstatning

I modsætning til den globale sideerstatningsalgoritme, vil lokal sideerstatning vælge sider, som kun tilhører den proces. Så der er en chance for at mindske tæsk. Men det er bevist, at der er mange ulemper, hvis vi bruger lokal sideerstatning. Derfor er lokal sideerstatning kun et alternativ til global sideerstatning i et thrashing-scenarie.

Årsager til tæsk

Programmer eller arbejdsbelastninger kan forårsage thrashing, og det resulterer i alvorlige ydeevneproblemer, såsom:

  • Hvis CPU-udnyttelsen er for lav, øger vi graden af ​​multiprogrammering ved at introducere et nyt system. Der bruges en global sideerstatningsalgoritme. CPU-planlæggeren ser den faldende CPU-udnyttelse og øger graden af ​​multiprogrammering.
  • CPU-udnyttelsen plottes mod graden af ​​multiprogrammering.
  • Efterhånden som graden af ​​multiprogrammering øges, øges CPU-udnyttelsen også.
  • Hvis graden af ​​multiprogrammering øges yderligere, sætter thrashing ind, og CPU-udnyttelsen falder kraftigt.
  • Så på dette tidspunkt, for at øge CPU-udnyttelsen og for at stoppe tæsk, må vi reducere graden af ​​multiprogrammering.

Sådan fjerner du tæsk

Thrashing har nogle negative indvirkninger på harddiskens sundhed og systemets ydeevne. Derfor er det nødvendigt at tage nogle handlinger for at undgå det. For at løse problemet med thrashing er her følgende metoder, såsom:

    Juster størrelsen af ​​swap-filen:Hvis system swap-filen ikke er konfigureret korrekt, kan disk-thrassing også ske for dig.Forøg mængden af ​​RAM:Da utilstrækkelig hukommelse kan forårsage disk-thashing, er en løsning at tilføje mere RAM til den bærbare computer. Med mere hukommelse kan din computer nemt håndtere opgaver og behøver ikke at arbejde for meget. Generelt er det den bedste langsigtede løsning.Reducer antallet af programmer, der kører på computeren:Hvis der kører for mange programmer i baggrunden, vil din systemressource tære meget. Og den resterende systemressource er langsom, hvilket kan resultere i tæsk. Så mens de lukker, vil nogle applikationer frigive nogle ressourcer, så du til en vis grad kan undgå tæsk.Udskift programmer:Erstat de programmer, der er tung hukommelse optaget med ækvivalenter, der bruger mindre hukommelse.

Teknikker til at forhindre tæsk

Den lokale sideerstatning er bedre end den globale sideerstatning, men den lokale sideerstatning har mange ulemper, så det er nogle gange ikke nyttigt. Derfor er nedenfor nogle andre teknikker, der bruges til at håndtere thrashing:

1. Lokalitetsmodel

En lokalitet er et sæt sider, der aktivt bruges sammen. Lokalitetsmodellen siger, at når en proces udføres, bevæger den sig fra en lokalitet til en anden. Et program er således generelt sammensat af flere forskellige lokaliteter, som kan overlappe hinanden.

For eksempel, når en funktion kaldes, definerer den en ny lokalitet, hvor hukommelsesreferencer foretages til funktionskaldsinstruktionerne, lokale og globale variabler osv. På samme måde, når funktionen afsluttes, forlader processen denne lokalitet.

2. Arbejdssæt-model

Denne model er baseret på det ovenfor nævnte koncept for lokalitetsmodellen.

Det grundlæggende princip siger, at hvis vi allokerer nok rammer til en proces til at rumme dens nuværende lokalitet, vil den kun fejle, når den flytter til en ny lokalitet. Men hvis de tildelte rammer er mindre end størrelsen af ​​den aktuelle lokalitet, er processen bundet til at tæske.

Ifølge denne model, baseret på parameter A, er arbejdssættet defineret som det sæt af sider i de seneste 'A'-sidereferencer. Derfor vil alle de aktivt brugte sider altid ende med at blive en del af arbejdssættet.

design mønstre java

Nøjagtigheden af ​​arbejdssættet afhænger af værdien af ​​parameter A. Hvis A er for stor, kan arbejdssæt overlappe hinanden. På den anden side, for mindre værdier af A, er lokaliteten muligvis ikke dækket helt.

Hvis D er den samlede efterspørgsel efter rammer og WSSjeger arbejdssætstørrelsen for proces i,

D = ⅀ WSSjeg

Nu, hvis 'm' er antallet af tilgængelige frames i hukommelsen, er der to muligheder:

  • D>m, dvs. den samlede efterspørgsel overstiger antallet af frames, så vil thrashing forekomme, da nogle processer ikke ville få nok frames.
  • D<=m, then there would be no thrashing.< li>

Hvis der er nok ekstra frames, så kan nogle flere processer indlæses i hukommelsen. På den anden side, hvis summeringen af ​​arbejdssætstørrelser overstiger rammernes tilgængelighed, skal nogle af processerne suspenderes (skiftes ud af hukommelsen).

Denne teknik forhindrer tæsk og sikrer den højest mulige grad af multiprogrammering. Således optimerer det CPU-udnyttelsen.

3. Sidefejlsfrekvens

En mere direkte tilgang til at håndtere thrashing er den, der bruger Page-Fault Frequency-konceptet.

Hvad er Thrash

Problemet forbundet med thrashing er den høje sidefejlfrekvens, og derfor er konceptet her at kontrollere sidefejlfrekvensen.

Hvis sidefejlfrekvensen er for høj, indikerer det, at processen har tildelt for få frames. Tværtimod indikerer en lav sidefejlrate, at processen har for mange frames.

Øvre og nedre grænser kan etableres på den ønskede sidefejlfrekvens, som vist i diagrammet.

Hvis sidefejlfrekvensen falder under den nedre grænse, kan frames fjernes fra processen. På samme måde, hvis antallet af sidefejl overstiger den øvre grænse, kan flere frames allokeres til processen.

Med andre ord bør den grafiske tilstand af systemet holdes begrænset til det rektangulære område dannet i det givne diagram.

Hvis sidefejlfrekvensen er høj uden frie rammer, kan nogle af processerne suspenderes og allokeres til dem kan omallokeres til andre processer. De suspenderede processer kan genstarte senere.