Ordonnanceur et modes d'exécution - Divers - Programmation
Marsh Posté le 07-06-2008 à 13:52:23
Titprem a écrit : Je poste ici, car je pense que c'est le meilleur endroit pour trouver les réponses à mes questions. |
google par exmple.
user.it.uu.se/~yi/courses/grad/fulltext.pdf
http://en.wikipedia.org/wiki/Preemptive_multitasking
1°/ Ça dépend de comment ton noyau est conçus.
2°/ En même temps c'est soit ça soit faire du mono-tâche en gros.
Marsh Posté le 02-06-2008 à 19:09:45
Je poste ici, car je pense que c'est le meilleur endroit pour trouver les réponses à mes questions.
L'ordonnanceur gère le roulement des processus vis-à-vis de l'utilisation du CPU (qui ne peut traiter qu'une instruction à la fois).
Hypothèses :
1) L'ordonnanceur un processus du noyau
2) L'ordonnanceur s'exécute exclusivement en mode noyau
J'ai deux questions :
1) Comment le processus ordonnanceur est-il géré pour accéder au processeur ? S'inclut-il lui-même dans la liste des processus à faire tourner sur le processeur ? Dans ce cas, comment la liste des processus à faire tourner est-elle mise à jour ?
Ou est-il ponctuellement appelé, par exemple lors d'une interruption ou d'un appel système ? Ou est-ce systématique, à chaque fois qu'un processus rend la main (fin de son quantum de temps) ?
2) Plus généralement, l'ordonnanceur étant (a priori) assez souvent appelé, il y a fréquemment de couteux changements de contexte (puisque l'ordonnanceur s'exécute en mode noyau, alors que les autres processus s'exécute en mode utilisateur). Qu'en est-il des performances ?
(processus élu 1 => ordonnanceur => processus élu 2 => ordonnanceur => ...)
Je ne parviens à trouver de réponses à ces questions.
Merci pour votre aide !
Message édité par Titprem le 02-06-2008 à 19:14:17
---------------
Pas de signature.