Le projet est entièrement fonctionnel. Aucun bug n’a été détecté lors des tests avec les paramètres recommandés (S=10, H=100, M=10, N=10) et plus, comme par exemple : S=10'000, H=10'000, M=10'000, N=10. Le comportement du programme respecte l’ensemble des contraintes spécifiées, et le nombre total de vélos est vérifié en fin d’exécution. Les attentes sont toutes passives et le programme utilise correctement les mécanismes de synchronisation.
Le projet est entièrement fonctionnel. Aucun bug n’a été détecté lors des tests avec les paramètres recommandés (S=10, H=100, M=10, N=10). Le comportement du programme respecte l’ensemble des contraintes spécifiées, et le nombre total de vélos est vérifié en fin d’exécution. Les attentes sont toutes passives et le programme utilise correctement les mécanismes de synchronisation.
Résumé de l’implémentation :
Chaque habitant est représenté par un thread. Il effectue M trajets entre des sites tirés aléatoirement, en prenant un vélo s’il est disponible et en attendant passivement dans le cas contraire. Une fois arrivé à destination, il tente de rendre le vélo. Si aucune place n’est disponible, il attend passivement également.