Što je preklopnik konteksta?

U ranim danima računarstva, CPU-i su bili isključivo sekvencijalni strojevi. To je pomoglo da dizajn ostane jednostavan. Međutim, također je ograničio izvedbu. Mnogi će procesi morati zahtijevati podatke iz RAM-a sustava ili tvrdog diska. Iako je RAM sustava brz, još uvijek nije tako brz kao CPU, ostavljajući ga da miruje i čeka podatke dok se odgovor ne vrati iz RAM-a. Situacija je još gora za podatke koji se traže s tvrdog diska, uređaja za pohranu koji je mnogo sporiji od RAM-a. Ovdje CPU može biti neaktivan duže vrijeme, čekajući odgovor. Nažalost, kod sekvencijalnih procesora ovaj je problem jednostavno neizbježan.

Srećom, moderni procesori više nisu sekvencijalni. Oni nude mnoge napredne značajke, kao što su izvođenje izvan redoslijeda i više niti. Izvršenje izvan reda omogućuje CPU-u da analizira nadolazeće upute i promijeni njihov redoslijed kako bi se povećala učinkovitost. Multi-threading omogućuje CPU-u da ima brojne različite niti ili procese.

Osim što ima više jezgri, CPU ne može pokretati više od jedne u isto vrijeme. Međutim, može izgledati tako redovitim prebacivanjem između njih kako bi se osiguralo da svaki od njih dobije znatnu količinu konstantnog CPU vremena. Proces prebacivanja između niti naziva se promjena konteksta.

Kako radi preklopnik konteksta?

Prebacivanje konteksta sastoji se od dva dijela, isključivanja prethodne niti i prebacivanja u novu. Za promjenu stare niti, CPU mora spremiti svoje trenutno stanje u blok kontrole procesa ili okvir prekidača. To uključuje vrijednosti svih relevantnih CPU registara i uvijek se sastoji od vrijednosti programskog brojača. Nakon što je nit pohranjena, rukovatelj se može dodati u spremni red čekanja kako bi se omogućilo njegovo vraćanje kada je potrebno.

Prebacivanje u sljedeću nit je isti proces obrnutim redom. Nit se odabire ili iz spremnog reda čekanja, ovisno o težini. Alternativno, može se odabrati prekidom koji pokazuje da je događaj na koji je nit čekala sada spreman ili završen. Podaci za nit se zatim kopiraju u ispravne registre, a nit se obnavlja. U ovom trenutku, nova nit je spremna za nastavak rada od mjesta gdje je stala.

Utjecaj na izvedbu

Proces čitanja i pisanja podataka prilikom uključivanja ili isključivanja niti traje neko vrijeme, iako ne puno, budući da je korištena memorija obično velike brzine. Međutim, postoje dodatni troškovi izvedbe. Prilikom izmjene niti, podaci u CPU predmemoriji i međuspremnicima iz prethodne niti možda neće biti relevantni za novu nit. To može dovesti do značajnog povećanja TLB-a ( Translation Lookaside Buffer ) i promašaja predmemorije.

Ovaj učinak nije značajan ako su dvije niti stvorene istim procesom, budući da će vjerojatno dijeliti značajne memorijske elemente. TLB se mora potpuno isprati kada se prebacuje između niti iz različitih metoda. To dovodi do stope promašaja TLB-a od 100%, dok je stopa pogodaka CPU predmemorije također značajno smanjena.

Dok procesori nude hardversku podršku za prebacivanje konteksta, operativni sustavi to obično ne koriste. Hardverskom prebacivanju konteksta nedostaje svijest o relevantnosti podataka. Stoga treba pohraniti i obnoviti sve registre, povećavajući potrebno vrijeme i prostor za pohranu.

Dodatno, hardversko prebacivanje konteksta ne pohranjuje podatke iz registara s pomičnim zarezom, funkcionalnost koja može biti potrebna. Stoga se općenito koristi prebacivanje softverskog konteksta. Omogućuje čuvanje podataka iz svih registara, uključujući registre s pomičnim zarezom. Softverski kontekstni prekidači razumiju relevantnost podataka. To znači da može birati koje će pohraniti prema potrebi.

Zaključak

Prebacivanje konteksta je proces kojim moderni CPU mijenja koju nit izvodi. Proces uključuje pohranjivanje relevantnih podataka trenutne niti i obnavljanje relevantnih podataka nove niti. Prebacivanje konteksta dolazi s troškovima izvedbe koji se odnose na vrijeme potrebno za izvođenje prebacivanja i povećanu stopu promašaja predmemorije i TLB-a jer se oni ne pohranjuju. Prebacivanje konteksta događa se ili kako bi se osiguralo da sve niti imaju dobru zalihu CPU vremena ili zbog prekida koji ukazuje da je događaj na koji je linija čekala završen.


Kako klonirati tvrdi disk

Kako klonirati tvrdi disk

U modernom digitalnom dobu, gdje su podaci dragocjena imovina, kloniranje tvrdog diska u sustavu Windows za mnoge može biti ključan proces. Ovaj sveobuhvatni vodič

Kako popraviti upravljački program WUDFRd koji se nije učitao u sustavu Windows 10?

Kako popraviti upravljački program WUDFRd koji se nije učitao u sustavu Windows 10?

Jeste li suočeni s porukom o pogrešci tijekom pokretanja računala koja kaže da se upravljački program WUDFRd nije uspio učitati na vašem računalu?

Kako popraviti šifru pogreške NVIDIA GeForce Experience 0x0003

Kako popraviti šifru pogreške NVIDIA GeForce Experience 0x0003

Imate li NVIDIA GeForce iskustvo s kodom pogreške 0x0003 na radnoj površini? Ako da, pročitajte blog kako biste saznali kako brzo i jednostavno popraviti ovu pogrešku.

Što je SMPS?

Što je SMPS?

Naučite što je SMPS i značenje različitih ocjena učinkovitosti prije nego što odaberete SMPS za svoje računalo.

Zašto se moj Chromebook ne uključuje

Zašto se moj Chromebook ne uključuje

Pronađite odgovore na pitanje Zašto se moj Chromebook ne uključuje? U ovom korisnom vodiču za korisnike Chromebooka.

Kako Googleu prijaviti phishing prijevare

Kako Googleu prijaviti phishing prijevare

Pomoću ovog vodiča saznajte kako Googleu prijaviti prevaranta kako biste ga spriječili da vara druge.

Roomba staje, zapinje i okreće se – popravi

Roomba staje, zapinje i okreće se – popravi

Riješite problem u kojem vaš Roomba robot usisavač stane, zaglavi se i stalno se okreće.

Kako promijeniti grafičke postavke na Steam Decku

Kako promijeniti grafičke postavke na Steam Decku

Steam Deck nudi robusno i svestrano iskustvo igranja na dohvat ruke. Međutim, kako biste optimizirali svoje igranje i osigurali najbolje moguće

Što je sigurnost temeljena na izolaciji?

Što je sigurnost temeljena na izolaciji?

Namjeravali smo se zadubiti u temu koja postaje sve važnija u svijetu kibernetičke sigurnosti: sigurnost temeljena na izolaciji. Ovaj pristup prema

Kako koristiti Auto Clicker za Chromebook

Kako koristiti Auto Clicker za Chromebook

Danas smo namjeravali istražiti alat koji može automatizirati ponavljajuće zadatke klikanja na vašem Chromebooku: Auto Clicker. Ovaj vam alat može uštedjeti vrijeme i