Hva er en kontekstbryter?

I de tidlige dagene med databehandling var CPU-er rent sekvensielle maskiner. Dette bidro til å holde designene enkle. Det begrenset imidlertid også ytelsen. Mange prosesser vil trenge å be om data fra system-RAM eller harddisken. Selv om system-RAM er rask, er den fortsatt ikke like rask som CPU-en, og lar den sitte inaktiv og vente på data til responsen kommer tilbake fra RAM-en. Situasjonen er enda verre for data som er forespurt fra harddisken, en lagringsenhet som er mye tregere enn RAM. Her kan CPU-en være inaktiv i betydelige perioder og vente på svar. Dessverre, med sekvensielle prosessorer, er dette problemet rett og slett uunngåelig.

Heldigvis er moderne CPUer ikke lenger sekvensielle. De tilbyr mange avanserte funksjoner, for eksempel utførelse og flere tråder. Utefor ordreutførelse lar CPUen analysere kommende instruksjoner og omorganisere dem for å maksimere effektiviteten. Multi-threading lar CPUen ha mange forskjellige tråder eller prosesser i gang.

Utenom å ha flere kjerner, kan ikke CPUen kjøre mer enn én om gangen. Det kan imidlertid få det til å se ut som det ved å bytte mellom dem regelmessig for å sikre at de hver får en betydelig mengde konstant CPU-tid. Prosessen med å bytte mellom tråder kalles en kontekstbryter.

Hvordan fungerer en kontekstbryter?

En kontekstbryter består av to deler, bytter ut den forrige tråden og bytter inn den nye. For å endre den gamle tråden, må CPU-en lagre sin nåværende tilstand til en prosesskontrollblokk eller bytteramme. Dette inkluderer verdiene til eventuelle relevante CPU-registre og består alltid av verdien til programtelleren. Når tråden er lagret, kan et håndtak legges til en klar kø slik at den kan gjenopprettes ved behov.

Bytte i den følgende tråden er den samme prosessen i motsatt rekkefølge. En tråd velges enten fra klarkøen, avhengig av vekting. Alternativt kan det velges med et avbrudd som indikerer at en hendelse tråden ventet på nå er klar eller fullført. Dataene for tråden blir så kopiert inn i de riktige registrene, og tråden gjenopprettes. På dette tidspunktet er den nye tråden klar til å fortsette driften der den stoppet.

Ytelsespåvirkning

Prosessen med å lese og skrive data når du bytter en tråd inn eller ut, tar litt tid, men ikke mye, siden minnet som brukes vanligvis er høyhastighets. Det er imidlertid ytterligere ytelseskostnader. Når du bytter tråder, kan det hende at dataene i CPU-cachene og bufferne fra forrige tråd ikke er relevante for den nye tråden. Dette kan føre til en betydelig økning i TLB ( Translation Lookaside Buffer ), og cache-misser.

Denne effekten er ikke signifikant hvis de to trådene ble skapt av samme prosess, da de sannsynligvis deler betydelige minneelementer. TLB må skylles helt når du bytter mellom tråder fra forskjellige metoder. Dette fører til en 100 % TLB-missrate, mens trefffrekvensen til CPU-cachen også reduseres betydelig.

Mens CPU-er tilbyr maskinvarestøtte for kontekstbytte, bruker operativsystemer vanligvis ikke dette. Bytting av maskinvarekontekst mangler bevissthet om relevansen til data. Derfor må den lagre og gjenopprette alle registre, noe som øker tiden det tar og lagringsplassen som kreves.

I tillegg lagrer ikke maskinvarekontekstbytte dataene fra flyttallregistre, funksjonalitet som kan være nødvendig. Programvarekontekstbytting brukes derfor generelt. Det gjør det mulig å holde data fra alle registre, inkludert flyttallregistre. Programvarekontekstbrytere har en forståelse av relevansen til data. Dette betyr at den kan velge hvilke som skal lagres etter behov.

Konklusjon

En kontekstbryter er en prosess der en moderne CPU bytter hvilken tråd den kjører. Prosessen innebærer å lagre gjeldende tråds relevante data og gjenopprette den nye trådens relevante data. Kontekstsvitsjing kommer med en ytelseskostnad knyttet til tiden som trengs for å utføre vekslingen, og den økte frekvensen av cache og TLB-miss da disse ikke lagres. Kontekstbrytere skjer enten for å sikre at alle tråder har god tilførsel av CPU-tid eller på grunn av et avbrudd som indikerer at en hendelse linjen ventet på er fullført.


Leave a Comment

Slik installerer du en SSD på stasjonære og bærbare PC-er

Slik installerer du en SSD på stasjonære og bærbare PC-er

Har du nettopp kjøpt en SSD og håper å oppgradere den interne lagringen på PC-en din, men vet ikke hvordan du installerer SSD? Les denne artikkelen nå!

Grunnleggende om 3D-utskrift: En viktig vedlikeholdssjekkliste

Grunnleggende om 3D-utskrift: En viktig vedlikeholdssjekkliste

Å holde utstyret ditt i god stand er et must. Her er noen nyttige tips for å holde 3D-printeren din i topp stand.

10 Beste NAS-lagringsenheter for hjem og profesjonell bruk

10 Beste NAS-lagringsenheter for hjem og profesjonell bruk

Enten du leter etter en NAS for hjemmet eller kontoret, sjekk ut denne listen over de beste NAS-lagringsenhetene.

Hvordan finne IP-adressen til en skriver

Hvordan finne IP-adressen til en skriver

Har du problemer med å finne ut hvilken IP-adresse skrivere bruker? Vi viser deg hvordan du finner den.

5 Grunner til at Laptopen Din Overopphetes

5 Grunner til at Laptopen Din Overopphetes

Finn ut noen av de mulige årsakene til at laptopen din overopphetes, sammen med tips og triks for å unngå dette problemet og holde enheten din avkjølt.

Hva du skal gjøre hvis Powerbeats Pro ikke lader i saken

Hva du skal gjøre hvis Powerbeats Pro ikke lader i saken

Hvis Powerbeats Pro ikke lader, bruk en annen strømkilde og rengjør øreproppene. La saken være åpen mens du lader øreproppene.

Grunnleggende om 3D-utskrift: Vedlikeholdstips for 3D-printeren din

Grunnleggende om 3D-utskrift: Vedlikeholdstips for 3D-printeren din

Å vedlikeholde 3D-printerne dine er veldig viktig for å få de beste resultatene. Her er noen viktige tips å huske på.

Slik fikser du GeForce Now feilkode 0xC272008F

Slik fikser du GeForce Now feilkode 0xC272008F

Du gjør deg klar for en kveld med spilling, og det kommer til å bli stort – du har nettopp kjøpt "Star Wars Outlaws" på GeForce Now streamingtjenesten. Oppdag den eneste kjente løsningen som viser deg hvordan du fikser GeForce Now feilkode 0xC272008F, slik at du kan begynne å spille Ubisoft-spill igjen.

Slik bruker du AirPods med Samsung-telefoner

Slik bruker du AirPods med Samsung-telefoner

Er du usikker på om du skal kjøpe AirPods til din Samsung-telefon? Denne guiden vil helt klart hjelpe. Det mest åpenbare spørsmålet er om de to er

Canon Pixma MG5220: Skann uten blekk

Canon Pixma MG5220: Skann uten blekk

Hvordan aktivere skanning på Canon Pixma MG5220 når du går tom for blekk.