Big Kernel Lock

Un article de Wikipédia, l'encyclopédie libre.

Le verrou global du noyau, en anglais Big Kernel Lock ou Giant Lock (littéralement le « verrou géant du noyau »), est un mécanisme qui permet de suspendre toutes les opérations du noyau d'un systeme d'exploitation de manière à contrôler les accès concurrents sur les machines multi-processeurs à mémoire partagée (SMP).

Ce système consiste à poser un verrou sur l'accès à l'espace noyau dès qu'une tâche y entre pour éviter tout risque de concurrence. Une fois la tâche achevée, le verrou est relâché.

Ce mécanisme a l'avantage d'être simple à implémenter puisqu'il n'implique pas la modification d'un grand nombre de parties du code du noyau. Il présente cependant l'inconvénient majeur de ne permettre qu'à une seule tâche l'accès aux ressources du noyau à un instant donné. Une partie de l'intérêt des systèmes multi-processeurs est alors perdue : lorsqu'une tâche exécute du code noyau, toutes les autres tâches pouvant potentiellement s'exécuter en parallèle, mais tentant d'accéder au noyau, se retrouvent bloquées.

Les techniques de verrouillage fin (fine-grained locking) sont des alternatives plus efficaces mais bien plus complexes à mettre en oeuvre.

[modifier] Noyau Linux

Dans le noyau Linux, la décision a été prise de le faire progressivement disparaître[1][2] au profit de techniques de verrouillage fin.

[modifier] Notes

  1. (fr)La fin du verrou global dans le noyau Linux ?, 19 mai 2008
  2. (en)Removing the Big Kernel Lock, 15 mai 2008

[modifier] Voir aussi

Autres langues