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
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…