Dans quel contexte Kernel Thread s'exécute sous Linux?
Je suis novice pour le Noyau Linux.
Je sais qu'il y a deux contexte
1. Contexte de processus s'exécutant dans l'espace utilisateur ou dans l'Espace Noyau (par ex: dans le cadre de l'appel Système)
2. Interrompre Contexte
Dans ce contexte de Thread du Noyau (non relié à n'importe quel Utilisateur Thread, par ex:rincer la tâche) fonctionne ?
Est-il un autre contexte, autres que des Processus et de l'Interruption de contexte dans le Noyau Linux ?
source d'informationauteur user405369 | 2012-02-22
Vous devez vous connecter pour publier un commentaire.
Kernel threads s'exécutent dans les contextes de processus dans l'espace du noyau. Bien qu'il existe certains threads du noyau qui traiter les interruptions trop. Ils sont appelés fileté gestionnaires d'interruption. Mais ils continuent à s'exécuter dans le contexte de processus!
Ici est une excellente explication de la différence entre les 2 contextes!
En voici un qui va vous aider à gagner plus de compréhension!
Ce contexte ne le planificateur de code à exécuter?
Autant que je sache, de processus et d'interruption sont les 2 seuls contextes.
Il ya une poignée d'états—certains peuvent être des spécialisations des autres. Voir aussi http://www.kernel.org/doc/htmldocs/kernel-hacking.html .
in_nmi()
)in_irq()
)in_softirq()
)in_atomic()
). Éventuellement, les entrées sont, entre autres,spin_lock
.rcu_read_lock
par exempleBien il y a certaines tâches qui ne sont ni appelé via un appel système ou lors de la gestion des interruptions. Tels sont traités comme des pur noyau contextes, par exemple le swapper, le INIT_TASk, etc, qui n'ont pas de correspondant du code s'exécutant dans l'espace utilisateur.