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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]- 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.