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

01 // LE PROJET EN BREF

PLAZZA

C++

Une pizzeria simulée où chaque cuisine est un processus et chaque cuisinier un fil d'exécution.

Sous couvert d'une pizzeria, ce projet fait travailler tout ce qui rend la programmation concurrente difficile : plusieurs cuisines travaillent en parallèle, chacune avec un nombre limité de cuisiniers, un stock d'ingrédients partagé qui se réapprovisionne, et des commandes à répartir intelligemment. Une cuisine inactive trop longtemps doit fermer.

Simulation en C++ avec un processus par cuisine, un thread par cuisinier, communication inter-processus par tubes nommés et synchronisation par mutex.

PRINCIPALC++
RÉALISATIONPROJET D’ÉQUIPE
VÉRIFICATIONmake
SOURCEINSPECTOR READY
PIÈCES JOINTES (Images, Photos, Videos)

03 // APPORTS CLÉS

  • Deux niveaux de concurrence combinés : un processus par cuisine, un thread par cuisinier
  • Communication inter-processus par files de messages System V, encapsulée derrière une interface
  • Répartition pizza par pizza et ouverture d'une cuisine supplémentaire dès saturation

AU-DELÀ DU SUJET

  • Interface ncurses affichant l'état des cuisines en temps réel (src/ncurses/NCurses.cpp), en plus du shell demandé
  • Encodage des messages inter-processus (Encrypt.cpp) avec pack/unpack maison
  • Primitives de concurrence encapsulées derrière leurs propres interfaces (IThread, IMutex, IConditionVariable) plutôt qu'un usage direct de pthread

04 // ARBORESCENCE DU CODE

LECTURE DES SOURCES…