verrou
Une définition du Jargon Français.
1. [exécution]. Élément (variable ou fonction) facilitant le partage d'une ressource (un fichier, une variable, un périphérique ...).
Le verrou permet de créer une exclusion mutuelle. (Tanenbaum).
Lorsque plusieurs programmes peuvent simultanément accéder à quelque chose mieux vaut ne permettre qu'à un seul d'effectuer une série cohérente de modifications durant un laps de temps donné, donc interdire durant cette action à tous 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 le périphérique est incapable d'honorer plus d'une requête à la fois). Pour cela chaque programme, avant d'effectuer quoi que ce soit, demande à une fonction centrale le droit de lire ou bien d'écrire. Ce verrou n'est concédé qu'au premier requérant et interdit l'accès aux autres tant qu'il n'a pas explicitement déverrouillé.
Dans la plupart des cas un verrou porte sur un sous-ensemble de données (une zone) et quelque chose, souvent le système d'exploitation, interdit à tout programme mal réalisé de s'arroger un droit en tentant directement d'accéder à un élément verrouillé.
Dans un fichier (ou une table de base de données) programme doit réclamer un verrou portant sur une zone donnée, attendre de l'obtenir, effectuer des modifications, puis déverrouiller. La pratique est plus difficile car pose divers problèmes dont voici un échantillon :
- les données stockées peuvent changer durant l'attente du verrou, ce qui peut rendre caduque voire dangereuse la décision de les modifier ayant conduit à demander le verrou
- le programme détenant le verrou peut ne pas être capable de déverrouiller (par exemple parce qu'il planta ou parce que sa connexion réseau avec le serveur est tomba). 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 tente de modifier les données. Adopter alors un keep-alive réduit les performances et augmente l'utilisation des 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 mis en attente dans une file d'attente.
2. [exécution]. Dans l'expression « verrou fatal », voir interblocage.

