Stochastic fairness queueing
# Stochastic fairness queueing

Lo Stochastic Fairness Queuing (SFQ) è un algoritmo usato per lo scheduling e risulta particolarmente adatto quando la natura dei task è varia.

Considerando un generico sistema, cioè non dedicato ad una specifica applicazione, i task possono essere interattivi, batch o real-time hard, soft, periodici, pseudoperiodici o aperiodici.

## Funzione

SFQ permette di associare ad ogni tipologia di task uno specifico algoritmo di scheduling. SFQ è organizzato ad albero. Sul nodo radice vige uno scheduler generico. Ogni ramo è caratterizzato da uno scheduler adatto per la tipologia di task, per i quali la gestione viene demandata allo specifico ramo. Le risorse, in termini di tempo di CPU, sono distribuite tra i vari rami dallo scheduler del nodo radice. In questa rappresentazione le foglie dell'albero rappresentano i task.

## Vantaggi

* Il suo comportamento fairness (equo) evita problemi di starvation.
* Non richiede la conoscenza a priori del tempo necessario per l'esecuzione di un task.
* Stabilisce un limite superiore per il delay.
* Stabilisce un limite inferiore per il throughput.
* È adattabile al contesto ed alla tipologia di sistema su cui deve essere implementato.
