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 !
---------------
Pas de signature.