Analyse comparative des mécanismes de communication

Le but de ce projet est de comparer expérimentalement les mécanismes d'échange de données vus en cours. On considère une application simple de type producteur-consommateur contenant un producteur qui génère 1 Go de données aléatoires et un consommateur qui calcule la « signature » MD5 de ces données.

Le programme md5pipe.c implémente cette application en utilisant tubes de communication. Le producteur génère 1048576 blocs de taille 1 Ko chacun et transmet les données au consommateur par un pipe. (Utilisez l'option -lssl de l'éditeur de liens pour produire un exécutable. Si la bibliothèque openssl n'est pas instalée sur votre système vous pouvez trouver une implémentation de l'algorithme MD5 ici. Dans ce cas vous devez faire quelques petites modifications dans md5pipe.c.)

  1. Implémenter la même application en utilisant
  2. Comparer les trois implémentations selon
  3. Faire varier la « granularité » de chaque méthode. Par exemple, dans l'implémentation avec pipes, on peut utiliser 524288 blocs de 2 Ko, ou 262144 blocs de 4Ko, etc. Observer le changement du temps d'exécution et expliquer les résultats obtenus.