Quel algorithm de planification est utilisé sous Linux?

Récemment, dans une interview, on m'a posé des questions sur l'algorithm de planification utilisé par le operating system Linux. Quel est l'algorithm utilisé pourquoi?

En outre, quel algorithm est utilisé dans les systèmes d'exploitation en time réel et pourquoi?

Le planificateur de tâches Linux actuel s'appelle Completely Fair Scheduler (CFS). Vous devriez jeter un oeil à http://people.redhat.com/mingo/cfs-scheduler/sched-design-CFS.txt pour plus de détails. Le design est assez complexe et à mon avis pas adapté pour RTOS.

La planification fréquentielle monotone est une technique courante dans les systèmes time réel, car elle offre de solides garanties si certaines hypothèses sont respectées (par exemple, priorités statiques des tâches et time et taux d'exécution fixes). Il y a beaucoup d'autres algorithms et il y a eu beaucoup de searchs. Il s'agit donc essentiellement des propriétés dont vous avez besoin et de ce que vous savez de votre tâche et de ce qui est corrigé.

Je ne suis pas tout à fait sûr, que vous preniez en count la programmation d'E / S du kernel. Au cas où vous ne l'êtes pas: Ignorez cette réponse.

Wikipedia déclare que le CFG (complètement Fair Queuing) est par défaut depuis Kernel 2.6.18.

Sur mon openSUSE (Kernel 2.6.37 en cours d'exécution), je peux basculer entre le CFG, NOOP et Deadline .

J'espère que cela t'aides.

L'algorithm Round Robin est généralement utilisé dans les environnements de partage de time.