- Ce este concurența sau Single Core?
- Ce este execuția paralelă sau (multi-core)?
- DIFERENȚA PRINCIPALĂ
- Ce este un fir?
- Ce este Multithreading?
- Cum funcționează Multithreading?
- Ce este un nucleu de procesor?
- Care este principala problemă cu nucleul unic?
- Soluția oferită de multi-core:
- Avantajele procesorului cu mai multe nuclee
- Diferența dintre nucleu și procesor. Threads
- Ce este Hyper-Threading?
- Rezumat:
Ce este concurența sau Single Core?
În sistemele de operare, concurența este definită ca fiind capacitatea unui sistem de a rula două sau mai multe programe în faze de timp care se suprapun.
După cum puteți vedea, în orice moment există un singur proces în execuție. Prin urmare, concurența este doar o aproximare generalizată a execuției paralele reale. Acest tip de situație poate fi întâlnit în sistemele care au un procesor cu un singur nucleu.
În acest tutorial Concurrency, veți învăța
- Ce este Concurrency sau Single Core?
- Ce este execuția paralelă sau (Multi-Core)?
- Ce este thread-ul?
- Ce este Multithreading?
- Cum funcționează Multithreading-ul?
- Ce este CPU Core?
- Care este principala problemă cu un singur nucleu?
- Soluția oferită de Multi-Core:
- Beneficiile procesorului multi-core
- Diferența dintre Core vs. Threads
- Ce este Hyper-Threading?
Ce este execuția paralelă sau (multi-core)?
În execuția paralelă, sarcinile care trebuie îndeplinite de un proces sunt împărțite în subpărți, iar mai multe unități centrale de procesare (sau mai multe nuclee) procesează fiecare subtask exact în același timp.
După cum puteți vedea, în orice moment, toate procesele sunt în execuție. În realitate, subprocesele unui proces sunt cele care se execută în paralel, dar, pentru o mai bună înțelegere, le puteți vizualiza ca procese.
În consecință, paralelismul este modalitatea reală prin care mai multe sarcini pot fi procesate în același timp. Acest tip de situație poate fi întâlnit în sistemele care au procesoare multicore, ceea ce include aproape toate procesoarele moderne, comerciale.
DIFERENȚA PRINCIPALĂ
- Corele măresc cantitatea de muncă realizată la un moment dat, în timp ce firele de execuție îmbunătățesc randamentul, creșterea vitezei de calcul.
- Corele este o componentă hardware reală, în timp ce firul de execuție este o componentă virtuală care gestionează sarcinile.
- Corele utilizează comutarea conținutului în timp ce firele utilizează mai multe unități centrale de procesare pentru operarea a numeroase procese.
- Corele necesită doar o unitate de procesare a semnalelor în timp ce firele necesită mai multe unități de procesare.
Ce este un fir?
Un fir este o unitate de execuție în programarea concurentă. Multithreading-ul este o tehnică care permite unei unități centrale de procesare să execute mai multe sarcini ale unui proces în același timp. Aceste fire de execuție se pot executa individual în timp ce își împart resursele.
Ce este Multithreading?
Multithreading se referă la sarcina comună care rulează mai multe fire de execuție în cadrul unui sistem de operare. Acesta poate include mai multe procese de sistem.
Cum funcționează Multithreading?
De exemplu, majoritatea procesoarelor moderne suportă multithreading. O simplă aplicație de pe smartphone-ul dvs. vă poate oferi o demonstrație în direct a acestuia.
Când deschideți o aplicație care necesită preluarea unor date de pe internet, zona de conținut a aplicației este înlocuită de un spinner. Acesta se va roti până când datele sunt preluate și afișate.
În fundal, există două fire de execuție:
- Unul care preia datele dintr-o rețea și
- Unul care redă interfața grafică care afișează rotița
Ambele fire se execută unul după altul pentru a da iluzia unei execuții simultane.
Ce este un nucleu de procesor?
Un nucleu de procesor este partea din ceva centrală pentru existența sau caracterul său. În același mod, în sistemul informatic, CPU este denumit și nucleu.
Există, în principiu, două tipuri de nucleu de procesor:
- Procesor cu un singur nucleu
- Procesor cu mai multe nuclee
Care este principala problemă cu nucleul unic?
Există în principal două probleme cu nucleul unic.
- Pentru a executa sarcinile mai rapid, trebuie să creșteți timpul de ceas.
- Creșterea timpului de ceas crește consumul de energie și disiparea căldurii la un nivel extrem de ridicat, ceea ce face ca procesorul să fie ineficient.
Soluția oferită de multi-core:
- Crearea a două nuclee sau mai multe pe aceeași matrice pentru a crește puterea de procesare, menținând în același timp viteza de ceas la un nivel eficient.
- Un procesor cu două nuclee care rulează la o viteză eficientă poate procesa instrucțiunile cu o viteză similară procesorului cu un singur nucleu. Viteza sa de ceas este dublă, însă procesul multicore consumă mai puțină energie.
Avantajele procesorului cu mai multe nuclee
Iată câteva avantaje ale procesorului multicore:
- Mai mulți tranzistori la alegere
- Conexiuni mai scurte
- Capacitate mai mică
- Un circuit mic poate funcționa la viteză mare
Diferența dintre nucleu și procesor. Threads
Parametrii | Core | Threads |
Definiție | Corele PCU înseamnă componenta hardware propriu-zisă. | Threads se referă la componenta virtuală care gestionează sarcinile. |
Proces | Unitatea centrală de procesare este alimentată cu sarcini de către un fir. Prin urmare, acesta accesează al doilea fir numai atunci când informațiile trimise de primul fir nu sunt fiabile. | Există multe variante diferite ale modului în care CPU poate interacționa cu mai multe fire de execuție. |
Implementare | Realizat prin operația de intercalare | Realizat prin suita de CPU-uri multiple |
Beneficiu | Crește cantitatea de muncă realizată la un moment dat. | Îmbunătățirea randamentului, creșterea vitezei de calcul. |
Utilizează | Core folosește comutarea conținutului | Utilizează mai multe unități centrale de procesare pentru operarea a numeroase procese. |
Sunt necesare unități de procesare | Necesită doar unitatea de procesare a semnalului. | Este nevoie de mai multe unități de procesare. |
Exemplu | Executarea mai multor aplicații în același timp. | Executarea unui web crawler pe un cluster. |
Ce este Hyper-Threading?
Hyper-threading a fost primul efort al Intel de a aduce calculul paralel pe PC-urile utilizatorilor finali. A fost folosit pentru prima dată pe procesoarele desktop cu Pentium 4 în 2002.
Pentium 4 de la acea vreme avea doar un singur nucleu de procesor. Prin urmare, acesta efectua doar o singură sarcină și nu reușea să efectueze niciun tip de operații multiple.
Un singur CPU cu hyper-threading apare ca două CPU-uri logice pentru un sistem de operare. În acest caz, CPU-ul este unic, dar sistemul de operare consideră două CPU-uri pentru fiecare nucleu, iar hardware-ul CPU are un singur set de resurse de execuție pentru fiecare nucleu CPU.
Din acest motiv, CPU presupune ca având mai multe nuclee decât are, iar sistemul de operare presupune două CPU pentru fiecare nucleu de CPU unic.
Rezumat:
- Un fir de execuție este o unitate de execuție în programarea concurentă.
- Multithreading se referă la sarcina comună care rulează mai multe fire de execuție în cadrul unui sistem de operare
- Astăzi, multe unități centrale de procesare moderne suportă multithreading
- Hyper-threading a fost primul efort al Intel de a aduce calculul paralel pe PC-urile utilizatorilor finali.
- Un nucleu de procesor este partea din ceva centrală pentru existența sau caracterul său
- În, Sistemul de operare concurența este definită ca fiind capacitatea unui sistem de a rula două sau mai multe programe în faze temporale suprapuse.
- În execuția paralelă, sarcinile care trebuie îndeplinite de un proces sunt împărțite în subpărți.
- Principala problemă a procesorului cu un singur nucleu este că, pentru a executa sarcinile mai rapid, trebuie să se mărească timpul de ceas.
- Multicore rezolvă această problemă prin crearea a două nuclee sau mai multe pe aceeași matrice pentru a crește puterea de procesare și, de asemenea, menține viteza de ceas la un nivel eficient.
- Cel mai mare beneficiu al sistemului multicore este că vă ajută să creați mai mulți tranzistori pe alegere
- Corele CPU înseamnă componenta hardware reală, în timp ce firele se referă la componenta virtuală care gestionează sarcinile.
.