verrou

Une définition du Jargon Français.
Aller à : Navigation, rechercher

nom masculin.

1.  [algorithmie]. Élément (variable ou fonction) d'un programme facilitant le partage d'une ressource (un fichier, une variable, un périphérique ...).

Selon Tanenbaum « Le verrou permet de créer une exclusion mutuelle ».

Lorsque plusieurs entités (fonctions, utilisateurs...) peuvent simultanément accéder à quelque chose mieux vaut ne permettre qu'à une seule d'effectuer une série cohérente de modifications durant un laps de temps donné, donc interdire durant cette action à toutes les autres d'écrire voire de lire (car les données en cours de modification sont temporairement incomplètes ou incohérentes, ou parce que la chose sollicitée est incapable d'honorer plus d'une requête à la fois).

Dans la plupart des cas la chose est un sous-ensemble de données (une zone) ou bien un périphérique et un composant du système, souvent le système d'exploitation, interdit à tout processus d'accéder à un élément verrouillé par un autre.

Pour cela chaque processus concerné, avant d'effectuer quoi que ce soit, demande à une fonction centrale le droit de lire ou bien d'écrire. Dans le cas-type le verrou n'est concédé qu'au premier requérant et interdit l'accès aux autres tant qu'il n'a pas été déverrouillé.

Dans un fichier (ou une table de base de données) un processus doit réclamer un verrou en décrivant ce sur quoi il portera, attendre de l'obtenir, lire la version à jour des données et effectuer des modifications, puis déverrouiller. La pratique est plus difficile car pose divers problèmes. Le programme détenant le verrou n'est parfois pas capable de déverrouiller (par exemple parce qu'il planta ou que sa connexion réseau avec le serveur est tombée). On peut tenter de gérer cela grâce à un timeout, puis il faut prendre en considération le cas du client auquel un verrou concédé est ainsi retiré à son insu, et qui croit toujours le détenir donc tente de modifier les données. Adopter alors un keep-alive réduit les performances et augmente l'utilisation de ressources...

Le verrouillage est parfois rendu implicite. Dans le cas d'une imprimante partagée connectée à un réseau, par exemple, un spooler masque tout cela aux clients : le premier travail soumis obtient le verrou donc est immédiatement honoré tandis que les suivants sont acceptés puis placés dans une file d'attente.

Dans certains contextes le verbe « verrouiller » désigne toutes les actions correspondantes: déterminer si le verrou pertinent existe déjà et si ce n'est pas le cas le créer (en une action atomique), y placer des informations révélant qui a créé le verrou, le rafraîchir périodiquement si nécessaire afin d'exprimer « le créateur du verrou en a toujours besoin » (peut-être même en y laissant des informations quant à la date vraisemblable de déverrouillage), le détruire afin de déverrouiller (libérer la ressource)...

Direction.png Pour aller plus loin: sémaphore, mutex, deadlock, transaction, global lock.

2.  [exécution]. Dans l'expression « verrou fatal », voir interblocage.


3.  [police]. Synonyme de protection.