2013-08-26 3 views
1

Lorsque nous écrivons un programme, nous ne spécifions pas la nature du processus comme s'il est en temps réel, interactif ... J'ai lu que le noyau Linux fait la programmation basée sur le nature du processus. Impossible de trouver un article expliquant comment Linux décide de cela. Ce serait bien que quelqu'un puisse donner quelques infos. La question n'a qu'un intérêt académique.Comment linux scheduler décide un processus en temps réel, interactif, par lots

J'ai lu que je peux utiliser l'appel système sched_setscheduler pour définir le planificateur. Mais que se passe-t-il quand l'appel n'est pas fait?

Comment le planificateur décide-t-il qu'un processus est interactif/batch?

+0

Vous n'écrivez pas de processus. Vous écrivez le code source, plus tard peut-être compilé à un programme binaire qui est exécuté. –

+0

@BasileStarynkevitch Corrigé: 0 – user567879

Répondre

0

Ok. Trouvé la réponse de this link.

Les bonus de priorité dynamique et les pénalités sont basés sur l'interactivité heuristiques. Cette heuristique est mise en œuvre en gardant une trace de combien de tâches de temps passent dormir (probablement bloqué sur I/O) par opposition à en cours d'exécution. Les tâches liées aux E/S tendent à dormir un peu car elles bloquent les E/S, alors que les tâches liées aux CPU ne dorment que rarement car elles bloquent rarement les E/S . Très souvent, les tâches sont au milieu et ne sont pas entièrement liées à l'UC ou liées aux E/S, donc l'heuristique produit une sorte d'échelle au lieu d'une simple étiquette binaire (liée aux E/S ou liée aux CPU).

3

Lorsque sched_setscheduler n'est pas appelé, la stratégie d'ordonnancement par défaut est utilisée, à savoir SCHED_OTHER. Cela signifie que l'ordonnanceur est un partage à tour de rôle/temps, en d'autres termes: les threads sont exécutés en mode round robin, et la partie temps partagé signifie que parfois les tâches seront échangées (préemptées) si elles n'abandonnent pas volontairement le cpu afin de permettre aux autres threads d'avoir du temps d'exécution. De plus, il n'y a pas de notion de priorité processus/thread avec cette politique d'ordonnancement.

http://linux.die.net/man/2/sched_setscheduler

Questions connexes