[SOS] Soft/Hard Task switching...

Romain LABBE labbe.romain at wanadoo.fr
Mar 8 Nov 15:14:34 CET 2005


Salut,

"[ Désole de ne pas avoir répondu aux précédents messages sur la liste,
concernant les allocateurs mémoires. Ce n'est pas faute d'intérêt, mais
plutôt faute de temps. J'espère pouvoir y répondre prochainement. Au
pire, j'y réponds la semaine prochaine. ]"

Aucun probleme on se doute bien que tu n'as pas que ca à faire, ce qui
est bien sur cette mailing c'est que y'a toujours quelqu'un de cool et
dispo pour te repondre, Stephane Duverger m'a bien aider sur le coup de
la kvmm.

"Hum, c'est étrange que tu aies besoin de cela. Normalement, directement
à l'intérieur du gestionnaire de l'interruption IRQ0, tu devrais pouvoir
changer de thread. Refaire une autre interruption me paraît un peu
"overkill". Si tu veux, je peux regarder le code qui ne fonctionnait pas
(celui qui n'utilise pas int 0x40) et voir si je trouve quelque chose."

Cela peut en effet m'intéraisser, je prepare un doc et remet mon source
au propre (y'a des printf partout pour le debugage). C'est vrai que 2
interruptions consecutives c'est un peu "lourding" ou "overkill" :D. 
Pour le source je dev sous Windows, donc pour recompiler...
Je vais mettre à dispo mon source mais en fait peut etre que la methode
n'est pas bonne.

"On est obligé d'utiliser un TSS pour les threads utilisateur, parce que
lors d'une interruption, un thread utilisateur (en niveau de privilège
3) doit passer en mode privilégié (en niveau de privilège 0). Avec ce
changement de privilège, il y a également un changement de pile (de la
pile utilisateur à la pile noyau). Donc il faut que quelque part,
l'adresse de la pile noyau soit indiquée. Et le seul endroit pour ça,
c'est le TSS."

Ok c'est tres clair comme explications, je vais m'y intéraisser des que
j'ajouterais la notion de thread utilisateur (MemContext, etc..)

Merci Thomas,

A++

Romain




Plus d'informations sur la liste de diffusion Sos