Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorica

Concorrenza e Parallelismo

Differenze fondamentali tra l'esecuzione concorrente su singolo core (interleaving) e il parallelismo hardware multi-core.

1. Il Concetto di Concorrenza (Concurrency)

La concorrenza descrive una struttura di programma o un sistema in cui più attività logiche sembrano progredire simultaneamente. Tuttavia, su un singolo processore mono-core, questo avviene tramite l'interleaving (alternanza rapida): il sistema operativo alterna l'esecuzione dei processi assegnando brevi quanti di tempo (Time Slicing), dando all'utente l'illusione della simultaneità.

Un sistema è concorrente se può gestire più di un task in corso di esecuzione senza che uno debba necessariamente attendere la conclusione completa dell'altro prima che il successivo possa iniziare.

2. Il Concetto di Parallelismo (Parallelism)

Il parallelismo, d'altra parte, richiede hardware fisico multi-core o multiprocessore. Significa che due o più calcoli o istruzioni vengono eseguiti letteralmente nello stesso istante temporale su core differenti del processore.

Legge di Amdahl e Speedup: Lo speedup teorico ottenibile dall'esecuzione parallela dipende dalla frazione di codice parallelizzabile ($P$): $$\text{Speedup} \le \frac{1}{(1 - P) + \frac{P}{N}}$$ dove $N$ è il numero di core disponibili.

3. Simulatore Interattivo: Concorrenza vs Parallelismo

Confronta visivamente come un processore a Singolo Core gestisce la concorrenza tramite interleaving rispetto a un processore Dual-Core che esegue task in vero parallelismo.

cpu-benchmark@nexus-core:~# Concurrency vs Parallelism Visualizer

Singolo Core (Concorrenza / Interleaving)

Core 0: Inattivo

I task Task-A e Task-B si alternano a turno sullo stesso core.

Multi-Core (Parallelismo Reale)

Core 0: Inattivo
Core 1: Inattivo

Task-A e Task-B vengono eseguiti contemporaneamente su core separati.