Cos’è la Concurrency o Single Core?

Nei sistemi operativi, la concurrency è definita come la capacità di un sistema di eseguire due o più programmi in fasi di tempo sovrapposte.

Esecuzione concorrente con time slicing

Come potete vedere, in ogni momento, c’è solo un processo in esecuzione. Pertanto, la concorrenza è solo un’approssimazione generalizzata dell’esecuzione parallela reale. Questo tipo di situazione si può trovare nei sistemi che hanno un processore single-core.

In questo tutorial sulla concorrenza, imparerai

  • Che cos’è la concorrenza o il single core?
  • Che cos’è l’esecuzione parallela o (Multi-Core)?
  • Che cos’è il thread?
  • Cos’è il Multithreading?
  • Come funziona il Multithreading?
  • Cos’è il Core della CPU?
  • Qual è il problema principale con il Single Core?
  • La soluzione fornita dal Multi-Core:
  • Benefici del processore multi-core
  • Differenza tra Core e Threads
  • Cos’è l’Hyper-Threading?

Cos’è l’esecuzione parallela o (Multi-Core)?

Nell’esecuzione parallela, i compiti che devono essere eseguiti da un processo sono suddivisi in sottoparti, e CPU multiple (o core multipli) elaborano ogni sottocompito esattamente allo stesso tempo.

Esecuzione parallela

Come potete vedere, in qualsiasi momento, tutti i processi sono in esecuzione. In realtà, sono le sotto-attività di un processo che vengono eseguite in parallelo, ma per una migliore comprensione, è possibile visualizzarle come processi.

Quindi, il parallelismo è il modo reale in cui più compiti possono essere elaborati allo stesso tempo. Questo tipo di situazione si può trovare in sistemi con processori multicore, che include quasi tutti i moderni processori commerciali.

LA DIFFERENZA CHIAVE

  • I core aumentano la quantità di lavoro svolto alla volta, mentre i thread migliorano il throughput, la velocità di calcolo.
  • I core sono componenti hardware reali, mentre il thread è un componente virtuale che gestisce i compiti.
  • I core usano la commutazione di contenuto mentre i thread usano CPU multiple per operare numerosi processi.
  • I core richiedono solo un’unità di processo del segnale mentre i thread richiedono unità di elaborazione multiple.

Che cos’è il thread?

Un thread è un’unità di esecuzione nella programmazione concorrente. Il multithreading è una tecnica che permette ad una CPU di eseguire molti compiti di un processo allo stesso tempo. Questi thread possono essere eseguiti individualmente mentre condividono le loro risorse.

Cos’è il Multithreading?

Multithreading si riferisce al compito comune che esegue più thread di esecuzione all’interno di un sistema operativo. Può includere più processi di sistema.

Come funziona il multithreading?

Per esempio, la maggior parte delle CPU moderne supporta il multithreading. Una semplice applicazione sul tuo smartphone può darti una dimostrazione dal vivo dello stesso.

Quando aprite un’app che richiede che alcuni dati vengano recuperati da internet, l’area del contenuto dell’app viene sostituita da una trottola. Questo ruoterà fino a quando i dati saranno recuperati e visualizzati.

In background, ci sono due thread:

  • Uno che recupera i dati da una rete, e
  • Uno che rende la GUI che visualizza lo spinner

Entrambi questi thread vengono eseguiti uno dopo l’altro per dare l’illusione di esecuzione simultanea.

Che cos’è il CPU Core?

Un CPU core è la parte di qualcosa centrale per la sua esistenza o carattere. Allo stesso modo, nel sistema informatico, la CPU è anche chiamata core.

Ci sono fondamentalmente due tipi di processore core:

  1. Processore Single-Core
  2. Processore Multi-Core

Qual è il problema principale del Single Core?

Ci sono principalmente due problemi con il Single Core.

  • Per eseguire i compiti più velocemente, è necessario aumentare il tempo di clock.
  • Aumentare il tempo di clock aumenta il consumo di energia e la dissipazione di calore ad un livello estremamente alto, il che rende il processore inefficiente.

La soluzione fornita dal Multi-Core:

  • Creare due o più core sullo stesso stampo per aumentare la potenza di elaborazione mentre mantiene anche la velocità di clock a un livello efficiente.
  • Un processore con due core a una velocità efficiente può elaborare le istruzioni con una velocità simile al processore single-core. La sua velocità di clock è doppia, ma il processo multicore consuma meno energia.

Benefici del processore multicore

Ecco alcuni vantaggi del processore multicore:

  • Più transistor per scelta
  • Connessioni più corte
  • Capacità inferiore
  • Un piccolo circuito può lavorare a velocità elevata

Differenza tra Core vs. Threads

Parametri Core Threads
Definizione I core della PCU indicano il componente hardware effettivo. Threads si riferisce al componente virtuale che gestisce i compiti.
Processo La CPU viene alimentata da un thread. Pertanto, accede al secondo thread solo quando le informazioni inviate dal primo thread non sono affidabili. Ci sono molte varianti diverse di come la CPU può interagire con più thread.
Implementazione Realizzata attraverso l’operazione di interleaving Eseguita attraverso l’utilizzo di più CPU
Beneficio Aumentare la quantità di lavoro svolto alla volta. Migliorare il rendimento, la velocità di calcolo.
Fare uso di Core utilizza la commutazione di contenuto Utilizza più CPU per far funzionare numerosi processi.
Opzioni di processo richieste Richiede solo l’unità di processo del segnale. Richiede più unità di elaborazione.
Esempio Eseguire più applicazioni allo stesso tempo. Eseguire il web crawler su un cluster.

Cos’è l’Hyper-Threading?

Hyper-threading è stato il primo sforzo di Intel per portare il calcolo parallelo sui PC degli utenti finali. Fu usato per la prima volta sulle CPU desktop con il Pentium 4 nel 2002.

I Pentium 4 a quel tempo avevano solo un singolo core della CPU. Pertanto, esegue solo un singolo compito e non riesce ad eseguire alcun tipo di operazioni multiple.

Una singola CPU con hyper-threading appare come due CPU logiche per un sistema operativo. In questo caso, la CPU è singola, ma il sistema operativo considera due CPU per ogni core, e l’hardware della CPU ha un singolo set di risorse di esecuzione per ogni core della CPU.

Quindi, la CPU assume come se avesse più core di quanti ne abbia, e il sistema operativo assume due CPU per ogni singolo core della CPU.

Riassunto:

  • Un thread è un’unità di esecuzione nella programmazione concorrente.
  • Il multithreading si riferisce al compito comune che esegue più thread di esecuzione all’interno di un sistema operativo
  • Oggi molte CPU moderne supportano il multithreading
  • L’hyper-threading fu il primo sforzo della Intel per portare il calcolo parallelo sui PC degli utenti finali.
  • Un nucleo di CPU è la parte di qualcosa centrale per la sua esistenza o carattere
  • In, Sistema Operativo la concurrency è definita come la capacità di un sistema di eseguire due o più programmi in fasi temporali sovrapposte.
  • Nell’esecuzione parallela, i compiti che devono essere eseguiti da un processo sono suddivisi in sottoparti.
  • Il problema principale del processore single-core è che per eseguire i compiti più velocemente, è necessario aumentare il tempo di clock.
  • Multicore risolve questo problema creando due o più core sullo stesso die per aumentare la potenza di elaborazione, e mantiene anche la velocità di clock ad un livello efficiente.
  • Il più grande vantaggio del sistema multicore è che aiuta a creare più transistor per scelta
  • I core della CPU indicano il componente hardware effettivo mentre i thread si riferiscono al componente virtuale che gestisce i compiti.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.