1. Che cos'è un Processo?
In un sistema operativo moderno, un processo non è semplicemente un file eseguibile salvato su disco, ma un'istanza dinamica di un programma in corso di esecuzione. Il sistema operativo gestisce ciascun processo assegnandogli risorse dedicate e tracciandone lo stato attraverso una struttura dati denominata PCB (Process Control Block), che include:
- PID (Process ID): Identificativo univoco numerico del processo.
- Stato del Processo: Nuovo (New), Pronto (Ready), In Esecuzione (Running), In Attesa (Waiting/Blocked), Terminato (Terminated).
- Registri della CPU e Contesto: Valori attuali di Program Counter (PC), stack pointer e registri generali.
- Informazioni sulla Memoria: Tabelle delle pagine, segmenti di codice (Text), dati globali (Data) e heap/stack.
2. Dal Processo al Thread (Lightweight Process)
Un processo tradizionale possiede un singolo flusso di esecuzione sequenziale. Tuttavia, applicazioni complesse (come browser web o suite di montaggio video) richiedono di eseguire più attività in parallelo (es. scaricare un file mentre si renderizza una pagina). Per evitare l'alto costo della creazione di interi processi indipendenti (che richiedono spazi di memoria isolati), si introducono i Thread:
- Condivisione delle risorse: I thread appartenenti allo stesso processo condividono lo spazio di memoria globale, i file aperti e le variabili globali.
- Contesto privato: Ciascun thread possiede un proprio Program Counter, un set di registri dedicato e uno stack d'esecuzione autonomo.
3. Simulatore Interattivo: Gestore di Processi e Thread
Usa il simulatore sottostante per creare nuovi processi di sistema e aggiungere thread interni monitorandone l'allocazione.
Processi Attivi (PID)
Metriche del Sistema
Processi Totali: 2
Thread Totali: 3
Carico CPU (Media): 1.4%
Clicca sui pulsanti per simulare l'esecuzione di nuove entità nel kernel.