[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