PROJECT DOSSIER // [PLAZZA]VIEW SOURCEBACK TO PROJECTS →

01 // PROJECT AT A GLANCE

PLAZZA

C++

A simulated pizzeria where every kitchen is a process and every cook a thread.

Under the cover of a pizzeria, this project exercises everything that makes concurrent programming hard: several kitchens work in parallel, each with a limited number of cooks, a shared ingredient stock that replenishes itself, and orders to distribute intelligently. A kitchen idle for too long must close.

A C++ simulation with one process per kitchen, one thread per cook, inter-process communication through named pipes and synchronisation through mutexes.

PRIMARYC++
DELIVERYTEAM RECORD
VERIFICATIONmake
SOURCEINSPECTOR READY
MEDIA ATTACHMENTS (Images, Photos, Videos)

03 // KEY OUTCOMES

  • Two levels of concurrency combined: one process per kitchen, one thread per cook
  • Inter-process communication through System V message queues, encapsulated behind an interface
  • Pizza-by-pizza distribution and opening of an extra kitchen as soon as saturation hits

BEYOND THE BRIEF

  • An ncurses interface showing the kitchens' state in real time (src/ncurses/NCurses.cpp), in addition to the required shell
  • Encoding of the inter-process messages (Encrypt.cpp) with homemade pack/unpack
  • Concurrency primitives encapsulated behind their own interfaces (IThread, IMutex, IConditionVariable) rather than direct pthread usage

04 // SOURCE TREE

READING SOURCE…