PROJECT DOSSIER // [MY_NAVY]VOIR LA SOURCERETOUR AUX PROJETS →

01 // LE PROJET EN BREF

MY_NAVY

C

Une bataille navale entre deux processus qui ne communiquent que par signaux.

Deux programmes distincts s'affrontent, et le seul moyen de communication autorisé est le mécanisme le plus rudimentaire d'Unix : le signal, une notification qui ne transporte aucune donnée. Il faut donc inventer un protocole pour transmettre une position complète à coups de « ping » — un exercice de communication extrêmement contraint et étonnamment satisfaisant.

Jeu à deux processus communiquant uniquement par SIGUSR1 et SIGUSR2, avec encodage binaire de la case attaquée sur huit signaux, et synchronisation par temporisation à l'émission et pause() bloquant à la réception.

PRINCIPALC
RÉALISATIONÉQUIPE DE 2
VÉRIFICATIONCriterion
SOURCEINSPECTOR READY
PIÈCES JOINTES (Images, Photos, Videos)

03 // APPORTS CLÉS

  • Inventer un protocole complet avec seulement deux symboles
  • Confrontation concrète aux conditions de course et à la perte de signaux
  • Contraintes de réentrance dans les gestionnaires de signal

AU-DELÀ DU SUJET

  • Trois fichiers de tests Criterion couvrant l'attaque, la redirection et la gestion d'erreur

04 // ARBORESCENCE DU CODE

LECTURE DES SOURCES…