[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