[Kos-dev] ca impliquerait koa ?

Thomas Petazzoni kos-dev@enix.org
Tue, 07 May 2002 10:17:22 +0200


> D'accord. Je me doutais un peu de ca. Mais je voulais etre sur qu'on
> etait d'accord sur le fonctionnement qui devrait etre normal. Je suis
> d'accord avec toi : faire ce que tu proposes en 1 mois 1/2 c'est
> faisable, mais un peu plus (comme le COW par exemple) c'est vrai que
> ca risque de ralonger la sauce un peu trop. Puisqu'il faut en effet
> que tu fasses la chose dans les regles de l'art (specs, conception,
> implementation, validation, ...), et que deja, ca, ca prend du temps.

Oui, mais d'un autre cote le COW est important pour la demonstration,
afin de montrer que les deux espaces d'adressage sont independants.

Il m'embete cet universitaire a vouloir des specs, de la conception et
tout ca. Au moins si on appliquait la methode "on the fly" (tm), bin je
commencerais qque chose, et je pourrais m'arreter la ou j'en suis, ou
poursuivre plus loin si c'est possible.

Ce que je pensais faire, c'est proposer des objectifs minimums quitte a
les depasser. Mais il veut vraiment que je decrive exactement les
objectifs que je compte atteindre.

Ceci dit, en fait le COW c'est pas si violent que ca -> recopie des
PD/PT dans la team fille, avec passage de tous les PT en R/O. Resultat
quand je me choppe un #PF en ecriture, bin zou je recopie la page dans
une nouvelle page et je la remappe en R/W. 

Par contre tu n'as pas repondu a mes interrogations principales :
 * dois-je recopier tous les threads d'une team lors du fork(), a mon
avis, la reponse est oui, mais qu'en penses-tu ?
 * une team A a un thread A et un thread B. Le thread A est bloque en
attente dans une wait queue. Le thread B fait un fork(). Si la reponse a
la question 1 est positive, alors je dois recopier et le thread A et le
thread B dans la nouvelle team B. Mai sle thread A de la nouvelle team B
doit lui aussi etre bloque en attente dans la waitqueue ? Ca me parait
louche tout ca... recopier des threads qui sont en train de faire un
appel systeme, ou qui sont bloques.... Je sais pas...
 * autre probleme, plus bas niveau. Je suis dans une team A, avec un
thread A et un thread B. Le thread A demande un fork() -> creation de la
team B. Dans le thread A de la team A je dois donc retourner le PID du
fils (de la team fille donc), ca c'est facile. Mais l'execution du
thread A de la team B doit se poursuivre en CPL3, en retournant 0 !
Comment je peux faire ca ?

Thomas
--
PETAZZONI Thomas - icq #34937744
thomas.petazzoni@enix.org - http://www.enix.org/~thomas/
Projet KOS : http://kos.enix.org
Club LinUT : http://club-linut.enix.org