Inom datavetenskap, tröska är den dåliga prestandan för ett virtuellt minne (eller personsökningssystem) när samma sidor laddas upprepade gånger på grund av brist på huvudminne för att behålla dem i minnet. Beroende på konfigurationen och algoritmen kan den faktiska genomströmningen av ett system försämras med flera storleksordningar.
Inom datavetenskap, stryk inträffar när en dators virtuella minnesresurser överanvänds, vilket leder till ett konstant tillstånd av personsökning och sidfel, vilket hämmar de flesta applikationsnivåbehandlingar. Det gör att datorns prestanda försämras eller kollapsar. Situationen kan fortsätta på obestämd tid tills användaren stänger några applikationer som körs eller de aktiva processerna frigör ytterligare virtuella minnesresurser.
För att veta mer tydligt om thrashing måste vi först veta om sidfel och byte.
Stryk är när sidfelet och bytet sker mycket ofta i en högre takt, och då måste operativsystemet lägga mer tid på att byta dessa sidor. Detta tillstånd i operativsystemet är känt som thrashing. På grund av trassling kommer CPU-användningen att minska eller försumbar.
Grundkonceptet är att om en process tilldelas för få ramar, kommer det att bli för många och för frekventa sidfel. Som ett resultat skulle inget värdefullt arbete utföras av processorn, och processoranvändningen skulle minska drastiskt.
Den långsiktiga schemaläggaren skulle sedan försöka förbättra CPU-användningen genom att ladda några fler processer i minnet, och därigenom öka graden av multiprogrammering. Tyvärr skulle detta resultera i en ytterligare minskning av CPU-användningen, vilket utlöser en kedjad reaktion av högre sidfel följt av en ökning av graden av multiprogrammering, kallad thrashing.
Algoritmer under thrashing
Närhelst thrashing startar, försöker operativsystemet använda antingen den globala sidersättningsalgoritmen eller den lokala sidbytesalgoritmen.
1. Globalt sidbyte
Eftersom global sidbyte kan ge vilken sida som helst, försöker den få fler sidor närhelst thrashing hittas. Men vad som faktiskt kommer att hända är att ingen process får tillräckligt med ramar, och som ett resultat kommer tjasningen att öka mer och mer. Därför är den globala algoritmen för sidbyte inte lämplig när tjasning sker.
2. Lokalt sidbyte
Till skillnad från den globala sidersättningsalgoritmen kommer lokal sidbyte att välja sidor som bara tillhör den processen. Så det finns en chans att minska trasslingen. Men det är bevisat att det finns många nackdelar om vi använder lokal sidbyte. Därför är lokal sidbyte bara ett alternativ till global sidbyte i ett skrämmande scenario.
Orsaker till trassling
Program eller arbetsbelastningar kan orsaka thrashing, och det resulterar i allvarliga prestandaproblem, som:
- Om CPU-utnyttjandet är för lågt ökar vi graden av multiprogrammering genom att introducera ett nytt system. En global sidersättningsalgoritm används. CPU-schemaläggaren ser det minskande CPU-utnyttjandet och ökar graden av multiprogrammering.
- CPU-användningen plottas mot graden av multiprogrammering.
- När graden av multiprogrammering ökar ökar också CPU-användningen.
- Om graden av multiprogrammering ökas ytterligare, sätter thrashing in och CPU-användningen sjunker kraftigt.
- Så, vid det här laget, för att öka CPU-användningen och för att sluta trassla, måste vi minska graden av multiprogrammering.
Hur man eliminerar thrashing
Thrashing har vissa negativa effekter på hårddiskens hälsa och systemets prestanda. Därför är det nödvändigt att vidta några åtgärder för att undvika det. För att lösa problemet med thrashing, här är följande metoder, till exempel:
Tekniker för att förhindra trassling
Ersättningen för lokala sidor är bättre än ersättningen för globala sidor, men ersättningen av lokala sidor har många nackdelar, så det är ibland inte till hjälp. Därför nedan är några andra tekniker som används för att hantera thrashing:
1. Lokalitetsmodell
En ort är en uppsättning sidor som aktivt används tillsammans. Lokalitetsmodellen säger att när en process körs flyttas den från en ort till en annan. Ett program är alltså i allmänhet sammansatt av flera olika orter som kan överlappa varandra.
Till exempel, när en funktion anropas, definierar den en ny lokalitet där minnesreferenser görs till funktionsanropsinstruktionerna, lokala och globala variabler, etc. På liknande sätt, när funktionen avslutas, lämnar processen denna lokalitet.
2. Arbetsuppsättningsmodell
Denna modell bygger på det ovan angivna konceptet för lokalitetsmodellen.
Grundprincipen säger att om vi allokerar tillräckligt många ramar till en process för att tillgodose dess nuvarande lokalitet, kommer den bara att göra fel när den flyttar till någon ny ort. Men om de tilldelade ramarna är mindre än storleken på den aktuella lokaliteten, är processen bunden till thrash.
Enligt denna modell, baserat på parameter A, definieras arbetsuppsättningen som uppsättningen sidor i de senaste 'A' sidreferenserna. Därför skulle alla aktivt använda sidor alltid bli en del av arbetsuppsättningen.
parallell bearbetning
Noggrannheten hos arbetsuppsättningen är beroende av värdet på parameter A. Om A är för stor kan arbetsuppsättningarna överlappa varandra. Å andra sidan, för mindre värden på A, kanske orten inte täcks helt.
Om D är den totala efterfrågan på ramar och WSSiär arbetsuppsättningens storlek för process i,
D = ⅀ WSSi
Nu, om 'm' är antalet tillgängliga bildrutor i minnet, finns det två möjligheter:
- D>m, d.v.s. den totala efterfrågan överstiger antalet bildrutor, då kommer thrashing att inträffa eftersom vissa processer inte skulle få tillräckligt med ramar.
- D<=m, then there would be no thrashing.< li> =m,>
Om det finns tillräckligt med extra ramar kan ytterligare några processer laddas in i minnet. Å andra sidan, om summeringen av arbetsuppsättningsstorlekar överstiger ramarnas tillgänglighet, måste några av processerna avbrytas (bytas ut ur minnet).
Denna teknik förhindrar trassling samtidigt som den säkerställer högsta möjliga grad av multiprogrammering. Således optimerar det CPU-användning.
3. Sidfelsfrekvens
En mer direkt metod för att hantera thrashing är den som använder konceptet Page-Fault Frequency.
Problemet i samband med thrashing är den höga sidfelfrekvensen, och därför är konceptet här att kontrollera sidfelsfrekvensen.
Om sidfelsfrekvensen är för hög indikerar det att processen har för få ramar tilldelade. Tvärtom, en låg sidfelfrekvens indikerar att processen har för många bildrutor.
Övre och undre gränser kan fastställas för önskad sidfelfrekvens, som visas i diagrammet.
Om sidfelsfrekvensen faller under den nedre gränsen kan ramar tas bort från processen. På liknande sätt, om sidfelsfrekvensen överstiger den övre gränsen, kan fler ramar allokeras till processen.
Med andra ord bör systemets grafiska tillstånd hållas begränsat till det rektangulära område som bildas i det givna diagrammet.
Om sidfelfrekvensen är hög utan fria ramar, kan några av processerna avbrytas och allokeras till dem kan omallokeras till andra processer. De avstängda processerna kan starta om senare.