Algoritmo di pianificazione FCFS: cos'è, programma di esempio
⚡ Riepilogo intelligente
La pianificazione First Come First Serve esegue i processi esattamente nell'ordine in cui raggiungono la coda dei processi pronti, utilizzando un semplice approccio FIFO non preemptive che lo rende l'algoritmo di pianificazione della CPU più facile da implementare per un sistema operativo.

Cos'è il metodo "primo arrivato, primo servito"?
Primo arrivato, primo servito (FCFS) FCFS è un algoritmo di pianificazione del sistema operativo che esegue automaticamente le richieste e i processi in coda nell'ordine in cui arrivano. È l'algoritmo di pianificazione della CPU più semplice e basilare. In questo tipo di algoritmo, il processo che richiede per primo la CPU ottiene per primo l'allocazione della CPU. Questo viene gestito tramite una coda FIFO. L'acronimo FCFS sta per First Come First Serve (Primo arrivato, primo servito).
Quando un processo entra nella coda dei processi pronti, il suo PCB (Process Control Block) viene collegato alla coda. Pertanto, quando la CPU si libera, viene assegnata al processo in cima alla coda.
Caratteristiche del metodo FCFS
Le principali caratteristiche del metodo "Primo arrivato, primo servito" sono elencate di seguito:
- È una non preventivo algoritmo di pianificazione, in modo che un processo mantenga la CPU occupata fino al completamento del suo tempo di esecuzione.
- I lavori vengono sempre eseguiti in base all'ordine di arrivo.
- È facile da implementare e utilizzare.
- Questo metodo ha prestazioni scadenti e il tempo di attesa generale è piuttosto elevato.
Esempio di pianificazione FCFS
Un esempio concreto del metodo FCFS (First-Come, First-Served) è l'acquisto di un biglietto del cinema alla biglietteria. In questo algoritmo di pianificazione, le persone vengono servite in base all'ordine di arrivo in coda. La persona che arriva per prima acquista il biglietto, seguita dalla successiva. Questo processo continua fino a quando l'ultima persona in coda non ha acquistato il biglietto. Utilizzando questo algoritmo, il processo della CPU funziona in modo simile.
Come funziona FCFS? Calcolo del tempo medio di attesa
Per comprendere come l'algoritmo pianifica i processi, ecco un esempio di cinque processi che arrivano in momenti diversi. Ogni processo ha un tempo di esecuzione diverso.
| Processo | Tempo di scoppio | Orario di arrivo |
| P1 | 6 | 2 |
| P2 | 2 | 5 |
| P3 | 8 | 1 |
| P4 | 3 | 0 |
| P5 | 4 | 4 |
Utilizzando l'algoritmo di pianificazione FCFS, questi processi vengono gestiti come segue.
Passo 1) Il processo inizia con P4, che ha tempo di arrivo 0.
Passo 2) All'istante=1 arriva P3. P4 è ancora in esecuzione. Quindi, P3 viene mantenuto in coda.
Passo 3) Al tempo t=2, P1 arriva e viene mantenuto in coda.
Passo 4) Al tempo t=3, il processo P4 completa la sua esecuzione.
Passo 5) All'istante=4, P3, che è il primo in coda, inizia l'esecuzione.
Passo 6) Al tempo t=5, P2 arriva e viene messo in coda.
Passo 7) All'istante t=11, P3 completa la sua esecuzione.
Passo 8) All'istante t=11, P1 inizia l'esecuzione. Ha un tempo di esecuzione di 6, quindi completa l'esecuzione all'intervallo di tempo 17.
Passo 9) Al tempo t=17, P5 inizia l'esecuzione. Ha un tempo di esecuzione di 4, quindi completa l'esecuzione al tempo t=21.
Passo 10) All'istante t=21, P2 inizia l'esecuzione. Ha un tempo di esecuzione di 2, quindi completa l'esecuzione all'intervallo di tempo 23.
Passo 11) Ora calcoliamo il tempo medio di attesa per l'esempio precedente.
Waiting time = Start time - Arrival time
P4 = 0 – 0 = 0
P3 = 3 – 1 = 2
P1 = 11 – 2 = 9
P5 = 17 – 4 = 13
P2 = 21 – 5 = 16
Tempo medio di attesa = (0 + 2 + 9 + 13 + 16) / 5 = 40 / 5 = 8
Vantaggi dell'FCFS
Ecco i vantaggi e i benefici derivanti dall'utilizzo dell'algoritmo di pianificazione FCFS:
- È la forma più semplice di un Algoritmo di pianificazione della CPU.
- È facile da programmare.
- Segue un semplice ordine di arrivo, primo servito.
Svantaggi del FCFS
Ecco gli svantaggi e i punti deboli dell'utilizzo dell'algoritmo di pianificazione FCFS:
- Si tratta di un algoritmo di pianificazione della CPU non preemptive, quindi una volta che un processo è stato assegnato alla CPU, non la rilascerà finché non avrà terminato l'esecuzione.
- Il tempo medio di attesa è elevato.
- I processi brevi in fondo alla coda devono attendere che il processo lungo in testa termini.
- Non è una tecnica ideale per i sistemi time-sharing.
- A causa della sua semplicità, FCFS non è molto efficiente.












