[Kos-dev] Reentrance de reschedule : un solution ?

Fabrice Gautier kos-dev@enix.org
Tue, 26 Jun 2001 18:22:25 +0200


On 22 Jun 2001 15:04:32 +0200
d2 <David.Decotigny@irisa.fr> wrote:

plein de chose interressantes que j'ai pas eu le temps de tout lire...

et les autres ont répondus:

plein de chose interressantes que j'ai pas eu le temps de tout lire...


C'est domage que la je sois vraiment à la bourre dans mon mémoire parceque
j'ai pas vraiment le temps de lire en détail tout ces débats.

En fait je voulais juste vous pointez vers une exemple simple et simple à
comprendre, c'est eCos (http://sources.redhat.com/ecos/).

Quant je dis simple c'est vraiment simple: tout en CPL0, pas protection
mémoire, pas de SMP, etc...

Par contre leur scheduleurs sont fait pour minimisez les temps de
latence. Pour les ISR il ya le concept de BH (il appelle ca DSR delayed
service routine). En particulier les Interruptions ne sont pas
déseactivés pendant le changement de contexte.

le rescheduling se passe (en gros tres gros) comme ca:


if (sched_lock = 0)
{
 sched_lock ++;
 swap_context;
 sched_lock --;
}

(simple n'est-ce pas! en réalité c'est un peu plus complexe, mais presque
pas)

une interruption peut intervenir à tout moment la dedans mais le
rescheduling n'aura lieu qu'une seule fois.

Juste pour l'info , et parce que je connais(sais) vraiment bien cette
partie la de eCos. J'ai appris pas mal de trucs en bossant dessus
l'année dernière, eet surtout, comme c'est vraiment simple (pas de
probleme avec la gestion de la mémoire, du SMP, etc...) c'est aussi très
simple à comprendre...

Enfin bon, c'est tellement simple, que finalement vous etes dejà bien au
dela de cela. Comme je suis kos d'assez loin depuis assez longtemps je
sais pas trop ou ca en ai de toute vos reflexion la dessus... 

Sinon ya pas mal d'autres chose interressante dans eCos. genre un gdb
stub, ca pourrait etre utile.

Bon allez, ptet que je regarderais ca de plus près après le 5 juillet...


-- 
Fabrice Gautier <gautier@email.enstfr>