[SOS] Proposition de code
Cyril Dupuit
cyrildupuit at hotmail.com
Ven 19 Nov 11:15:06 CET 2004
Salut la team,
J'ai retrouvé un truc non homogène (sos_paging_unmap). Ce n'est rien de bien
grave.
Voici le code :
pt_unref_retval = sos_physmem_unref_physpage(pd[index_in_pd].pt_paddr <<
12);
SOS_ASSERT_FATAL(pt_unref_retval >= 0);
if (pt_unref_retval > 0)
/* If the PT is now completely unused... */
{
/* Release the PDE */
memset(pd + index_in_pd, 0x0, sizeof(struct x86_pde));
/* Update the TLB */
invlpg(pt);
}
Je pense qu'il serait plus rassurent de remplacer le test du if par : if
(pt_unref_retval == TRUE).
On ne sait jamais TRUE pourrait valoir 0 et FALSE 1.
C'est tout.
Je voulais vous poser une question à propos des interruptions, de la
libération de la mémoire, etc...
Voilà, dans le noyau que j'écris, le thread courant peut-être supprimé. Bon,
rien de bien troublant, sauf que je suis ennuyé avec la libération de la
mémoire. Si la mémoire est libérée lorsque le thread courant est en cours de
suppression et qu'une interruption timer arrive, le thread courant est
invalide.
Le noyau plante alors !
Quelle proposition pourriez-vous me faire pour faire face à ce problème ?
J'ai pensé que je pourrais insérer le thread à supprimer dans une file
d'attente. La suppression serait alors gérée par un thread zombie. Son rôle
se limiterait à cela.
Qu'en pensez-vous ?
Autre chose :
Comment pourrai-je apporter ma contribution au projet SOS ?
J'ai écrit le code (licence GPL) de la gestion des consoles texte pour mon
noyau. Il y a des caractéristiques intéressantes comme : multi-console,
scrolling, fonction basique de « dessin », etc...
J'aimerai savoir ce qu'il faut que je fasse (les contraintes, etc...) ?
Merci d'avance.
Cyril.
Plus d'informations sur la liste de diffusion Sos