Verrouillage de fichier - choisir un puzzle à résoudre

Le verrouillage de fichier est un mécanisme qui restreint l'accès à un fichier informatique en permettant à un seul utilisateur ou processus d'y accéder à un moment précis. Les systèmes implémentent le verrouillage pour empêcher le scénario classique de mise à jour intercédante, qui est un exemple typique de condition de concurrence, en imposant la sérialisation des processus de mise à jour à un fichier donné. L'exemple suivant illustre le problème de mise à jour intercédante: Le processus A lit un enregistrement client à partir d'un fichier contenant des informations sur le compte, y compris le solde du compte et le numéro de téléphone du client . Le processus B lit maintenant le même enregistrement à partir du même fichier afin qu'il possède sa propre copie. Le processus A modifie le solde du compte dans sa copie de l' enregistrement client et réécrit l' enregistrement dans le fichier. Le processus B, qui a toujours la valeur périmée d'origine pour le solde du compte dans sa copie de l' enregistrement client , met à jour le solde du compte et écrit l' enregistrement du client dans le fichier. Le processus B a maintenant écrit sa valeur de solde de compte périmée dans le fichier, entraînant la perte des modifications apportées par le processus A. La plupart des systèmes d'exploitation prennent en charge le concept de verrouillage des enregistrements, ce qui signifie que les enregistrements individuels d'un fichier donné peuvent être verrouillés, ce qui augmente le nombre de processus de mise à jour simultanés. La maintenance de base de données utilise le verrouillage de fichier, ce qui permet de sérialiser l'accès à l'intégralité du fichier physique sous-jacent à une base de données . Bien que cela empêche tout autre processus d'accéder au fichier, il peut être plus efficace que de verrouiller individuellement un grand nombre de régions du fichier en supprimant le coût d'acquisition et de libération de chaque verrou.