Tutorials

Wat zijn de threads van een processor? verschillen met de kernen

Inhoudsopgave:

Anonim

In dit artikel gaan we even de tijd nemen om uit te leggen wat de threads zijn van een processor of ook wel threads genoemd in het Engels of het programmeren van threads, om de fundamentele verschillen tussen deze en de processorcores te identificeren. Bij de minder ervaren en zelfs de meer gevorderde gebruikers is er nog nogal wat verwarring over dit onderwerp. Daarom hebben we geprobeerd deze voorwaarden zoveel mogelijk te verduidelijken.

Dit concept van het verwerken van threads is niet essentieel om te weten bij het kopen van een processor voor een normale gebruiker. In de meeste gevallen, beter meer dan minder, is dat bijna altijd het geval. Waar we wel moeten weten wat de threads zijn, is in het programma-ontwikkelingswerk. Afhankelijk van hoe een applicatie is geprogrammeerd en gecompileerd, zal deze een meer geoptimaliseerde uitvoering hebben voor processors met meer threads dan cores. En dit is waar we zullen proberen om onze uitleg te krijgen.

Inhoudsindex

Wat zijn de kernen van een processor

We zullen beginnen met uit te leggen wat de kernen van onze processor zijn, dus we zullen deze voorkennis hebben om niet in de war te raken.

We weten dat een processor verantwoordelijk is voor het uitvoeren en uitvoeren van de instructies van de programma's die in het RAM-geheugen van onze computer zijn geladen. Vrijwel alle instructies die nodig zijn om de typische taken op onze pc uit te voeren, te navigeren, te schrijven, foto's te bekijken, etc. gaan er doorheen. In de fysieke sectie is een processor een geïntegreerd circuit dat bestaat uit miljoenen transistors die logische poorten vormen om de databits al dan niet in de vorm van energie door te geven, zonder verder oponthoud.

Welnu, deze kleine chip bevat verschillende modules die we kernen kunnen noemen, naast andere elementen waar we nu niet in geïnteresseerd zijn. Processors van een paar jaar geleden hadden slechts één van deze kernen en konden één instructie per cyclus verwerken. Deze cycli worden gemeten in Megahertz (MHz), hoe meer MHz, hoe meer instructies we elke seconde kunnen doen.

Nu hebben we niet slechts één kern, maar meerdere. Elke kern vertegenwoordigt een subverwerker, dat wil zeggen dat elk van deze subverwerkers een van deze instructies zal uitvoeren, waardoor hij er in elke klokcyclus meerdere van kan uitvoeren met een multi-core CPU. Als we een 4-core processor hebben, kunnen we 4 instructies tegelijkertijd uitvoeren in plaats van slechts één. De prestatieverbetering is dus verviervoudigd. Als we er 6 hebben, dan 6 instructies tegelijk. Dit is hoe huidige processors veel krachtiger zijn dan oudere.

En vergeet niet dat deze kernen fysiek aanwezig zijn in onze processor, het is niet iets virtueels of gemaakt door code.

Wat zijn verwerkingsthreads?

Threads, threads of threads zijn geen fysiek onderdeel van de processor, niet in ieder geval als het gaat om meer kernen of zoiets.

We kunnen een verwerkingsdraad definiëren als de gegevensbeheerstroom van een programma. Het is een middel waarmee de taken van een processor en zijn verschillende cores op een efficiëntere manier kunnen worden beheerd. Dankzij threads kunnen de minimale toewijzingseenheden, de taken of processen van een programma, worden onderverdeeld in brokken om de wachttijden van elke instructie in de proceswachtrij te optimaliseren. Deze brokken worden threads of threads genoemd.

Met andere woorden, elke verwerkingsdraad bevat een deel van de uit te voeren taak, iets eenvoudiger uit te voeren dan wanneer we de volledige taak in de fysieke kern introduceren. Op deze manier kan de CPU meerdere taken tegelijkertijd verwerken en in feite kan hij evenveel taken uitvoeren als er threads zijn, en normaal zijn er één of twee voor elke kern. In de processors die bijvoorbeeld 6 cores en 12 threads hebben , kunnen ze de processen in 12 verschillende taken verdelen in plaats van slechts 6.

Door deze manier van werken worden de systeembronnen eerlijker en efficiënter beheerd. Weet je… hij deelt en je wint van al het leven. Deze processors worden multi-threaded genoemd. Voor nu moeten we duidelijk zijn dat een processor met 12 threads geen 12 cores heeft, de cores iets van fysieke oorsprong zijn en de threads iets van logische oorsprong.

Dat was zeker enigszins abstract en moeilijk te begrijpen, dus laten we eens kijken hoe het zich vertaalt als we het hebben over de architectuur van een programma op onze computer.

Programma's, processen en threads

We weten allemaal wat een programma is, het is een code die op onze computer is opgeslagen en die bestemd is om een ​​specifieke taak uit te voeren. Een applicatie is een programma, een stuurprogramma is ook een programma en zelfs het besturingssysteem is een programma dat andere programma's erin kan uitvoeren. Ze worden allemaal in binaire vorm opgeslagen, omdat de processor alleen enen en nullen begrijpt, huidige / niet-huidige.

De processen van het programma

Om een ​​programma uit te voeren, wordt het in het geheugen, RAM, geladen. Dit programma wordt geladen door processen die de bijbehorende binaire code bevatten en de middelen die het nodig heeft om te werken, die "intelligent" worden toegewezen door het besturingssysteem.

De basisbronnen die een proces nodig heeft, zijn een programmateller en een stapel records.

  • Programmateller (CP): het wordt een instructiepointer genoemd en houdt de volgorde bij van de instructies die worden verwerkt. Registers: het is een magazijn in de processor waar een instructie, een opslagadres of andere gegevens kunnen worden opgeslagen. Stack: het is de gegevensstructuur die de informatie opslaat die betrekking heeft op de instanties die een programma actief heeft op de computer.

Vervolgens wordt elk programma onderverdeeld in processen en wordt het op een bepaalde plaats in het geheugen opgeslagen. Elk proces draait ook onafhankelijk, en dit is erg belangrijk om te begrijpen, omdat dit is hoe de processor en het systeem in staat zijn om meerdere taken tegelijkertijd uit te voeren, wat we een multitasking- systeem noemen. Dit verwerkingssysteem is de boosdoener dat we kunnen blijven werken op onze pc, zelfs als een programma is geblokkeerd.

De draden van een proces

Hier verschijnen de verwerkingsthreads, threads genoemd in besturingssystemen. Een thread is de eenheid van uitvoering van een proces. We kunnen het proces in threads verdelen, en elk van hen zal een uitvoeringsdraad zijn.

Als een programma geen multi-thread is, hebben de processen daarin slechts één thread, dus ze kunnen slechts in één keer worden verwerkt. Integendeel, als we multi-threaded processen hebben, kunnen deze in verschillende stukken worden verdeeld en elk van die threads deelt de middelen die aan het proces zijn toegewezen. Dus we zeiden dat multithreading efficiënter is.

Bovendien heeft elke thread zijn eigen stapel records, zodat er twee of meer tegelijkertijd kunnen worden verwerkt, in tegenstelling tot een enkel proces dat in één keer moet worden uitgevoerd. Threads zijn eenvoudigere taken waarmee u een proces op een gesplitste manier kunt uitvoeren. En dit is eigenlijk de laatste functie van de verwerkingsdraden. Hoe meer threads, hoe groter de verdeling van processen en hoe groter het volume van gelijktijdige berekeningen en dus hoe groter de efficiëntie.

We zijn nog niet klaar, we hebben nog de hangende vraag Wat gebeurt er dan met een kern met een dubbele draad ? We hebben al gezegd dat elke kernel in staat is om een ​​enkele instructie tegelijk uit te voeren. De CPU heeft een complex algoritme dat de uitvoeringstijden op de meest efficiënte manier verdeelt, waardoor elke taak een bepaald uitvoeringsinterval krijgt toegewezen. De wisseling tussen taken is zo snel dat het het gevoel geeft dat de kern taken parallel uitvoert.

Kunnen we die threads of threads in het systeem zien?

Niet op een te gedetailleerde manier, maar ja, we kunnen ze zien, zowel op Windows als op Mac.

In het geval van Windows hoeven we alleen de taakbeheerder te openen en naar " prestaties " te gaan. Vervolgens klikken we op de link “ resource monitor ” hieronder. In dit nieuwe venster hebben we elk proces onderverdeeld in CPU-verbruik en threads, dit zijn de threads.

In de Mac-activiteitenmonitor hebben we direct de threads op het hoofdscherm.

Dit concludeert ons artikel over wat CPU-verwerkingsthreads zijn. Het is zeker een ietwat complex onderwerp om uit te leggen en vrij abstract, vooral voor gebruikers die niet volledig begrijpen hoe een processor werkt. Maar in dit geval hebben we goed nieuws, want we hebben ook een redelijk goed artikel over hoe een processor werkt en hoe de hele instructiecyclus wordt uitgevoerd.

Bezoek onze artikelen op:

We hopen dat alles min of meer duidelijk is geweest en we stellen het op prijs dat u ons heeft uitgekozen om meer over dit onderwerp te weten.

Tutorials

Bewerkers keuze

Back to top button