[Kos-cvs] [kos] Modification CVS par d2
KOS CVS
kos-dev <kos-dev@enix.org>
Mon, 9 Jun 2003 17:29:18 +0200 (CEST)
Module : kos
Modifié par : d2 09/06/03 17:29:18
Fichiers modifiés :
modules/idt : _dst.c
modules/kitc : _kmsg.c _kmutex.c _ksem.c _ksem.h kitc.c kmsg.h
kmutex.h ksem.h
modules/kos : spinlock.h wolfgang.c
modules/scheduler: Makefile _scheduler.c _scheduler.h _sleep.c
_sleep.h _timer.c scheduler.c scheduler.h
modules/task : _task_kthread.c task.h
modules/test : sem_test.c
modules/tty : _ktty.c _tty.c _tty.h
modules/x86/task: _cpl0_switch.c _cpl0_switch_asm.S _task.h
task.h
Fichiers ajoutés :
modules/scheduler: _synchq.c _synchq.h synchq.h
modules/x86/task: _cpl0_switch.h
Fichiers enlevés :
modules/scheduler: _kwaitqueue.c _kwaitqueue.h kwaitqueue.h
Détails :
Spinlock : disparition des lock_local :plus clean (ca n'avait aucun sens) + factorisation du code (un lock = 1 cli + 1 lock remote).
Chgt de contexte : on passe en parametre un lock a cpl0_switch, qui est unlocke pdt la duree du switch, puis unlock au retour du switch.
kwaitqueue : remplace par synchq. Meme principe sauf que s'occupe seulement de la gestion des listes de threads, pas de la mise en commeil par defaut.
scheduler : api propre pour la gestion de la file d'attente cpu... il se trouve qu'elle utilise pour le moment les synchq, mais on pourrait imaginer a terme que ce soit autre chose.
Test 10 sem / 100 thr en cours.
Todo : ne plus faire l'appel a delete_pending_thread dans le code de cpl0_switch_no_return.
Todo : gerer un attribut supplementaire pour les synchros : timeout. Ca va sans doute faire que le code de _sleep.c n'utilise plus des synchq, mais un code propre...