[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...