SYNCJ

Projet 4eme année

Département Informatique


Presentation du projet

Le projet SYNCJ consiste à développer une solution permettant de faciliter l'apprentissage des outils de synchronisation pour les étudiants en 4ème année au département informatique à l'INSA RENNES. Pour cela, nous avons implémenter le mécanisme des compteurs de synchronisation en langage JAVA.





Sample image

Les compteurs de synchronisation

Les compteurs de synchronisation sont un mécanisme de synchronisation moins restrictif que l'exclusion mutuelle. Ce mécanisme permet une gestion automatique des réveils et une mise à jour automatique des variables de synchronisation.

Les synchronisations portent sur l'état des compteurs qui permettent de comptabiliser et de contrôler les accès aux méthodes.

Lors de l’invocation d’une méthode, les compteurs sont mis à jour automatiquement.

Code écrit par le programmeur

Les conditions

Ces compteurs de synchronisation sont utilisés via des conditions qui permettent de gérer les synchronisations du programme.

Exemple du Lecteur/Rédacteur:

On impose une condition sur la lecture : Aucune écriture ne doit être en cours.
On impose aussi une condition sur l’écriture : Aucune écriture et aucune lecture ne doivent être en cours .

Sample image

Le compilateur

A partir des noms des conditions déclarées par l'utilisateur, nous générons la déclaration des compteurs de synchronisation et les méthodes de test.
Ensuite, nous générons automatiquement les mises à jour des compteurs et l'appel aux primitives de synchronisation Java en fonction du nom de la méthode.

Code final généré Sample image







Finalement, le code du Lecteur/Redacteur écrit part l'utilisateur ci-dessus sera traduit comme suit :

On peut remarquer ici la génération des compteurs de synchronisation et des méthodes de test.

Sample image

La méthode de lecture.

Sample image

La méthode d'écriture.

Copyright © 2015 INSA Rennes. Liantsoa, Nour, Mathilde, Ibrahim, Ohtmane.