- Verrou global du noyau
-
Big Kernel Lock
Pour les articles homonymes, voir Verrou (homonymie).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 système 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.
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.
En attendant que ce retrait soit totalement réalisé, les patchs PREEMPT_RT de la branche -rt d'Ingo Molnar permettent de réduire l'impact du Big Kernel Lock en le rendant préemptible.
Notes
Voir aussi
- Portail de l’informatique
- Portail GNU/Linux
Catégories : Noyau informatique | Noyau Linux
Wikimedia Foundation. 2010.