Linux 2.6.x a trois différentes classes d'établissement de programme (scheduling) :
Cette classe est utilisée pour des processus normaux w/o RT. La plupart des processus sur un poste bureautique typique sont dans cette classe. Il y a une variété de schedulers disponibles pour cette classe.
original two-arrayed O(1) scheduler
Con Kolivas staircase scheduler
some single priority array schedulers
etc (il ya plusieurs schedulers pour le sous système d'entrée sortie
Ce qui est commun pour tous ces schedulers est qu'ils n'ont aucun impact sur les processus de la classe SCHED_FIFO ou de la classe SCHED_RR. Aussi longtemps que vos tâches audio seront éxécutées par la classe SCHED_FIFO, le choix du scheduler SCHED_OTHER n'aura aucun effet.
Cette classe est basée sur la priorité. Tous les processus utilisant SCHED_FIFO sont exécutés avant n'importe quel processus SCHED_OTHER.
Si un thread SCHED_FIFO a une priorité statique plus élevée qu'un autre alors il obtient le cpu en premier. SCHED_FIFO fonctionne sans timeslices. Ceci signifie qu'un processus de SCHED_FIFO commencé, s'éxécutera jusqu'à ce qu'il renonce au cpu volontairement ou à cause d'un processus ayant une priorité plus élevée.
Dans SCHED_RR, n'importe quel thread prioritaire élevé qui devient exécutable devient un thread de faible priorité. Essentiellement le scheduler définit des files d'attente, une pour chaque niveau de priorité.
Pour inspecter et défnir la classe de scheduler de certains processus il faut utiliser l'utilitaire chrt du paquet schedutils.
Quelques applications peuvent, cependant, définir la classe scheduling pour leurs propres threads, notamment jackd. Ils doivent être éxécutés en root ou doivent utiliser des capacités particulières, realtime-lsm par exemple.
| Précédent | Sommaire | Suivant |
| Latence PCI | Niveau supérieur | Realtime Linux Security module |