Què són els fils d'un processador? diferències amb els nuclis

Taula de continguts:
- Què són els nuclis d'un processador
- Què són els fils de processament o threads
- Els programes, processos i fils
- Els processos de el programa
- Els fils d'un procés
- Podem veure aquests fils o subprocessos en el sistema?
En aquest article anem a dedicar una estona a explicar que són fils d'un processador o també anomenats threads en anglès o subprocessos en programació, per així identificar les diferències fonamentals entre aquests i els nuclis de l'processador. Entre els usuaris menys experts i fins i tot els més avançats, encara hi ha força confusió sobre aquest tema. Per això ens hem proposat aclareix aquests termes en la mesura dels possible.
Aquest concepte de fils de processament no és fonamental saber-ho a l'hora de comprar un processador per a un usuari normal. En la majoria d'ocasions, millor més que menys, això es compleix gairebé sempre. On sí que necessitem saber bé que són els fils, és en els treballs de desenvolupament de programes. Depenent de com estigui programada i compilada una aplicació, tindrà una execució més optimitzada per a processadors de més fils que nuclis. I és aquí a on tractarem d'arribar a la nostra explicació.
Índex de continguts
Què són els nuclis d'un processador
Anem a començar explicant què són els nuclis del nostre processador, així tindrem aquest coneixement previ per a no confondre'ns.
Sabem que un processador s'encarrega de dur a terme i executar les instruccions dels programes que estan carregats a la memòria RAM del nostre ordinador. Per ell passen pràcticament totes les instruccions que són necessàries per realitzar les típiques tasques en el nostre PC, navegar, escriure, veure fotos, etc. En l'apartat físic, un processador és un circuit integrat format per milions de transistors que formen portes lògiques per deixar passa o no els bits de dades en forma d'energia, sense més.
Doncs aquest petit xip alberga en el seu interior diferents mòduls que podem anomenar nuclis, a més d'altres elements que ara no ens interessen. Els processadors de fa uns anys tenien un sol d'aquests nuclis, i eren capaços de processar una instrucció per cada cicle. Aquests cicles es mesuren en Megahertzs (MHz), com més MHz, mes instruccions podrem fer cada segon.
Ara no només tenim un nucli, sinó diversos. Cada nucli representa un subprocesador, és a dir, que cada un d'aquests subprocesadores s'executarà una d'aquestes instruccions, podent així executar diverses d'elles en cada cicle de rellotge amb una CPU de diversos nuclis. Si tenim un processador de 4 nuclis, podrem executar abril instruccions de forma simultània en lloc d'una sola. Llavors, la millora de rendiment es quadruplica. Si tenim 6, doncs 6 instruccions a el mateix temps. D'aquesta forma és com els processadors actuals són molt més potents que els antics.
I recorda, aquests nuclis estan presents físicament en el nostre processador, no és una cosa virtual ni creat per codi.
Què són els fils de processament o threads
Els fils, threads o subprocessos no formen part física de l'processador, no a l'almenys pel que fa a més quantitat de nuclis o alguna cosa per l'estil.
Podem definir un fil de processament com el flux de control de dades d'un programa. És un mitjà que permet administrar les tasques d'un processador i de les seves diferents nuclis d'una forma més eficient. Gràcies als fils, les unitats mínimes d'assignació, que són les tasques o processos d'un programa, poden dividir-se en trossos per així optimitzar els temps d'espera de cada instrucció en la cua de l'procés. Aquests trossos es diuen subprocessos o threads.
Dit d'una altra manera, cada fil de processament conté un tros de la tasca a realitzar, una mica més simple de realitzar que si introduïm la tasca completa al nucli físic. D'aquesta forma la CPU és capaç de processar diverses tasques a el mateix temps i de forma simultània, de fet, podrà fer tantes tasques com fils tingui, i normalment són una o dues per cada nucli. En els processadors que tenen per exemple 6 nuclis i 12 fils seran capaços de dividir els processos en 12 tasques diferents en lloc de solament 6.
Aquesta forma de treballar fa que els recursos de sistema siguin administrats de forma més equitativa i eficient. Ja saps… el divideix i venceràs de tota la vida. Aquests processadors s'anomenen multi-fil. Per ara, el que hem de tenir clar és que un processador amb 12 fils, no va a tenir 12 nuclis, els nuclis són una mica d'origen físic i els fils una mica d'origen lògic.
Això segurament hagi quedat una mica abstracte i difícil d'entendre, així que anem a veure com es tradueix si parlem de l'arquitectura d'un programa al nostre ordinador.
Els programes, processos i fils
Tots sabem què és un programa, és un codi que s'emmagatzema en el nostre ordinador i que està destinat a dur a terme alguna tasca concreta. Una aplicació és un programa, un driver també ho és i fins i tot el sistema operatiu és un programa capaç d'executar altres programes al seu interior. Tots ells estan emmagatzemats en forma binària, ja que el processador només entén d'uns i zeros, corrent / no corrent.
Els processos de el programa
Per executar un programa, aquest es carrega en memòria, la memòria RAM. Aquest programa és carregat mitjançant processos, els quals porten el seu codi binari associat i els recursos que necessita per operar, que seran assignats de manera "intel·ligent" pel sistema operatiu.
Els recursos bàsics que necessita un procés són, un comptador de programa, i una pila de registres.
- Comptador de programa (CP): es diu punter d'instruccions, i realitza el seguiment de la seqüència d'instruccions que es vagin processant. Registres: és un magatzem situat al processador en on es pot guardar una instrucció, una adreça d'emmagatzematge o qualsevol altra dada. Pila: és l'estructura de dades que emmagatzema la informació relativa a les instàncies que un programa té actives a l'ordinador.
Llavors cada programa està dividit en processos, i està emmagatzemat en un lloc determinat en memòria. A més, cada procés s'executa de forma independent, i això és molt important d'entendre perquè així és com el processador i el sistema són capaços d'executar diverses tasques a el mateix temps, el que anomenem sistema multitasca. Aquest sistema de processament és el culpable que puguem seguir treballant en el nostre PC, encara que un programa s'hagi quedat bloquejat.
Els fils d'un procés
Aquí és on fan acte de presència els fils de processament, denominats subprocessos en els sistemes operatius. Un fil és la unitat d'execució d'un procés. Podem dividir el procés en subprocessos, i cada un d'ells serà un fil d'execució.
Si un programa no és multi-fil, els processos dins d'ell només tindran un fil, així que només es podran processar d'una sola vegada. Per contra, si tenim processos multi-fil, aquests podran dividir-se en diversos trossos, i cada un d'aquests fils comparteix els recursos assignats a el procés. Per això vam dir que l'execució en múltiples fils és més eficient.
A més, cada fil compta amb la seva pròpia pila de registres pel que podran processar dos o més d'ells a el mateix temps, a l'contrari que un sol procés, que haurà de executar tot d'una sola vegada. Els subprocessos són tasques més senzilles que permeten executar un procés de forma dividida. I aquesta és bàsicament la funció final dels fils de processament. Quants més fils, major divisió de processos, i major volum de càlculs simultanis i llavors, més eficiència.
Encara no hem acabat, encara tenim la pregunta pendent de Què passa llavors amb un nucli amb doble fil? Ja vam dir que cada nucli és capaç de executa una sola instrucció alhora. La CPU compta amb un complex algoritme que divideix de la manera més eficient possible els temps d'execució, així assigna a cada tasca un determinat interval d'execució. El canvi entre tasques és tan ràpid, que donarà la sensació que el nucli executa tasques de forma paral·lela.
Podem veure aquests fils o subprocessos en el sistema?
No d'una forma massa detallada, però si, podrem veure'ls, tant en Windows com Mac.
En el cas de Windows, tan sols haurem d'obrir a l'administrador de tasques i situar-nos sobre "rendiment". Després premerem baix a l'enllaç de "monitor de recursos". En aquesta nova finestra haurem dividit cada procés en consum de la CPU i en subprocessos (threads), aquests serà els fils.
En el monitor d'activitat de Mac, tindrem directament els subprocessos enumerats a la pantalla principal.
Amb això finalitzem el nostre article sobre què són els fils de processament d'una CPU. Certament és un tema una mica complex d'explicar i bastant abstracte, especialment per a usuaris que no comprenguin completament com funciona un processador. Però en aquest cas tenim bones notícies perquè també tenim un article força bo parlant de com funciona un processador i com es realitza el cicle d'instrucció complet.
Visita els nostres articles sobre:
Esperem que tot hagi quedat més o menys clar, i agraïm que ens hagis triat per saber més sobre aquest tema.
Diferències entre nuclis físics i nuclis lògics (smt o hyperthreading) en cpu

Nuclis, cores, threads, sòcols, nucli lògic i nucli virtual. T'expliquem d'una forma molt senzilla tots ests conceptes dels processadors.
Apareix un processador Athlon 200ge amb dos nuclis i quatre fils al costat de gràfics vega

Athlon 200GE ha aparegut a la base de dades SiSoftware mostrant una configuració dual core amb quatre fils i un nucli gràfic basat en Vega.
Que són els nuclis d'un processador? i els fils o nuclis lògics?

us expliquem que són els nuclis d'un processador. La diferència entre un físic i un altre lògic i si realment val la pena.