Care sunt firele unui procesor? diferențe cu nucleele

Cuprins:
- Care sunt nucleele unui procesor
- Ce sunt firele de procesare?
- Programe, procese și fire
- Procesele programului
- Firele unui proces
- Putem vedea acele fire sau fire în sistem?
În acest articol vom lua un moment pentru a explica care sunt firele unui procesor sau numite fire în engleză sau fire de programare, pentru a identifica diferențele fundamentale dintre acestea și nucleele procesorului. Printre utilizatorii mai puțin experți și chiar cei mai avansați, există încă un pic de confuzie cu privire la acest subiect. De aceea, ne-am propus să clarificăm acești termeni în măsura posibilului.
Acest concept al procesării firelor nu este esențial de știut atunci când cumpărați un procesor pentru un utilizator normal. În majoritatea cazurilor, mai bine decât mai puțin, acest lucru este aproape întotdeauna adevărat. Acolo unde trebuie să știm care sunt firele, este în activitatea de dezvoltare a programului. În funcție de modul în care este programată și compilată o aplicație, aceasta va avea o execuție mai optimizată pentru procesoare cu mai multe fire decât nuclee. Și aici vom încerca să obținem explicația noastră.
Indice de conținut
Care sunt nucleele unui procesor
Vom începe prin a explica care sunt nucleele procesorului nostru, astfel vom avea aceste cunoștințe prealabile pentru a nu ne confunda.
Știm că un procesor este responsabil de efectuarea și executarea instrucțiunilor programelor care sunt încărcate în memoria RAM a computerului nostru. Practic toate instrucțiunile necesare pentru a efectua sarcinile obișnuite de pe computerul nostru, navigați, scrieți, vizualizați fotografii etc. În secțiunea fizică, un procesor este un circuit integrat format din milioane de tranzistoare care formează porți logice pentru a trece sau a nu trece biții de date sub formă de energie, fără alte detalii.
Ei bine, acest mic cip găzduiește module diferite pe care le putem numi nuclee, pe lângă alte elemente care nu ne interesează acum. Procesoarele cu câțiva ani în urmă aveau doar unul dintre aceste nuclee și erau capabile să proceseze o singură instrucțiune pe ciclu. Aceste cicluri sunt măsurate în Megahertz (MHz), cu cât este mai mult MHz, cu atât mai multe instrucțiuni le putem face în fiecare secundă.
Acum nu avem doar un singur nucleu, ci mai multe. Fiecare nucleu reprezintă un subprocesor, adică fiecare dintre aceste subprocesoare va executa una dintre aceste instrucțiuni, putând astfel executa mai multe dintre ele în fiecare ciclu de ceas cu un procesor multi-core. Dacă avem un procesor cu 4 nuclee, putem executa 4 instrucțiuni simultan în loc de unul singur. Deci, îmbunătățirea performanței este de patru ori. Dacă avem 6, atunci 6 instrucțiuni în același timp. Așa se face că procesoarele actuale sunt mult mai puternice decât cele mai vechi.
Și nu uitați, aceste nuclee sunt prezente fizic în procesorul nostru, nu este ceva virtual sau creat prin cod.
Ce sunt firele de procesare?
Firele, firele sau firele nu sunt o parte fizică a procesorului, cel puțin atunci când vine vorba de mai multe nuclee sau ceva de genul.
Putem defini un thread de procesare ca fluxul de control al datelor unui program. Este un mijloc care permite gestionarea sarcinilor unui procesor și a diferitelor nuclee ale acestuia într-un mod mai eficient. Datorită thread-urilor, unitățile minime de alocare, care sunt sarcinile sau procesele unui program, pot fi împărțite în bucăți pentru a optimiza timpul de așteptare al fiecărei instrucțiuni din coada procesului. Aceste bucăți se numesc fire sau fire.
Cu alte cuvinte, fiecare fir de procesare conține o parte a sarcinii care trebuie îndeplinită, ceva mai simplu de îndeplinit decât dacă introducem sarcina completă în nucleul fizic. În acest fel , procesorul este capabil să proceseze mai multe sarcini în același timp și simultan, de fapt, va putea să efectueze atâtea sarcini pe care le are fire, și de obicei există una sau două pentru fiecare nucleu. În procesoarele care au, de exemplu, 6 nuclee și 12 fire, vor putea împărți procesele în 12 sarcini diferite în loc de doar 6.
Acest mod de lucru face ca resursele sistemului să fie gestionate mai echitabil și mai eficient. Știi… el se desparte și vei câștiga din toată viața. Aceste procesoare se numesc multi-thread. Deocamdată, ceea ce trebuie să fim clar este că un procesor cu 12 fire nu va avea 12 nuclee, nucleele sunt ceva de origine fizică, iar firele sunt de origine logică.
Asta cu siguranță a fost oarecum abstract și greu de înțeles, așa că haideți să vedem cum se traduce dacă vorbim despre arhitectura unui program de pe computerul nostru.
Programe, procese și fire
Cu toții știm ce este un program, este un cod care este stocat în computerul nostru și care este destinat să îndeplinească o sarcină specifică. O aplicație este un program, un driver este, de asemenea, un program și chiar sistemul de operare este un program capabil să execute alte programe în interiorul său. Toate acestea sunt stocate în formă binară, deoarece procesorul înțelege doar cele și zerourile, curente / non-curente.
Procesele programului
Pentru a rula un program, acesta este încărcat în memorie, RAM. Acest program este încărcat de procese, care poartă codul său binar asociat și resursele de care are nevoie pentru a opera, care vor fi alocate „inteligent” de sistemul de operare.
Resursele de bază de care are nevoie un proces sunt un contor de programe și un teanc de înregistrări.
- Contor de programe (CP): se numește indicator de instrucțiuni și urmărește succesiunea instrucțiunilor care sunt procesate. Registre: este un depozit situat în procesor unde poate fi stocată o instrucțiune, o adresă de stocare sau orice alte date. Stack: este structura de date care stochează informațiile legate de instanțele pe care un program le are activ în computer.
Apoi, fiecare program este împărțit în procese și este stocat într-un anumit loc în memorie. În plus, fiecare proces rulează independent, iar acest lucru este foarte important de înțeles, deoarece acesta este modul în care procesorul și sistemul sunt capabili să execute mai multe sarcini în același timp, ceea ce numim un sistem multitasking. Acest sistem de procesare este vinovatul că putem continua să lucrăm pe computerul nostru, chiar dacă un program a fost blocat.
Firele unui proces
Aici apar filetele de procesare, numite fire în sistemele de operare. Un thread este unitatea de execuție a unui proces. Putem împărți procesul în fire și fiecare dintre ele va fi un fir de execuție.
Dacă un program nu este multi-thread, procesele din cadrul acestuia vor avea doar un thread, astfel încât acestea pot fi procesate doar la un moment dat. Dimpotrivă, dacă avem procese cu mai multe filete, acestea pot fi împărțite în mai multe bucăți și fiecare dintre aceste fire împărtășește resursele alocate procesului. Așa că am spus că multithreading este mai eficient.
În plus, fiecare fir are propriul său teanc de înregistrări, astfel încât două sau mai multe dintre ele pot fi procesate în același timp, spre deosebire de un singur proces, care va trebui să fie rulat simultan. Firele sunt sarcini mai simple care vă permit să rulați un proces în mod separat. Și aceasta este practic funcția finală a firelor de procesare. Cu cât sunt mai multe fire, cu atât diviziunea proceselor este mai mare și volumul calculelor simultane este mai mare și, prin urmare, este mai mare eficiența.
Încă nu am terminat, avem încă întrebarea pendinte despre Ce se întâmplă atunci cu un miez cu un fir dublu ? Am spus deja că fiecare nucleu este capabil să execute o singură instrucțiune simultan. CPU are un algoritm complex care împarte timpii de execuție în cel mai eficient mod posibil, atribuind astfel fiecărei sarcini un anumit interval de execuție. Schimbarea dintre sarcini este atât de rapidă, va da senzația că nucleul execută sarcini în paralel.
Putem vedea acele fire sau fire în sistem?
Nu într-un mod prea detaliat, dar da, le putem vedea, atât pe Windows cât și pe Mac.
În cazul Windows, va trebui să deschidem doar managerul de sarcini și să mergem la „ performanță ”. Apoi vom face clic pe linkul „ monitorizarea resurselor ” de mai jos. În această fereastră nouă vom avea fiecare proces împărțit în consum de procesor și thread, acestea vor fi firele.
În monitorul de activitate Mac, vom avea direct firele enumerate pe ecranul principal.
Aceasta concluzionează articolul nostru despre care sunt firele de procesare a procesorului. Cu siguranță este un subiect oarecum complex de explicat și destul de abstract, în special pentru utilizatorii care nu înțeleg pe deplin cum funcționează un procesor. Dar, în acest caz, avem vești bune, deoarece avem și un articol destul de bun care vorbește despre modul în care funcționează un procesor și cum se efectuează întregul ciclu de instrucțiuni.
Accesați articolele noastre despre:
Sperăm că totul a fost mai mult sau mai puțin clar și apreciem că ne-ați ales să știm mai multe despre acest subiect.
Care sunt părțile unui hard disk?

Vă explicăm care sunt părțile unui hard disk mecanic sau HDD. De la tavă, motoare, braț, discuri până la conectori. O modalitate bună de a ști cum funcționează și de ce sunt mai lente decât un SSD normal.
Care sunt nucleele unui procesor? și firele sau nucleele logice?

Le explicăm că sunt nucleele unui procesor. Diferența dintre unul fizic și altul logic și dacă merită cu adevărat.
Care sunt nucleele nuda de cuda și care este importanța lor

Care sunt Coresul CUDA și care este importanța lor? În acest articol vă explicăm într-un mod foarte simplu și de înțeles.