Synchronisation des processus

types de spinlock

Plusieurs types de spinlock peuvent être intéressant d'implémenter :

  • spin_lock
  • spin_lock_irq (désactivation des IRQ)
  • spin_lock_bh (désactivation des IRQ logicielles ?)
  • spin_lock_irqsave (désactivation des IRQ et sauvegarde des flags)
  • rw_lock (spinlock de type Lecteur / rédacteur : plusieurs lecteurs possible mais si rédacteur, plus aucun lecteur ni rédacteur)

Implémentation

Tome III d'Intel, page 264 pour l'utilisation de l'instruction PAUSE dans des spinlock pour les 80x86

Mise en garde

Il est impératif d'éviter de placer plus d'un spin_lock / sémaphore à une distance inférieure de la taille d'une ligne dans les caches processeur ( environ 128 octets )