tasklet, taskqueue, travail de la file d'attente pour l'utiliser?
Je suis ldd3 pour les quelques derniers mois. J'ai d'abord lu quelques chapitres de nombreuses fois.
Ces deux liens sont à l'aide de différentes façon, on est à l'aide de file d'attente de travail des autres est à l'aide de la tâche de la file d'attente. Pour mettre en œuvre une moitié inférieure.
http://www.tldp.org/LDP/lkmpg/2.4/html/x1210.html
http://www.linuxtopia.org/online_books/linux_kernel/linux_kernel_module_programming_2.6/x1256.html
J'ai quelques doute sur tasklet, taskqueue, work-queue
tout semble être en train de faire une tâche à temps libre :--
a) Quelle est exactement la différence entre ces trois ?
b) Qui doit être utilisé pour le gestionnaire d'interruption moitié inférieure ?
confus ...???
OriginalL'auteur user2090434 | 2013-02-20
Vous devez vous connecter pour publier un commentaire.
Tasklet et de travail de la file d'attente sont normalement utilisés dans la moitié inférieure, mais ils peuvent être utilisés n'importe où, n'y a pas de limitation sur eux
Ce qui concerne la différence.
1) La Tasklet sont utilisés dans les interrompre contexte. Tous les tasklet code doit être atomique,de sorte que toutes les règles qui sont appliquées sur atomiques contexte sont appliquées.
Pour eg. Ils ne peuvent pas dormir(car ils ne peuvent pas être reschecduled) ou détenir un verrou pour longtemps.
2) Contrairement à la Tasklet travail de la file d'attente s'exécute est dans le contexte de processus signifie qu'ils peuvent dormir et maintenez le verrou de longue date.
En bref tasklet sont utilisés pour l'exécution rapide comme ils ne peuvent pas dormir où, comme workqueue sont utilisés dans le cas de l'exécution normale de la moitié inférieure. Les deux sont exécutés au plus tard par le noyau.
C'est une hypothèse erronée que les gens ont généralement, par miscalling softirq comme tasklet ou même la moitié du bas. Tasklet sont mis en œuvre sur softirq (priorité 5 et 0) comme vous l'avez dit. Mais Ils sont différents dans le travail et l'enregistrement. Ils ont séparé de l'interface d'enregistrer eux-mêmes Leur sont 4 façons de reporter les travaux dans la Moitié Inférieure 1. softirq 2. tasklet 3. workqueue (remplacement des files d'attente de tâches) 4. Minuteur De Noyau
Softirq sont comme tasklet ils courent en interruption contexte. Mais Softirq nécessaires pour être enregistré au moment de la compilation alors que tasklet sont enregistrées de façon dynamique. De plus deux softirq de même type peuvent exécuter simoltaneously tandis que les deux tasklet de même type ne peuvent pas.
droit, merci pour l'info :).
OriginalL'auteur duck
Softirq et tasklet les deux sont d'interruption contexte tasklet qui est exécuté dans l'interrompre contexte et workques sont exécutées dans le contexte de processus de code.Contexte de processus code est autorisé à dormir dans l'exécution mais d'interruption contexte code n'est pas autorisé à dormir pendant l'exécution (Seulement un autre interruption peut préempter interruption programmé contexte moitié inférieure. )
Dont le fond la moitié mécanisme que vous utilisez est totalement dépendent de pilote que vous écrivez et son exigence.
Pour Ex. Si vous écrivez nw pilote qui est de l'envoi de paquets et de HW sur l'interruption de base que vous désirez compléter cette activité, sans aucun délai, seules les options disponibles est softirq ou tasklets.
Remarque: Mieux vous passez par le Noyau Linux de Développement par Robert de l'Amour chapitre 8.J'ai aussi lu LDD, mais encore de Développement du Noyau Linux par Robert l'Amour c'est mieux pour l'interruption liée à la compréhension.
OriginalL'auteur Nishith Goswami