Les programmes entrent en conflit lorsqu'ils tentent tous deux d'utiliser la même ressource. Lorsque plusieurs programmes tentent d'opérer sur une ressource en même temps, il existe un risque de problèmes de simultanéité . Des problèmes de simultanéité se produisent lorsqu'un processus effectue un changement sur la ressource et que l'autre programme (qui était au milieu de sa propre modification de la ressource) n'en est pas conscient et ne peut donc pas en tenir compte.
Voici quelques exemples de problèmes d'accès simultané aux manuels.
Dernier problème gagnant
Imaginez que vous utilisez un répertoire FTP pour partager un document sur lequel vous et un collègue collaborez sur un document. vous téléchargez le document, le modifiez et le publiez à nouveau, comme le fait votre collègue.
- Vous téléchargez le document et lancez une série de modifications qui prend 1 heure.
- Votre collègue télécharge le document en même temps que vous, mais ne prend qu'une demi-heure à compléter et à transférer leurs modifications.
Résultat: lorsque vous téléchargez votre document, vous écrasez ses modifications et elles sont perdues.
Données périmées
Dans le même scénario, votre collègue apporte certaines modifications dont vous avez besoin, sans vous en informer. votre copie du fichier n'a pas les modifications,
Résultat: vous écrivez vous-même les mêmes modifications dans des mots légèrement différents ou, pire encore, vous envoyez un e-mail vicieux sur sa disparition.
Cela semble être un scénario simple, mais dans les cas avancés tels que les bases de données à accès multiples si vous sélectionnez des enregistrements avec la même milliseconde, une personne les met à jour, vous pouvez rencontrer de graves problèmes.
Mauvais calcul
Un couple marié a un compte bancaire partagé et des cartes de guichet automatique. Ils ont 1000 USD dans leur compte. Dans leur vie quotidienne, ils se trouvent de part et d’autre de la ville et accèdent au guichet automatique au même moment. Ils retirent tous les deux 1000 USD. Les guichets automatiques savent tous les deux que le solde est égal à 1000; ils autorisent donc le retrait, puis écrivent à la base de données centrale que le nouveau solde est égal à 0.
Résultat: la banque est maintenant à 1000 USD et ne le sait même pas.
Dans tous ces exemples, plusieurs parties effectuaient des actions sur une ressource partagée à peu près au même moment. D'où les termes "concurrence" ou "Synchronicité".
Solutions
Il y a plusieurs façons de régler ce genre de problèmes. La première consiste à utiliser un logiciel qui arbitre entre les différentes parties accédant à la ressource. Ces programmes d’arbitrage ont deux options, en fonction de la portée et de la prévisibilité des opérations:
- Fusionner intelligemment les opérations
- Bloquez / verrouillez l'une des deux opérations jusqu'à la fin de la première constatée.
Il est également possible de bloquer / verrouiller, à condition que les deux programmes soient conçus pour vérifier un indicateur partagé indiquant l’état de la ressource. cela nécessite généralement un développement personnalisé.
Ta Réponse
Dans votre cas spécifique, les ressources sont les fichiers sur votre disque. Synchronicity provient d'événements comme le fichier Lecture / Écriture, qui déclenchent des analyses sur accès dans les deux programmes AV.
Windows agit en tant qu'arbitre pour résoudre les problèmes de simultanéité des systèmes de fichiers en verrouillant les fichiers lorsque les programmes les ouvrent pour des opérations spécifiques.
Cela signifie que les deux programmes se bousculent pour accéder au fichier et que celui qui y arrive en premier obtient le verrou. À un niveau bas, certains disques s'affichent lorsque les deux programmes commencent leurs propres activités d'E / S, ce qui oblige le matériel à effectuer les deux tâches séparément. d'entre eux va gagner. l'autre va tourner et attendre pour pouvoir établir son propre verrou.