Çfarë është një ndërprerës i kontekstit?

Në ditët e para të informatikës, CPU-të ishin makina thjesht sekuenciale. Kjo ndihmoi në mbajtjen e modeleve të thjeshta. Megjithatë, ai gjithashtu kufizoi performancën. Shumë procese do të duhet të kërkojnë të dhëna nga RAM-i i sistemit ose hard disku. Ndërsa RAM-i i sistemit është i shpejtë, nuk është ende aq i shpejtë sa CPU, duke e lënë atë të papunë, duke pritur për të dhëna derisa përgjigja të kthehet nga RAM-i. Situata është edhe më e keqe për të dhënat e kërkuara nga hard disku, një pajisje ruajtëse shumë më e ngadaltë se RAM. Këtu CPU mund të jetë i papunë për periudha të konsiderueshme, duke pritur për një përgjigje. Fatkeqësisht, me procesorët sekuencialë, kjo çështje është thjesht e pashmangshme.

Fatmirësisht, CPU-të moderne nuk janë më të njëpasnjëshme. Ato ofrojnë shumë veçori të avancuara, të tilla si ekzekutimi jashtë rendit dhe fijet e shumta. Ekzekutimi jashtë rendit i lejon CPU-së të analizojë instruksionet e ardhshme dhe t'i rirendisë ato për të maksimizuar efikasitetin. Multi-threading i lejon CPU-së të ketë shumë fije ose procese të ndryshme që funksionojnë.

Përveç të paturit bërthama të shumta, CPU nuk mund të funksionojë më shumë se një në të njëjtën kohë. Megjithatë, mund ta bëjë të duket ashtu duke kaluar rregullisht ndërmjet tyre për t'u siguruar që secili të marrë një sasi të konsiderueshme të kohës konstante të CPU-së. Procesi i kalimit ndërmjet thread-ve quhet një ndërrim konteksti.

Si funksionon një ndërprerës i kontekstit?

Një ndërprerës i kontekstit përbëhet nga dy pjesë, duke hequr fillin e mëparshëm dhe duke kaluar në atë të ri. Për të ndryshuar thread-in e vjetër, CPU-ja duhet të ruajë gjendjen e saj aktuale në një bllok të kontrollit të procesit ose një kornizë ndërprerëse. Kjo përfshin vlerat e çdo regjistri përkatës të CPU-së dhe gjithmonë përbëhet nga vlera e numëruesit të programit. Pasi të jetë ruajtur filli, një dorezë mund të shtohet në një radhë të gatshme për të lejuar që ajo të rikthehet kur të jetë e nevojshme.

Kalimi në fillin e mëposhtëm është i njëjti proces në të kundërt. Një fije zgjidhet ose nga radha e gatshme, në varësi të peshës. Përndryshe, mund të zgjidhet nga një ndërprerje që tregon se një ngjarje që priste filli është tani gati ose e përfunduar. Të dhënat për thread-in kopjohen më pas në regjistrat e duhur dhe filli rikthehet. Në këtë pikë, filli i ri është gati për të vazhduar funksionimin nga vendi ku u ndal.

Ndikimi i performancës

Procesi i leximit dhe shkrimit të të dhënave gjatë ndërrimit ose daljes së një filli kërkon pak kohë, megjithëse jo shumë, pasi memoria e përdorur zakonisht është me shpejtësi të lartë. Megjithatë, ka kosto të mëtejshme të performancës. Kur ndërroni thread-et, të dhënat në cache dhe buferat e CPU-së nga thread-i i mëparshëm, mund të mos jenë relevante për thread-in e ri. Kjo mund të çojë në një rritje të konsiderueshme në TLB ( Translation Lookaside Buffer ) dhe mungesë të cache-it.

Ky efekt nuk është i rëndësishëm nëse të dy fijet janë krijuar nga i njëjti proces, pasi ka të ngjarë të ndajnë elemente të konsiderueshme memorie. TLB duhet të lahet plotësisht kur kaloni midis fijeve nga metoda të ndryshme. Kjo çon në një normë 100% të humbjes së TLB, ndërsa shkalla e goditjes së cache-it të CPU-së gjithashtu reduktohet ndjeshëm.

Ndërsa CPU-të ofrojnë mbështetje harduerike për ndërrimin e kontekstit, sistemet operative zakonisht nuk e përdorin këtë. Ndërrimi i kontekstit të harduerit i mungon ndërgjegjësimi për rëndësinë e të dhënave. Prandaj, duhet të ruajë dhe rivendosë të gjithë regjistrat, duke rritur kohën e nevojshme dhe hapësirën e kërkuar të ruajtjes.

Për më tepër, ndërrimi i kontekstit të harduerit nuk ruan të dhënat nga regjistrat me pikë lundruese, funksionalitet që mund të jetë i nevojshëm. Prandaj, ndërrimi i kontekstit të softuerit përdoret përgjithësisht. Ai lejon mbajtjen e të dhënave nga të gjithë regjistrat, duke përfshirë regjistrat me pikë lundruese. Ndërprerësit e kontekstit të softuerit kanë një kuptim të rëndësisë së të dhënave. Kjo do të thotë se mund të zgjedhë dhe të zgjedhë cilat të ruajë sipas nevojës.

konkluzioni

Një ndërprerës konteksti është një proces me anë të të cilit një CPU moderne ndërron se cilin thread po ekzekuton. Procesi përfshin ruajtjen e të dhënave përkatëse të fillit aktual dhe rikthimin e të dhënave përkatëse të fillit të ri. Ndërrimi i kontekstit vjen me një kosto të performancës që lidhet me kohën e nevojshme për kryerjen e ndërrimit dhe shkallën e rritur të cache dhe TLB humbet pasi këto nuk ruhen. Ndërruesit e kontekstit ndodhin ose për të siguruar që të gjitha thread-at të kenë një furnizim të mirë të kohës së CPU-së ose për shkak të një ndërprerjeje që tregon se një ngjarje që linja priste është e përfunduar.


Si të ndryshoni pamjen e orës në një Fitbit Versa 4

Si të ndryshoni pamjen e orës në një Fitbit Versa 4

Ndryshoni pamjen e orës së Fitbit Versa 4 për t'i dhënë orës tuaj një pamje të ndryshme çdo ditë falas. Shihni sa e shpejtë dhe e lehtë është.

Çfarë është SMPS?

Çfarë është SMPS?

Mësoni se çfarë është SMPS dhe kuptimin e vlerësimeve të ndryshme të efikasitetit përpara se të zgjidhni një SMPS për kompjuterin tuaj.

Si të raportoni mashtrimet e phishing në Google

Si të raportoni mashtrimet e phishing në Google

Mësoni se si të raportoni një mashtrues në Google për t'i parandaluar ata të mashtrojnë të tjerët me këtë udhëzues.

Pse nuk po ndizet Chromebook im

Pse nuk po ndizet Chromebook im

Merr përgjigje për pyetjen, Pse Chromebook im nuk po ndizet? Në këtë udhëzues të dobishëm për përdoruesit e Chromebook.

Si të ndryshoni cilësimet e grafikës në Steam Deck

Si të ndryshoni cilësimet e grafikës në Steam Deck

Steam Deck ofron një përvojë të fuqishme dhe të gjithanshme lojrash pikërisht në majë të gishtave tuaj. Megjithatë, për të optimizuar lojërat tuaja dhe për të siguruar më të mirën e mundshme

Si të përdorni Klikuesin Automatik për Chromebook

Si të përdorni Klikuesin Automatik për Chromebook

Sot, do të gërmohej në një mjet që mund të automatizojë detyrat e përsëritura të klikimeve në Chromebook tuaj: Klikuesi automatik. Ky mjet mund t'ju kursejë kohë dhe

Roomba ndalon, ngjitet dhe rrotullohet - Rregullo

Roomba ndalon, ngjitet dhe rrotullohet - Rregullo

Rregulloni një problem ku vakuumi i robotit tuaj Roomba ndalon, ngjitet dhe vazhdon të rrotullohet.

Si të hiqni një GPU nga PC Windows në 2023

Si të hiqni një GPU nga PC Windows në 2023

Keni nevojë të hiqni GPU-në nga kompjuteri juaj? Bashkohuni me mua ndërsa shpjegoj se si të hiqni një GPU nga kompjuteri juaj në këtë udhëzues hap pas hapi.

Çfarë është Shoulder Surfing?

Çfarë është Shoulder Surfing?

Sërfimi i shpatullave është një klasë e sulmit të inxhinierisë sociale. Ai përfshin një sulmues që mbledh informacione duke parë në ekranin tuaj.

Çfarë është një SoC?

Çfarë është një SoC?

Nëse keni parë ndonjëherë brenda një kulle PC, mund të shihni se ka shumë komponentë të ndryshëm. Laptopi juaj mesatar përmban shumicën e të njëjtëve komponentë