01 // LE PROJET EN BREF
MY_NAVY
CUne 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
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…