Esercitazioni

Quali sono i thread di un processore? differenze con i nuclei

Sommario:

Anonim

In questo articolo ci prenderemo un momento per spiegare quali sono i thread di un processore o anche chiamati thread in inglese o thread di programmazione, al fine di identificare le differenze fondamentali tra questi e i core del processore. Tra gli utenti meno esperti e anche più avanzati, c'è ancora un po 'di confusione su questo argomento. Ecco perché abbiamo deciso di chiarire questi termini nella misura del possibile.

Questo concetto di elaborazione dei thread non è essenziale da sapere quando si acquista un processore per un utente normale. Nella maggior parte dei casi, meglio più che meno, è quasi sempre vero. Dove dobbiamo sapere quali sono i thread, è nel lavoro di sviluppo del programma. A seconda di come un'applicazione è programmata e compilata, avrà un'esecuzione più ottimizzata per processori con più thread che core. Ed è qui che cercheremo di ottenere la nostra spiegazione.

Indice dei contenuti

Quali sono i core di un processore

Inizieremo spiegando quali sono i core del nostro processore, quindi avremo questa conoscenza precedente per non confonderci.

Sappiamo che un processore è responsabile dell'esecuzione e dell'esecuzione delle istruzioni dei programmi caricati nella memoria RAM del nostro computer. Praticamente tutte le istruzioni necessarie per eseguire le attività tipiche sul nostro PC, navigare, scrivere, visualizzare foto, ecc. Passano attraverso di esso. Nella sezione fisica, un processore è un circuito integrato costituito da milioni di transistor che formano porte logiche per passare o non passare i bit di dati sotto forma di energia, senza ulteriori indugi.

Bene, questo piccolo chip ospita diversi moduli che possiamo chiamare nuclei, oltre ad altri elementi che non ci interessano ora. Alcuni anni fa i processori avevano solo uno di questi nuclei e sono stati in grado di elaborare un'istruzione per ciclo. Questi cicli sono misurati in Megahertz (MHz), più MHz, più istruzioni possiamo fare ogni secondo.

Ora non abbiamo solo un core, ma diversi. Ogni core rappresenta un sottoprocessore, ovvero ciascuno di questi sottoprocessori eseguirà una di queste istruzioni, potendo così eseguirne diversi in ciascun ciclo di clock con una CPU multi-core. Se disponiamo di un processore a 4 core, possiamo eseguire 4 istruzioni contemporaneamente anziché una sola. Quindi il miglioramento delle prestazioni è quadruplicato. Se ne abbiamo 6, quindi 6 istruzioni contemporaneamente. Ecco come gli attuali processori sono molto più potenti di quelli più vecchi.

E ricorda, questi core sono fisicamente presenti nel nostro processore, non è qualcosa di virtuale o creato dal codice.

Cosa stanno elaborando i thread?

Thread, thread o thread non sono una parte fisica del processore, almeno quando si tratta di più core o qualcosa del genere.

Possiamo definire un thread di elaborazione come flusso di controllo dei dati di un programma. È un mezzo che consente di gestire le attività di un processore e dei suoi diversi core in modo più efficiente. Grazie ai thread, le unità di allocazione minima, che sono le attività o i processi di un programma, possono essere divise in parti per ottimizzare i tempi di attesa di ciascuna istruzione nella coda del processo. Questi blocchi sono chiamati thread o thread.

In altre parole, ogni thread di elaborazione contiene una parte del compito da svolgere, qualcosa di più semplice da svolgere rispetto a quando introduciamo il compito completo nel nucleo fisico. In questo modo la CPU è in grado di elaborare più attività contemporaneamente e contemporaneamente, infatti, sarà in grado di svolgere tutte le attività che ha i thread, e di solito ce ne sono una o due per ogni core. Nei processori che hanno ad esempio 6 core e 12 thread saranno in grado di dividere i processi in 12 compiti diversi anziché solo 6.

Questo modo di lavorare rende le risorse di sistema gestite in modo più equo ed efficiente. Sai… lui divide e vincerai per tutta la vita. Questi processori sono chiamati multi-thread. Per ora, ciò di cui dobbiamo essere chiari è che un processore con 12 thread non avrà 12 core, i core sono qualcosa di origine fisica e i thread qualcosa di origine logica.

Questo sicuramente è stato in qualche modo astratto e difficile da capire, quindi vediamo come si traduce se parliamo dell'architettura di un programma sul nostro computer.

Programmi, processi e thread

Sappiamo tutti cos'è un programma, è un codice memorizzato nel nostro computer e destinato a svolgere un compito specifico. Un'applicazione è un programma, un driver è anche un programma e persino il sistema operativo è un programma in grado di eseguire altri programmi al suo interno. Tutti sono memorizzati in forma binaria, poiché il processore comprende solo quelli e zeri, correnti / non correnti.

I processi del programma

Per eseguire un programma, viene caricato in memoria, RAM. Questo programma è caricato da processi che portano il suo codice binario associato e le risorse necessarie per operare, che saranno assegnati "in modo intelligente" dal sistema operativo.

Le risorse di base necessarie a un processo sono un contatore di programmi e una pila di record.

  • Program counter (CP): si chiama puntatore di istruzioni e tiene traccia della sequenza di istruzioni che vengono elaborate. Registri: è un magazzino situato nel processore in cui è possibile memorizzare un'istruzione, un indirizzo di archiviazione o qualsiasi altro dato. Stack: è la struttura di dati che memorizza le informazioni relative alle istanze che un programma ha attivo nel computer.

Quindi ogni programma è diviso in processi ed è memorizzato in un determinato posto nella memoria. Inoltre, ogni processo viene eseguito in modo indipendente, e questo è molto importante da capire perché è così che il processore e il sistema sono in grado di eseguire più attività contemporaneamente, ciò che chiamiamo un sistema multitasking. Questo sistema di elaborazione è il colpevole che possiamo continuare a lavorare sul nostro PC, anche se un programma è stato bloccato.

I fili di un processo

È qui che compaiono i thread di elaborazione, chiamati thread nei sistemi operativi. Un thread è l'unità di esecuzione di un processo. Possiamo dividere il processo in thread e ognuno di essi sarà un thread di esecuzione.

Se un programma non è multi-thread, i processi al suo interno avranno un solo thread, quindi possono essere elaborati solo per volta. Al contrario, se disponiamo di processi multi-thread, questi possono essere suddivisi in più parti e ciascuno di questi thread condivide le risorse assegnate al processo. Quindi abbiamo detto che il multithreading è più efficiente.

Inoltre, ogni thread ha il proprio stack di record in modo che due o più di essi possano essere elaborati contemporaneamente, a differenza di un singolo processo, che dovrà essere eseguito contemporaneamente. I thread sono attività più semplici che ti consentono di eseguire un processo in modo diviso. E questa è sostanzialmente la funzione finale dei thread di elaborazione. Maggiore è il numero di thread, maggiore è la divisione dei processi e maggiore è il volume dei calcoli simultanei e, quindi, maggiore è l'efficienza.

Non abbiamo ancora finito, abbiamo ancora la domanda in sospeso di cosa succede allora con un core con un doppio thread ? Abbiamo già detto che ogni kernel è in grado di eseguire una singola istruzione alla volta. La CPU ha un algoritmo complesso che divide i tempi di esecuzione nel modo più efficiente possibile, assegnando a ciascun task un determinato intervallo di esecuzione. Il cambiamento tra i compiti è così rapido che darà la sensazione che il nucleo esegua i compiti in parallelo.

Possiamo vedere quei thread o thread nel sistema?

Non in modo troppo dettagliato, ma sì, possiamo vederli, sia su Windows che su Mac.

Nel caso di Windows, dovremo solo aprire il task manager e andare su " performance ". Quindi faremo clic sul collegamento " monitor risorse " di seguito. In questa nuova finestra avremo ogni processo diviso in consumo di CPU e thread, questi saranno i thread.

Nel monitor dell'attività del Mac, avremo direttamente i thread elencati nella schermata principale.

Questo conclude il nostro articolo su cosa sono i thread di elaborazione della CPU. È certamente un argomento alquanto complesso da spiegare e piuttosto astratto, soprattutto per gli utenti che non comprendono appieno il funzionamento di un processore. Ma in questo caso abbiamo buone notizie perché abbiamo anche un buon articolo che parla di come funziona un processore e di come viene eseguito l'intero ciclo di istruzioni.

Visita i nostri articoli su:

Speriamo che tutto sia stato più o meno chiaro e apprezziamo che tu ci abbia scelto per saperne di più su questo argomento.

Esercitazioni

Scelta dell'editore

Back to top button