[SOS] Synchronisation
Julien Lecomte
julien.lecomte at gmail.com
Jeu 24 Avr 04:42:40 CEST 2008
Salut,
Mais alors, pourquoi les interruptions ont elles besoin d'etre
desactivees dans ksynch.c? (par exemple dans la fonction
sos_ksema_down)
Merci d'avance!
- Julien
2008/4/16 David MENTRE <dmentre at linux-france.org>:
> Bonjour,
>
>
>
> "Julien Lecomte" <julien.lecomte at gmail.com> writes:
>
> > J'étais en train de regarder le code de SOS, et me demande comment est
> > faite la synchronisation a l'intérieur du noyau. Par exemple, la
> > fonction sos_physmem_ref_physpage_new (sos/physmem.c) modifie la liste
> > nonfree_ppage (données globales). Il n'est pas impossible que le code
> > de cette fonction soit interrompu en plein milieu, puis executé par un
> > autre processus, en mode noyau. Ne devrait-il pas y avoir une section
> > critique la, ou je n'ai rien compris?
>
> Non pas besoin de synchro car comme dit dans sa description[1] SOS est
> un « noyau de type monolithique, interruptible, non préemptible ». En
> d'autres termes, quand tu es en mode noyau ton code ne peut pas être
> interrompu sauf quand tu le décide (« non préemptible ») sauf par un
> handler d'interruption (« interruptible »).
>
> Par contre, il y a besoin de synchros entre les handlers d'interruptions
> et le reste du noyau. Un moyen simple est de désactiver toutes les
> interruptions temporairement (sos_disable_IRQs()).
>
> Amicalement,
> david
>
> Footnotes:
> [1] http://sos.enix.org/fr/SOSOverview
>
> --
> GPG/PGP key: A3AD7A2A David MENTRE <dmentre at linux-france.org>
> 5996 CC46 4612 9CA4 3562 D7AC 6C67 9E96 A3AD 7A2A
>
Plus d'informations sur la liste de diffusion Sos