Scheduling I/O
# Scheduling I/O

Lo scheduling I/O ("scheduling di input/output") è il metodo che i sistemi operativi utilizzano per decidere in quale ordine le operazioni di I/O richieste devono essere sottoposte al volume di immagazzinamento. Talvolta viene indicato con l'espressione disk scheduling.

## Scopo

Seguono alcuni dei compiti principali dello scheduler I/O:

* minimizzare il seek time, ovvero il tempo per posizionare la testina sulla traccia corretta;
* dare priorità alle richieste di I/O di certi processi;
* garantire equità, ovvero assicurarsi che il disco disponga di una banda per ciascun processo ed evitare il fenomeno di starvation.

## Algoritmi

Fra gli algoritmi di scheduling più noti troviamo:

* FCFS
* Code di priorità
* LIFO
* Shortest seek first (SSF), o shortest seek time first (SSTF)
* Algoritmo dell'ascensore (elevator algorithm), noto anche come SCAN, e le sue varianti:
   * C-SCAN
   * FSCAN
   * N-Step-SCAN
