Vad är en Context Switch?

Under de första dagarna av datoranvändning var processorer rent sekventiella maskiner. Detta hjälpte till att hålla designen enkel. Men det begränsade också prestandan. Många processer kommer att behöva begära data från system-RAM eller hårddisken. Även om system-RAM-minnet är snabbt, är det fortfarande inte lika snabbt som processorn, vilket gör att det sitter inaktivt och väntar på data tills svaret kommer tillbaka från RAM-minnet. Situationen är ännu värre för data som begärs från hårddisken, en lagringsenhet mycket långsammare än RAM. Här kan processorn vara inaktiv under betydande perioder och väntar på ett svar. Tyvärr, med sekventiella processorer, är detta problem helt enkelt oundvikligt.

Tack och lov är moderna processorer inte längre sekventiella. De erbjuder många avancerade funktioner, som exekvering i oordning och flera trådar. Utförande i ordning gör att CPU:n kan analysera kommande instruktioner och ordna om dem för att maximera effektiviteten. Multi-threading gör att CPU kan ha många olika trådar eller processer igång.

Förutom att ha flera kärnor kan CPU:n inte köra mer än en åt gången. Det kan dock få det att se ut som det genom att växla mellan dem regelbundet för att säkerställa att var och en får en avsevärd mängd konstant CPU-tid. Processen att växla mellan trådar kallas en kontextväxling.

Hur fungerar en kontextväxling?

En kontextväxling består av två delar, att byta ut den föregående tråden och byta in den nya. För att ändra den gamla tråden måste CPU:n spara sitt nuvarande tillstånd till ett Process Control Block eller switch frame. Detta inkluderar värdena för eventuella relevanta CPU-register och består alltid av programräknarens värde. När tråden har lagrats kan ett handtag läggas till i en färdig kö så att den kan återställas vid behov.

Att byta i följande tråd är samma process i omvänd riktning. En tråd väljs antingen från färdigkön, beroende på viktning. Alternativt kan det väljas med ett avbrott som indikerar att en händelse som tråden väntade på nu är klar eller klar. Data för tråden kopieras sedan till rätt register och tråden återställs. Vid denna tidpunkt är den nya tråden redo att fortsätta driften där den slutade.

Prestandapåverkan

Processen att läsa och skriva data när du växlar in eller ut en tråd tar lite tid, men inte mycket, eftersom minnet som används vanligtvis är höghastighets. Det finns dock ytterligare prestationskostnader. När du byter tråd kan data i CPU-cachen och buffertarna från den föregående tråden inte vara relevant för den nya tråden. Detta kan leda till en betydande ökning av TLB ( Translation Lookaside Buffer ) och cachemissar.

Denna effekt är inte signifikant om de två trådarna skapades av samma process, eftersom de sannolikt delar betydande minneselement. TLB:n måste spolas helt när man byter mellan trådar från olika metoder. Detta leder till en 100 % TLB-missfrekvens medan träfffrekvensen för CPU-cachen också reduceras avsevärt.

Medan CPU:er erbjuder hårdvarustöd för kontextväxling, använder operativsystem vanligtvis inte detta. Byte av hårdvarukontext saknar medvetenhet om datas relevans. Därför måste den lagra och återställa alla register, vilket ökar den tid det tar och det lagringsutrymme som krävs.

Dessutom lagrar inte hårdvarukontextväxling data från flyttalsregister, funktionalitet som kan vara nödvändig. Programvarukontextväxling används därför i allmänhet. Det gör det möjligt att lagra data från alla register, inklusive flyttalsregister. Programvarukontextväxlar har en förståelse för datas relevans. Detta innebär att den kan välja och välja vilka som ska lagras efter behov.

Slutsats

En kontextväxel är en process genom vilken en modern CPU växlar vilken tråd den körs. Processen innefattar att lagra den aktuella trådens relevanta data och återställa den nya trådens relevanta data. Kontextväxling kommer med en prestandakostnad relaterad till den tid som krävs för att utföra växlingen, och den ökade frekvensen av cache- och TLB-missar eftersom dessa inte lagras. Kontextväxlingar sker antingen för att säkerställa att alla trådar har ett bra utbud av CPU-tid eller på grund av ett avbrott som indikerar att en händelse som linjen väntade på är klar.


Hur man klona en hårddisk

Hur man klona en hårddisk

I den moderna digitala tidsåldern, där data är en värdefull tillgång, kan kloning av en hårddisk på Windows vara en avgörande process för många. Denna omfattande guide

Hur fixar jag drivrutinen WUDFRd kunde inte laddas på Windows 10?

Hur fixar jag drivrutinen WUDFRd kunde inte laddas på Windows 10?

Står du inför felmeddelandet när du startar din dator som säger att drivrutinen WUDFRd inte kunde laddas på din dator?

Så här åtgärdar du NVIDIA GeForce Experience Error Code 0x0003

Så här åtgärdar du NVIDIA GeForce Experience Error Code 0x0003

Upplever du NVIDIA GeForce-felkod 0x0003 på ditt skrivbord? Om ja, läs bloggen för att hitta hur du åtgärdar det här felet snabbt och enkelt.

Vad är SMPS?

Vad är SMPS?

Lär dig vad som är SMPS och innebörden av olika effektivitetsklasser innan du väljer en SMPS för din dator.

Varför slås inte min Chromebook på

Varför slås inte min Chromebook på

Få svar på frågan Varför slås inte min Chromebook på? I den här användbara guiden för Chromebook-användare.

Hur man rapporterar nätfiskebedrägerier till Google

Hur man rapporterar nätfiskebedrägerier till Google

Lär dig hur du rapporterar en bedragare till Google för att hindra dem från att lura andra med den här guiden.

Roomba stannar, sticker och vänder sig om – fixa

Roomba stannar, sticker och vänder sig om – fixa

Åtgärda ett problem där din Roomba robotdammsugare stannar, fastnar och fortsätter att vända sig om.

Hur man ändrar grafikinställningar på Steam Deck

Hur man ändrar grafikinställningar på Steam Deck

Steam Deck erbjuder en robust och mångsidig spelupplevelse precis vid dina fingertoppar. Dock för att optimera ditt spelande och säkerställa bästa möjliga

Vad är isoleringsbaserad säkerhet?

Vad är isoleringsbaserad säkerhet?

Vi skulle fördjupa oss i ett ämne som blir allt viktigare i världen av cybersäkerhet: isoleringsbaserad säkerhet. Detta förhållningssätt till

Hur man använder Auto Clicker för Chromebook

Hur man använder Auto Clicker för Chromebook

Idag skulle jag fördjupa dig i ett verktyg som kan automatisera repetitiva klickuppgifter på din Chromebook: Auto Clicker. Detta verktyg kan spara tid och