1. Il Ruolo dello Scheduler della CPU
Quando più processi si trovano nello stato Ready in attesa di essere eseguiti, lo Short-Term Scheduler (o CPU Scheduler) del sistema operativo deve decidere quale processo servire per primo. L'obiettivo principale è massimizzare l'utilizzo della CPU, aumentare il throughput e minimizzare il tempo di attesa e il tempo di risposta (Turnaround Time).
2. Principali Algoritmi di Scheduling
- FCFS (First-Come, First-Served): Il primo processo che richiede la CPU viene servito per primo. È semplice da implementare tramite una coda FIFO, ma soffre del Convoy Effect (processi brevi bloccati da processi lunghi).
- SJF (Shortest Job First): Assegna la CPU al processo con il minor tempo di esecuzione stimato (Burst Time). Garantisce il tempo di attesa medio minimo, ma richiede di conoscere in anticipo la durata del processo.
- Round Robin (RR): Ciascun processo riceve un piccolo intervallo di tempo uniforme di CPU chiamato quanto di tempo (Time Quantum). Scaduto il quanto, il processo viene interrotto e spostato in coda, garantendo equità e reattività nei sistemi interattivi.
- Priority Scheduling: Ogni processo è associato a una priorità; la CPU viene assegnata al processo con priorità più alta (può essere con o senza preemption).
3. Simulatore Interattivo dei Diagrammi di Gantt
Seleziona l'algoritmo di scheduling e simula l'esecuzione di un set di processi predefiniti visualizzando il diagramma di Gantt e i tempi medi.
Processi in coda di test: P1 (Burst: 8ms), P2 (Burst: 4ms), P3 (Burst: 2ms)