Què és un canvi de context?

En els primers dies de la informàtica, les CPU eren màquines purament seqüencials. Això va ajudar a mantenir els dissenys senzills. Tanmateix, també limitava el rendiment. Molts processos hauran de sol·licitar dades de la memòria RAM del sistema o del disc dur. Tot i que la memòria RAM del sistema és ràpida, encara no és tan ràpida com la CPU, deixant-la inactiva, esperant dades fins que la resposta torni de la memòria RAM. La situació és encara pitjor per a les dades sol·licitades des del disc dur, un dispositiu d'emmagatzematge molt més lent que la memòria RAM. Aquí la CPU pot estar inactiva durant períodes significatius, esperant una resposta. Malauradament, amb els processadors seqüencials, aquest problema és simplement inevitable.

Afortunadament, les CPU modernes ja no són seqüencials. Ofereixen moltes funcions avançades, com ara l'execució fora d'ordre i diversos fils. L'execució fora d'ordre permet a la CPU analitzar les properes instruccions i reordenar-les per maximitzar l'eficiència. El multiprocés permet que la CPU tingui nombrosos fils o processos diferents en execució.

A més de tenir diversos nuclis, la CPU no pot executar-se més d'un alhora. Tanmateix, pot fer-ho semblar canviant entre ells regularment per assegurar-se que cadascú tingui una quantitat apreciable de temps de CPU constant. El procés de canvi entre fils s'anomena canvi de context.

Com funciona un canvi de context?

Un canvi de context consta de dues parts, canviant el fil anterior i canviant el nou. Per canviar el fil antic, la CPU ha de desar el seu estat actual en un bloc de control de processos o en un marc de commutació. Això inclou els valors de qualsevol registre rellevant de la CPU i sempre consta del valor del comptador del programa. Un cop s'ha emmagatzemat el fil, es pot afegir un identificador a una cua preparada per permetre que es pugui restaurar quan sigui necessari.

Canviar al fil següent és el mateix procés a la inversa. Es selecciona un fil de la cua preparada, depenent de la ponderació. Alternativament, es pot triar mitjançant una interrupció que indiqui que un esdeveniment que el fil estava esperant ja està preparat o complet. Les dades del fil es copien als registres correctes i es restaura el fil. En aquest punt, el nou fil està preparat per continuar l'operació des d'on es va aturar.

Impacte en el rendiment

El procés de lectura i escriptura de dades quan s'introdueix o desactiva un fil triga una mica de temps, encara que no gaire, ja que la memòria que s'utilitza normalment és d'alta velocitat. Tanmateix, hi ha més costos de rendiment. Quan canvieu de fil, és possible que les dades de la memòria cau i dels buffers de la CPU del fil anterior no siguin rellevants per al fil nou. Això pot provocar un augment significatiu de TLB ( Translation Lookaside Buffer ) i errors de memòria cau.

Aquest efecte no és significatiu si els dos fils es van generar pel mateix procés, ja que és probable que comparteixin elements de memòria considerables. El TLB s'ha de netejar completament quan es canvia entre fils de diferents mètodes. Això condueix a una taxa d'error TLB del 100%, mentre que la taxa d'èxit de la memòria cau de la CPU també es redueix significativament.

Tot i que les CPU ofereixen suport de maquinari per al canvi de context, els sistemes operatius normalment no l'utilitzen. El canvi de context de maquinari no té consciència de la rellevància de les dades. Per tant, necessita emmagatzemar i restaurar tots els registres, augmentant el temps necessari i l'espai d'emmagatzematge necessari.

A més, el canvi de context de maquinari no emmagatzema les dades dels registres de coma flotant, funcionalitat que pot ser necessària. El canvi de context de programari s'utilitza, per tant, generalment. Permet conservar les dades de tots els registres, inclosos els registres de coma flotant. Els canvis de context del programari tenen una comprensió de la rellevància de les dades. Això vol dir que pot escollir i triar quins emmagatzemar segons sigui necessari.

Conclusió

Un canvi de context és un procés pel qual una CPU moderna canvia el fil que està executant. El procés implica emmagatzemar les dades rellevants del fil actual i restaurar les dades pertinents del nou fil. El canvi de context comporta un cost de rendiment relacionat amb el temps necessari per dur a terme el canvi i l'augment de la taxa de memòria cau i TLB, ja que no s'emmagatzemen. Els canvis de context es produeixen per assegurar-se que tots els fils tenen un bon subministrament de temps de CPU o per una interrupció que indica que s'ha completat un esdeveniment en què estava esperant la línia.


Què és SMPS?

Què és SMPS?

Apreneu què és SMPS i el significat de les diferents classificacions d'eficiència abans de triar un SMPS per al vostre ordinador.

Per què el meu Chromebook no sencén

Per què el meu Chromebook no sencén

Obteniu respostes a la pregunta: Per què el meu Chromebook no s'encén? En aquesta guia útil per als usuaris de Chromebook.

Com informar de les estafes de pesca a Google

Com informar de les estafes de pesca a Google

Obteniu informació sobre com informar d'un estafador a Google per evitar que estafeu altres persones amb aquesta guia.

Roomba satura, senganxa i gira - Arregla

Roomba satura, senganxa i gira - Arregla

Solucioneu un problema en què el vostre robot aspirador Roomba s'atura, s'enganxa i segueix girant.

Com canviar la configuració gràfica a Steam Deck

Com canviar la configuració gràfica a Steam Deck

El Steam Deck ofereix una experiència de joc robusta i versàtil al teu abast. Tanmateix, per optimitzar el vostre joc i garantir el millor possible

Què és la seguretat basada en laïllament?

Què és la seguretat basada en laïllament?

Anàvem a aprofundir en un tema que cada cop és més important en el món de la ciberseguretat: la seguretat basada en l'aïllament. Aquest enfocament a

Com utilitzar el clic automàtic per a Chromebook

Com utilitzar el clic automàtic per a Chromebook

Avui anàvem a aprofundir en una eina que pot automatitzar tasques de clics repetitius al vostre Chromebook: el clic automàtic. Aquesta eina us pot estalviar temps i

Com canviar la cara del rellotge en un Fitbit Versa 4

Com canviar la cara del rellotge en un Fitbit Versa 4

Canvia la cara del rellotge del teu Fitbit Versa 4 per donar-li un aspecte diferent cada dia de manera gratuïta. Mireu que fàcil i ràpid és.

Com treure una GPU dun PC Windows el 2023

Com treure una GPU dun PC Windows el 2023

Necessites treure la GPU del teu ordinador? Uneix-te a mi mentre t'explico com eliminar una GPU del teu PC en aquesta guia pas a pas.

Què és el surf despatlles?

Què és el surf despatlles?

El surf a l'espatlla és una classe d'atac d'enginyeria social. Implica que un atacant recopila informació mirant la pantalla.